Add config for plugins command hijack
This commit is contained in:
parent
97f1c1e6b8
commit
1afa28f67c
2 changed files with 25 additions and 5 deletions
|
|
@ -7,11 +7,12 @@ import net.frankheijden.serverutils.config.Messenger;
|
||||||
import net.frankheijden.serverutils.reflection.*;
|
import net.frankheijden.serverutils.reflection.*;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.*;
|
import org.bukkit.command.*;
|
||||||
|
import org.bukkit.command.defaults.PluginsCommand;
|
||||||
|
import org.bukkit.configuration.file.YamlConfiguration;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
import org.bukkit.plugin.java.JavaPlugin;
|
import org.bukkit.plugin.java.JavaPlugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
@ -20,6 +21,7 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
|
||||||
|
|
||||||
private static ServerUtils instance;
|
private static ServerUtils instance;
|
||||||
private PaperCommandManager commandManager;
|
private PaperCommandManager commandManager;
|
||||||
|
private CommandPlugins commandPlugins;
|
||||||
|
|
||||||
public static ServerUtils getInstance() {
|
public static ServerUtils getInstance() {
|
||||||
return instance;
|
return instance;
|
||||||
|
|
@ -30,11 +32,10 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
|
||||||
super.onEnable();
|
super.onEnable();
|
||||||
instance = this;
|
instance = this;
|
||||||
|
|
||||||
this.removeCommands("pl", "plugins");
|
this.commandManager = new PaperCommandManager(this);
|
||||||
|
|
||||||
commandManager = new PaperCommandManager(this);
|
|
||||||
commandManager.registerCommand(new CommandServerUtils());
|
commandManager.registerCommand(new CommandServerUtils());
|
||||||
commandManager.registerCommand(new CommandPlugins());
|
this.commandPlugins = null;
|
||||||
|
|
||||||
commandManager.getCommandCompletions().registerAsyncCompletion("plugins", context -> Arrays.stream(Bukkit.getPluginManager().getPlugins())
|
commandManager.getCommandCompletions().registerAsyncCompletion("plugins", context -> Arrays.stream(Bukkit.getPluginManager().getPlugins())
|
||||||
.map(Plugin::getName)
|
.map(Plugin::getName)
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
|
|
@ -48,6 +49,7 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
|
||||||
@Override
|
@Override
|
||||||
public void onDisable() {
|
public void onDisable() {
|
||||||
super.onDisable();
|
super.onDisable();
|
||||||
|
restoreBukkitPluginCommand();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeCommands(String... commands) {
|
private void removeCommands(String... commands) {
|
||||||
|
|
@ -64,8 +66,24 @@ public class ServerUtils extends JavaPlugin implements CommandExecutor {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void restoreBukkitPluginCommand() {
|
||||||
|
RCraftServer.getCommandMap().register("bukkit", new PluginsCommand("plugins"));
|
||||||
|
}
|
||||||
|
|
||||||
public void reload() {
|
public void reload() {
|
||||||
|
if (commandPlugins != null) {
|
||||||
|
commandManager.unregisterCommand(commandPlugins);
|
||||||
|
restoreBukkitPluginCommand();
|
||||||
|
}
|
||||||
|
|
||||||
new Messenger(copyResourceIfNotExists("messages.yml"));
|
new Messenger(copyResourceIfNotExists("messages.yml"));
|
||||||
|
|
||||||
|
YamlConfiguration config = YamlConfiguration.loadConfiguration(copyResourceIfNotExists("config.yml"));
|
||||||
|
if (!config.getBoolean("settings.disable-plugins-command", false)) {
|
||||||
|
this.removeCommands("pl", "plugins");
|
||||||
|
this.commandPlugins = new CommandPlugins();
|
||||||
|
commandManager.registerCommand(commandPlugins);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public PaperCommandManager getCommandManager() {
|
public PaperCommandManager getCommandManager() {
|
||||||
|
|
|
||||||
2
src/main/resources/config.yml
Normal file
2
src/main/resources/config.yml
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
settings:
|
||||||
|
disable-plugins-command: false
|
||||||
Loading…
Add table
Add a link
Reference in a new issue