diff --git a/pom.xml b/pom.xml
index 4ebe23b..95618ad 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,13 +13,13 @@
UTF-8
UTF-8
- 1.4.14
+ 1.4.15
2.1.0
cc.carm.plugin
userprefix
- 3.0.2
+ 3.0.3
UserPrefix
轻便、高效、实时的用户前缀系统。
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 c245ae1..7c7ad2c 100644
--- a/src/main/java/cc/carm/plugin/userprefix/command/AdminCommand.java
+++ b/src/main/java/cc/carm/plugin/userprefix/command/AdminCommand.java
@@ -1,8 +1,9 @@
package cc.carm.plugin.userprefix.command;
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.command.admin.ListCommand;
+import cc.carm.plugin.userprefix.command.admin.ReloadCommand;
+import cc.carm.plugin.userprefix.command.admin.SetCommand;
import cc.carm.plugin.userprefix.conf.PluginMessages;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin;
@@ -14,8 +15,8 @@ public class AdminCommand extends CommandHandler {
public AdminCommand(@NotNull JavaPlugin plugin) {
super(plugin);
registerSubCommand(new ListCommand(this, "list", "l"));
+ registerSubCommand(new SetCommand(this, "set"));
registerSubCommand(new ReloadCommand(this, "reload"));
-
}
@Override
diff --git a/src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java b/src/main/java/cc/carm/plugin/userprefix/command/admin/ListCommand.java
similarity index 95%
rename from src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java
rename to src/main/java/cc/carm/plugin/userprefix/command/admin/ListCommand.java
index 96092e8..c614639 100644
--- a/src/main/java/cc/carm/plugin/userprefix/command/sub/ListCommand.java
+++ b/src/main/java/cc/carm/plugin/userprefix/command/admin/ListCommand.java
@@ -1,4 +1,4 @@
-package cc.carm.plugin.userprefix.command.sub;
+package cc.carm.plugin.userprefix.command.admin;
import cc.carm.lib.easyplugin.command.SubCommand;
import cc.carm.plugin.userprefix.UserPrefixAPI;
diff --git a/src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java b/src/main/java/cc/carm/plugin/userprefix/command/admin/ReloadCommand.java
similarity index 97%
rename from src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java
rename to src/main/java/cc/carm/plugin/userprefix/command/admin/ReloadCommand.java
index 3ef9d07..2ec1407 100644
--- a/src/main/java/cc/carm/plugin/userprefix/command/sub/ReloadCommand.java
+++ b/src/main/java/cc/carm/plugin/userprefix/command/admin/ReloadCommand.java
@@ -1,4 +1,4 @@
-package cc.carm.plugin.userprefix.command.sub;
+package cc.carm.plugin.userprefix.command.admin;
import cc.carm.lib.easyplugin.command.SubCommand;
import cc.carm.plugin.userprefix.UserPrefixAPI;
diff --git a/src/main/java/cc/carm/plugin/userprefix/command/admin/SetCommand.java b/src/main/java/cc/carm/plugin/userprefix/command/admin/SetCommand.java
new file mode 100644
index 0000000..a68da77
--- /dev/null
+++ b/src/main/java/cc/carm/plugin/userprefix/command/admin/SetCommand.java
@@ -0,0 +1,54 @@
+package cc.carm.plugin.userprefix.command.admin;
+
+import cc.carm.lib.easyplugin.command.SubCommand;
+import cc.carm.plugin.userprefix.UserPrefixAPI;
+import cc.carm.plugin.userprefix.command.AdminCommand;
+import cc.carm.plugin.userprefix.conf.PluginMessages;
+import cc.carm.plugin.userprefix.conf.prefix.PrefixConfig;
+import org.bukkit.Bukkit;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+import org.bukkit.plugin.java.JavaPlugin;
+import org.jetbrains.annotations.NotNull;
+
+public class SetCommand extends SubCommand {
+
+ public SetCommand(@NotNull AdminCommand parent, String name, String... aliases) {
+ super(parent, name, aliases);
+ }
+
+ @Override
+ public Void execute(JavaPlugin plugin, CommandSender sender, String[] args) {
+ if (args.length < 2) return getParent().noArgs(sender);
+
+ Player target = Bukkit.getPlayer(args[0]);
+ if (target == null) {
+ PluginMessages.NOT_ONLINE.send(sender, args[0]);
+ return null;
+ }
+
+
+ PrefixConfig prefixConfig;
+ String prefixInput = args[1];
+ if (prefixInput.equalsIgnoreCase("default")) {
+ prefixConfig = UserPrefixAPI.getDefaultPrefix();
+ } else {
+ prefixConfig = UserPrefixAPI.getPrefixManager().getPrefix(prefixInput);
+ }
+
+ if (prefixConfig == null) {
+ PluginMessages.SET.PREFIX_NOT_FOUND.send(sender, prefixInput);
+ return null;
+ }
+
+ if (!prefixConfig.checkPermission(target)) {
+ PluginMessages.SET.NO_PERM.send(sender, target.getName(), prefixConfig.getName());
+ return null;
+ }
+
+ UserPrefixAPI.getUserManager().setPrefix(target, prefixConfig, true);
+ PluginMessages.SET.SUCCESS.send(sender, target.getName(), prefixConfig.getName());
+ 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 6533dce..7a22b3a 100644
--- a/src/main/java/cc/carm/plugin/userprefix/conf/PluginMessages.java
+++ b/src/main/java/cc/carm/plugin/userprefix/conf/PluginMessages.java
@@ -16,6 +16,9 @@ public class PluginMessages extends ConfigurationRoot {
"&3&l用户前缀系统 &f帮助",
"&8# &f/upa list",
"&8- &7查看当前前缀列表。",
+ "&8# &f/upa set &b<玩家ID> &b<前缀ID>",
+ "&8- &7为玩家设定指定前缀。",
+ "&8- &7&o注意:玩家必须拥有指定前缀的权限。",
"&8# &f/upa reload",
"&8- &7重载前缀配置。"
).build();
@@ -26,6 +29,9 @@ public class PluginMessages extends ConfigurationRoot {
}
+ public static ConfiguredMessageList NOT_ONLINE = ConfiguredMessageList.asStrings()
+ .defaults("&7玩家 &b%(player) &7并不在线。")
+ .params("player").build();
public static ConfiguredMessageList SELECTED = ConfiguredMessageList.asStrings()
.defaults("&7您选择了 &f%(name) &7作为当前显示的前缀。")
@@ -52,6 +58,23 @@ public class PluginMessages extends ConfigurationRoot {
.params("error").build();
}
+ public static final class SET {
+
+ public static ConfiguredMessageList SUCCESS = ConfiguredMessageList.asStrings()
+ .defaults("&a&l设置成功!&7成功设定玩家 &b%(player) &f的前缀为 &r%(prefix) &f。")
+ .params("player", "prefix").build();
+
+ public static ConfiguredMessageList PREFIX_NOT_FOUND = ConfiguredMessageList.asStrings()
+ .defaults("&c&l无法设置!&7不存在ID为 &b%(prefix) &7的前缀。")
+ .params("prefix").build();
+
+ public static ConfiguredMessageList NO_PERM = ConfiguredMessageList.asStrings()
+ .defaults("&c&l无法设置!&7玩家 &b%(player) &7并没有前缀 &r%(prefix) &7的前缀。")
+ .params("player", "prefix")
+ .build();
+
+ }
+
@HeaderComment("管理员使用的 “/upa list” 指令的格式")
public static final class LIST {