From fa9f3bc1edf5fe4fb2ed4cc456a794fc0341f2cf Mon Sep 17 00:00:00 2001 From: carm Date: Sat, 6 Aug 2022 18:04:54 +0800 Subject: [PATCH] =?UTF-8?q?chore(cmd):=20=E9=87=8D=E6=9E=84=E6=8C=87?= =?UTF-8?q?=E4=BB=A4=E7=9A=84=E5=AE=9E=E7=8E=B0=E6=96=B9=E5=BC=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 13 +++- .../java/cc/carm/plugin/userprefix/Main.java | 2 +- .../userprefix/command/AdminCommand.java | 71 ++++++------------- .../userprefix/command/sub/ListCommand.java | 33 +++++++++ .../userprefix/command/sub/ReloadCommand.java | 41 +++++++++++ .../userprefix/conf/PluginMessages.java | 5 ++ 6 files changed, 113 insertions(+), 52 deletions(-) create mode 100644 src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java create mode 100644 src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java diff --git a/pom.xml b/pom.xml index 0468b21..cad98a7 100644 --- a/pom.xml +++ b/pom.xml @@ -13,8 +13,8 @@ UTF-8 UTF-8 - 1.4.10 - 2.0.1 + 1.4.13 + 2.0.2 cc.carm.plugin @@ -113,6 +113,14 @@ true + + cc.carm.lib + easyplugin-command + ${easyplugin.version} + compile + true + + cc.carm.lib easyplugin-gui @@ -277,6 +285,7 @@ ${project.name}-${project.version} ${project.basedir}/asset/ false + true org.bstats diff --git a/src/main/java/cc/carm/plugin/userprefix/Main.java b/src/main/java/cc/carm/plugin/userprefix/Main.java index 94f2c93..81d7e4f 100644 --- a/src/main/java/cc/carm/plugin/userprefix/Main.java +++ b/src/main/java/cc/carm/plugin/userprefix/Main.java @@ -48,7 +48,7 @@ public class Main extends EasyPlugin { log("注册指令..."); registerCommand("UserPrefix", new UserCommand()); - registerCommand("UserPrefixAdmin", new AdminCommand()); + registerCommand("UserPrefixAdmin", new AdminCommand(this)); log("注册监听器..."); registerListener(new UserListener()); diff --git a/src/main/java/cc/carm/plugin/userprefix/command/AdminCommand.java b/src/main/java/cc/carm/plugin/userprefix/command/AdminCommand.java index 1b0cd54..35ceba0 100644 --- a/src/main/java/cc/carm/plugin/userprefix/command/AdminCommand.java +++ b/src/main/java/cc/carm/plugin/userprefix/command/AdminCommand.java @@ -1,63 +1,36 @@ package cc.carm.plugin.userprefix.command; -import cc.carm.plugin.userprefix.UserPrefixAPI; +import cc.carm.lib.easyplugin.command.CommandHandler; +import cc.carm.plugin.userprefix.command.sub.ListCommand; +import cc.carm.plugin.userprefix.command.sub.ReloadCommand; import cc.carm.plugin.userprefix.conf.PluginMessages; -import cc.carm.plugin.userprefix.conf.prefix.PrefixConfig; -import cc.carm.plugin.userprefix.ui.PrefixSelectGUI; -import org.bukkit.Bukkit; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; -import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; import org.jetbrains.annotations.NotNull; -public class AdminCommand implements CommandExecutor { +public class AdminCommand extends CommandHandler { + + + public AdminCommand(@NotNull JavaPlugin plugin) { + super(plugin); + registerSubCommand(new ListCommand("list", "l")); + registerSubCommand(new ReloadCommand("reload")); + + } @Override - public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) { - if (args.length == 1) { - String aim = args[0]; - if (aim.equalsIgnoreCase("list")) { - PluginMessages.LIST.HEADER.send(sender); - for (PrefixConfig value : UserPrefixAPI.getPrefixManager().getPrefixes().values()) { - PluginMessages.LIST.VALUE.send(sender, - value.getWeight(), value.getIdentifier(), - value.getName(), value.getPermission(), - value.getContent(), sender.getName() - ); - } - return true; - } else if (aim.equalsIgnoreCase("reload")) { - long s1 = System.currentTimeMillis(); - PrefixSelectGUI.closeAll(); // 关掉所有正在显示的前缀列表 - try { - UserPrefixAPI.getConfigManager().reload(); // 重载配置文件 - int num = UserPrefixAPI.getPrefixManager().loadPrefixes(); //加载重载后了的前缀配置 - for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { - UserPrefixAPI.getUserManager().checkPrefix(onlinePlayer, false); - /* - * 这里关掉loadOthers(为其他玩家更新)了。 - * 因为每个玩家更新的时候会为其他人更新自己, - * 全部走完一遍后,所有玩家都会加载最新的前缀内容。 - */ - UserPrefixAPI.getUserManager().updatePrefixView(onlinePlayer, false); - } - PluginMessages.RELOAD.SUCCESS.send(sender, System.currentTimeMillis() - s1, num); - } catch (Exception e) { - PluginMessages.RELOAD.FAILED.send(sender, e.getMessage()); - e.printStackTrace(); - } - return true; - } - return help(sender); - } - return help(sender); + public void noArgs(CommandSender sender) { + help(sender); } - public static boolean help(CommandSender sender) { + @Override + public void noPermission(CommandSender sender) { + PluginMessages.COMMAND_USAGE.NO_PERM.send(sender); + } + + public static Void help(CommandSender sender) { PluginMessages.COMMAND_USAGE.ADMIN.send(sender); - return true; + return null; } - } diff --git a/src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java b/src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java new file mode 100644 index 0000000..b4aa57f --- /dev/null +++ b/src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java @@ -0,0 +1,33 @@ +package cc.carm.plugin.userprefix.command.sub; + +import cc.carm.lib.easyplugin.command.SubCommand; +import cc.carm.plugin.userprefix.UserPrefixAPI; +import cc.carm.plugin.userprefix.conf.PluginMessages; +import cc.carm.plugin.userprefix.conf.prefix.PrefixConfig; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.java.JavaPlugin; + +public class ListCommand extends SubCommand { + + public ListCommand(String name, String... aliases) { + super(name, aliases); + } + + @Override + public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) { + PluginMessages.LIST.HEADER.send(sender); + for (PrefixConfig value : UserPrefixAPI.getPrefixManager().getPrefixes().values()) { + PluginMessages.LIST.VALUE.send(sender, + value.getWeight(), value.getIdentifier(), + value.getName(), value.getPermission(), + value.getContent(), sender.getName() + ); + } + + return null; + } + + + + +} diff --git a/src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java b/src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java new file mode 100644 index 0000000..a69423f --- /dev/null +++ b/src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java @@ -0,0 +1,41 @@ +package cc.carm.plugin.userprefix.command.sub; + +import cc.carm.lib.easyplugin.command.SubCommand; +import cc.carm.plugin.userprefix.UserPrefixAPI; +import cc.carm.plugin.userprefix.conf.PluginMessages; +import cc.carm.plugin.userprefix.ui.PrefixSelectGUI; +import org.bukkit.Bukkit; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.java.JavaPlugin; + +public class ReloadCommand extends SubCommand { + + public ReloadCommand(String name, String... aliases) { + super(name, aliases); + } + + @Override + public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) { + long s1 = System.currentTimeMillis(); + PrefixSelectGUI.closeAll(); // 关掉所有正在显示的前缀列表 + try { + UserPrefixAPI.getConfigManager().reload(); // 重载配置文件 + int num = UserPrefixAPI.getPrefixManager().loadPrefixes(); //加载重载后了的前缀配置 + for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { + UserPrefixAPI.getUserManager().checkPrefix(onlinePlayer, false); + /* + * 这里关掉loadOthers(为其他玩家更新)了。 + * 因为每个玩家更新的时候会为其他人更新自己, + * 全部走完一遍后,所有玩家都会加载最新的前缀内容。 + */ + UserPrefixAPI.getUserManager().updatePrefixView(onlinePlayer, false); + } + PluginMessages.RELOAD.SUCCESS.send(sender, System.currentTimeMillis() - s1, num); + } catch (Exception e) { + PluginMessages.RELOAD.FAILED.send(sender, e.getMessage()); + e.printStackTrace(); + } + return null; + } +} diff --git a/src/main/java/cc/carm/plugin/userprefix/conf/PluginMessages.java b/src/main/java/cc/carm/plugin/userprefix/conf/PluginMessages.java index e97b666..684b602 100644 --- a/src/main/java/cc/carm/plugin/userprefix/conf/PluginMessages.java +++ b/src/main/java/cc/carm/plugin/userprefix/conf/PluginMessages.java @@ -20,6 +20,11 @@ public class PluginMessages extends ConfigurationRoot { "&8- &7重载前缀配置。" ).build(); + public static ConfiguredMessageList NO_PERM = ConfiguredMessageList.asStrings() + .defaults("&c&l抱歉!&f但您没有权限使用该指令。") + .build(); + + }