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();
+
+
}