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

chore(cmd): 重构指令的实现方式。

This commit is contained in:
Carm Jos 2022-08-06 18:04:54 +08:00
parent 7c2391a3b0
commit fa9f3bc1ed
6 changed files with 113 additions and 52 deletions

13
pom.xml
View File

@ -13,8 +13,8 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding> <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<easyplugin.version>1.4.10</easyplugin.version> <easyplugin.version>1.4.13</easyplugin.version>
<mineconfig.version>2.0.1</mineconfig.version> <mineconfig.version>2.0.2</mineconfig.version>
</properties> </properties>
<groupId>cc.carm.plugin</groupId> <groupId>cc.carm.plugin</groupId>
@ -113,6 +113,14 @@
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
<dependency>
<groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-command</artifactId>
<version>${easyplugin.version}</version>
<scope>compile</scope>
<optional>true</optional>
</dependency>
<dependency> <dependency>
<groupId>cc.carm.lib</groupId> <groupId>cc.carm.lib</groupId>
<artifactId>easyplugin-gui</artifactId> <artifactId>easyplugin-gui</artifactId>
@ -277,6 +285,7 @@
<finalName>${project.name}-${project.version}</finalName> <finalName>${project.name}-${project.version}</finalName>
<outputDirectory>${project.basedir}/asset/</outputDirectory> <outputDirectory>${project.basedir}/asset/</outputDirectory>
<createDependencyReducedPom>false</createDependencyReducedPom> <createDependencyReducedPom>false</createDependencyReducedPom>
<minimizeJar>true</minimizeJar>
<relocations> <relocations>
<relocation> <relocation>
<pattern>org.bstats</pattern> <pattern>org.bstats</pattern>

View File

@ -48,7 +48,7 @@ public class Main extends EasyPlugin {
log("注册指令..."); log("注册指令...");
registerCommand("UserPrefix", new UserCommand()); registerCommand("UserPrefix", new UserCommand());
registerCommand("UserPrefixAdmin", new AdminCommand()); registerCommand("UserPrefixAdmin", new AdminCommand(this));
log("注册监听器..."); log("注册监听器...");
registerListener(new UserListener()); registerListener(new UserListener());

View File

@ -1,63 +1,36 @@
package cc.carm.plugin.userprefix.command; 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.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.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull; 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 @Override
public boolean onCommand(@NotNull CommandSender sender, @NotNull Command command, @NotNull String s, @NotNull String[] args) { public void noArgs(CommandSender sender) {
if (args.length == 1) { help(sender);
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 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); PluginMessages.COMMAND_USAGE.ADMIN.send(sender);
return true; return null;
} }
} }

View File

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

View File

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

View File

@ -20,6 +20,11 @@ public class PluginMessages extends ConfigurationRoot {
"&8- &7重载前缀配置。" "&8- &7重载前缀配置。"
).build(); ).build();
public static ConfiguredMessageList<String> NO_PERM = ConfiguredMessageList.asStrings()
.defaults("&c&l抱歉&f但您没有权限使用该指令。")
.build();
} }