1
mirror of https://github.com/CarmJos/UserPrefix.git synced 2024-09-19 20:15:47 +00:00

feat(cmd): 使用命令为玩家更换称号 (#37)

* feat(cmd): 使用命令为玩家更换称号 #35
This commit is contained in:
Carm Jos 2022-10-02 15:44:24 +08:00 committed by GitHub
parent 01a83d5c9e
commit 2fc2474f89
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 85 additions and 7 deletions

View File

@ -13,13 +13,13 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<easyplugin.version>1.4.14</easyplugin.version>
<easyplugin.version>1.4.15</easyplugin.version>
<mineconfig.version>2.1.0</mineconfig.version>
</properties>
<groupId>cc.carm.plugin</groupId>
<artifactId>userprefix</artifactId>
<version>3.0.2</version>
<version>3.0.3</version>
<name>UserPrefix</name>
<description>轻便、高效、实时的用户前缀系统。</description>

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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<AdminCommand> {
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;
}
}

View File

@ -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<String> NOT_ONLINE = ConfiguredMessageList.asStrings()
.defaults("&7玩家 &b%(player) &7并不在线。")
.params("player").build();
public static ConfiguredMessageList<String> 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<String> SUCCESS = ConfiguredMessageList.asStrings()
.defaults("&a&l设置成功&7成功设定玩家 &b%(player) &f的前缀为 &r%(prefix) &f。")
.params("player", "prefix").build();
public static ConfiguredMessageList<String> PREFIX_NOT_FOUND = ConfiguredMessageList.asStrings()
.defaults("&c&l无法设置&7不存在ID为 &b%(prefix) &7的前缀。")
.params("prefix").build();
public static ConfiguredMessageList<String> 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 {