mirror of
https://github.com/CarmJos/UserPrefix.git
synced 2024-09-19 20:15:47 +00:00
chore(cmd): 重构指令的实现方式。
This commit is contained in:
parent
7c2391a3b0
commit
fa9f3bc1ed
13
pom.xml
13
pom.xml
@ -13,8 +13,8 @@
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
|
||||
|
||||
<easyplugin.version>1.4.10</easyplugin.version>
|
||||
<mineconfig.version>2.0.1</mineconfig.version>
|
||||
<easyplugin.version>1.4.13</easyplugin.version>
|
||||
<mineconfig.version>2.0.2</mineconfig.version>
|
||||
</properties>
|
||||
|
||||
<groupId>cc.carm.plugin</groupId>
|
||||
@ -113,6 +113,14 @@
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<artifactId>easyplugin-command</artifactId>
|
||||
<version>${easyplugin.version}</version>
|
||||
<scope>compile</scope>
|
||||
<optional>true</optional>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cc.carm.lib</groupId>
|
||||
<artifactId>easyplugin-gui</artifactId>
|
||||
@ -277,6 +285,7 @@
|
||||
<finalName>${project.name}-${project.version}</finalName>
|
||||
<outputDirectory>${project.basedir}/asset/</outputDirectory>
|
||||
<createDependencyReducedPom>false</createDependencyReducedPom>
|
||||
<minimizeJar>true</minimizeJar>
|
||||
<relocations>
|
||||
<relocation>
|
||||
<pattern>org.bstats</pattern>
|
||||
|
@ -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();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user