From cd0b9aebdcd85faf662bdd14f2c8b92ec7f61c90 Mon Sep 17 00:00:00 2001 From: YouHaveTrouble Date: Wed, 19 Aug 2020 14:52:54 +0200 Subject: [PATCH] reload command --- .../eu/endermite/togglepvp/TogglePvP.java | 5 ++-- .../togglepvp/commands/MainCommand.java | 26 +++++++++++++++---- .../togglepvp/commands/ReloadCommand.java | 25 ++++++++++++++++++ src/main/resources/plugin.yml | 5 +++- 4 files changed, 53 insertions(+), 8 deletions(-) create mode 100644 src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java diff --git a/src/main/java/eu/endermite/togglepvp/TogglePvP.java b/src/main/java/eu/endermite/togglepvp/TogglePvP.java index 93de985..bc08cfd 100644 --- a/src/main/java/eu/endermite/togglepvp/TogglePvP.java +++ b/src/main/java/eu/endermite/togglepvp/TogglePvP.java @@ -12,6 +12,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.plugin.java.JavaPlugin; import java.io.File; +import java.util.Objects; public final class TogglePvP extends JavaPlugin { @@ -43,8 +44,8 @@ public final class TogglePvP extends JavaPlugin { getServer().getPluginManager().registerEvents(new WolfTargettingListener(), this); getServer().getPluginManager().registerEvents(new WolfAttackPlayerListener(), this); - getCommand("pvp").setExecutor(new MainCommand()); - getCommand("pvp").setTabCompleter(new MainCommand()); + Objects.requireNonNull(getCommand("pvp")).setExecutor(new MainCommand()); + Objects.requireNonNull(getCommand("pvp")).setTabCompleter(new MainCommand()); } public void reloadPluginConfig() { diff --git a/src/main/java/eu/endermite/togglepvp/commands/MainCommand.java b/src/main/java/eu/endermite/togglepvp/commands/MainCommand.java index a481ea3..07e2d48 100644 --- a/src/main/java/eu/endermite/togglepvp/commands/MainCommand.java +++ b/src/main/java/eu/endermite/togglepvp/commands/MainCommand.java @@ -13,7 +13,7 @@ public class MainCommand implements TabExecutor { @Override public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - if (sender.hasPermission("togglepvp.command")) + if (sender.hasPermission("togglepvp.command")) { if (args.length >= 1) { switch (args[0].toLowerCase()) { case "help": @@ -30,6 +30,9 @@ public class MainCommand implements TabExecutor { case "disable": PvpToggleCommand.disable(sender, args); break; + case "reload": + ReloadCommand.reload(sender); + break; default: sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getNo_such_command())); break; @@ -37,6 +40,10 @@ public class MainCommand implements TabExecutor { } else { HelpCommand.help(sender, args); } + } else { + sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getNo_such_command())); + } + return true; } @@ -49,6 +56,9 @@ public class MainCommand implements TabExecutor { List noPerm = new ArrayList<>(); noPerm.add("help"); + List reloadPerm = new ArrayList<>(); + reloadPerm.add("reload"); + List togglePerm = new ArrayList<>(); togglePerm.add("toggle"); togglePerm.add("on"); @@ -57,16 +67,22 @@ public class MainCommand implements TabExecutor { togglePerm.add("disable"); if (args.length == 1) { + for (String noPermCmd : noPerm) { + if (noPermCmd.startsWith(arg1)) + commands.add(noPermCmd); + } if (sender.hasPermission("togglepvp.command.toggle")) { - for (String noPermCmd : noPerm) { - if (noPermCmd.startsWith(arg1)) - commands.add(noPermCmd); - } for (String togglePermCmd : togglePerm) { if (togglePermCmd.startsWith(arg1)) commands.add(togglePermCmd); } } + if (sender.hasPermission("togglepvp.command.reload")) { + for (String reloadPermCmd : reloadPerm) { + if (reloadPermCmd.startsWith(arg1)) + commands.add(reloadPermCmd); + } + } } return commands; diff --git a/src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java b/src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java new file mode 100644 index 0000000..5e782a5 --- /dev/null +++ b/src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java @@ -0,0 +1,25 @@ +package eu.endermite.togglepvp.commands; + +import eu.endermite.togglepvp.TogglePvP; +import net.md_5.bungee.api.chat.BaseComponent; +import net.md_5.bungee.api.chat.TextComponent; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; + +public class ReloadCommand { + + public static void reload(CommandSender sender) { + + Bukkit.getScheduler().runTaskAsynchronously(TogglePvP.getPlugin(), () -> { + if (!sender.hasPermission("togglepvp.command.reload")) { + String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); + BaseComponent[] component = TextComponent.fromLegacyText(message); + sender.spigot().sendMessage(component); + return; + } + TogglePvP.getPlugin().reloadPluginConfig(sender); + }); + + } + +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index fc473ba..b39c5cb 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -13,4 +13,7 @@ permissions: description: Allows usage of /pvp command togglepvp.command.toggle: default: true - description: Allows usage of /pvp toggle/enable/disable command \ No newline at end of file + description: Allows usage of /pvp toggle/enable/disable command + togglepvp.command.reload: + default: op + description: Allows usage of /pvp reload command \ No newline at end of file