mirror of
https://github.com/CarmJos/UserPrefix.git
synced 2026-06-05 00:35:02 +08:00
chore(cmd): 重构指令的实现方式。
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -20,6 +20,11 @@ public class PluginMessages extends ConfigurationRoot {
|
||||
"&8- &7重载前缀配置。"
|
||||
).build();
|
||||
|
||||
public static ConfiguredMessageList<String> NO_PERM = ConfiguredMessageList.asStrings()
|
||||
.defaults("&c&l抱歉!&f但您没有权限使用该指令。")
|
||||
.build();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user