From 62e84006afbe8735e1d26e79495342c15669f1f2 Mon Sep 17 00:00:00 2001 From: msg_dw <47678460+msgdw@users.noreply.github.com> Date: Wed, 9 Jun 2021 14:00:38 +0800 Subject: [PATCH] 1.2.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 更新内容: 1. 修复一个已知问题 现在1.13+ 也允许在不重启服务器的情况下更新命令列表 --- pom.xml | 19 ++++--------------- .../sandiao/plugin/commandwhitelist/Main.java | 13 ++++++++++--- .../commandwhitelist/command/MainCommand.java | 6 ++++++ .../listener/TabCompletePackageListener.java | 16 ++++++++++++++++ 4 files changed, 36 insertions(+), 18 deletions(-) diff --git a/pom.xml b/pom.xml index 6212c9e..0a3a54e 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ pro.sandiao.plugin CommandWhitelist - 1.2.0 + 1.2.1 jar CommandWhitelist @@ -19,11 +19,6 @@ spigot-repo https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - nms-repo - https://repo.codemc.io/repository/nms/ - placeholderapi @@ -37,18 +32,12 @@ - - - org.spigotmc - spigot-api - 1.14.4-R0.1-SNAPSHOT - provided - - + org.spigotmc spigot - 1.14.4-R0.1-20191224.232152-15 + 1.16.5-R0.1-SNAPSHOT + provided diff --git a/src/main/java/pro/sandiao/plugin/commandwhitelist/Main.java b/src/main/java/pro/sandiao/plugin/commandwhitelist/Main.java index 6b82152..f1a9f41 100644 --- a/src/main/java/pro/sandiao/plugin/commandwhitelist/Main.java +++ b/src/main/java/pro/sandiao/plugin/commandwhitelist/Main.java @@ -67,7 +67,7 @@ public void onEnable() { Bukkit.getConsoleSender().sendMessage("[CommandWhitelis] §aBlocking command turned on."); } - int i = Integer.valueOf(version.split("_")[1]); + int i = Integer.parseInt(version.split("_")[1]); if (version.startsWith("v1") && i < 13) { isHighVersion = false; } else { @@ -138,10 +138,17 @@ public void onReload(CommandSender sender) { reloadConfig(); whitelistManager.loadWhitelistByConfigFile(getConfig()); whitelistManager.loadGroupByConfigFile(getGroupConfig()); + updateCompleteList(); + sender.sendMessage("[CommandWhitelis] §aPlugin reload success."); + } + + /** + * 1.13+ 更新补全列表 + */ + public void updateCompleteList() { if (tabCompletePackageListener != null) { - Bukkit.getOnlinePlayers().forEach(tabCompletePackageListener.getTabCompletePacketAdapter()::sendPacket); + tabCompletePackageListener.updateCompleteList(); } - sender.sendMessage("[CommandWhitelis] §aPlugin reload success."); } /** diff --git a/src/main/java/pro/sandiao/plugin/commandwhitelist/command/MainCommand.java b/src/main/java/pro/sandiao/plugin/commandwhitelist/command/MainCommand.java index c226173..b90ef8f 100644 --- a/src/main/java/pro/sandiao/plugin/commandwhitelist/command/MainCommand.java +++ b/src/main/java/pro/sandiao/plugin/commandwhitelist/command/MainCommand.java @@ -125,6 +125,7 @@ private void addCommand(CommandSender sender, String[] args) { config.set("command-whitelist.list", list); Main.getInstance().saveConfig(); Main.getWhitelistManager().loadWhitelistByConfigFile(Main.getInstance().getConfig()); + Main.getInstance().updateCompleteList(); sender.sendMessage("成功向命令白名单内添加命令 " + args[1]); } @@ -142,6 +143,7 @@ private void addComplete(CommandSender sender, String[] args) { config.set("tab-complete-whitelist.list", list); Main.getInstance().saveConfig(); Main.getWhitelistManager().loadWhitelistByConfigFile(Main.getInstance().getConfig()); + Main.getInstance().updateCompleteList(); sender.sendMessage("成功向补全白名单内添加命令 " + args[1]); } @@ -159,6 +161,7 @@ private void addGroupCommand(CommandSender sender, String[] args) { config.set("group." + args[1], list); Main.getInstance().saveGroupConfig(); Main.getWhitelistManager().loadGroupByConfigFile(Main.getInstance().getGroupConfig()); + Main.getInstance().updateCompleteList(); sender.sendMessage("成功向组 " + args[1] + " 内添加命令 " + args[2]); } @@ -179,6 +182,7 @@ private void removeCommand(CommandSender sender, String[] args) { config.set("command-whitelist.list", list); Main.getInstance().saveConfig(); Main.getWhitelistManager().loadWhitelistByConfigFile(Main.getInstance().getConfig()); + Main.getInstance().updateCompleteList(); sender.sendMessage("成功从命令白名单中移除命令 " + args[1]); } @@ -199,6 +203,7 @@ private void removeComplete(CommandSender sender, String[] args) { config.set("tab-complete-whitelist.list", list); Main.getInstance().saveConfig(); Main.getWhitelistManager().loadWhitelistByConfigFile(Main.getInstance().getConfig()); + Main.getInstance().updateCompleteList(); sender.sendMessage("成功从补全白名单中移除命令 " + args[1]); } @@ -219,6 +224,7 @@ private void removeGroupCommand(CommandSender sender, String[] args) { config.set("group." + args[1], list.isEmpty() ? null : list); Main.getInstance().saveGroupConfig(); Main.getWhitelistManager().loadGroupByConfigFile(Main.getInstance().getGroupConfig()); + Main.getInstance().updateCompleteList(); sender.sendMessage("成功从组 " + args[1] + " 内移除命令 " + args[2]); } diff --git a/src/main/java/pro/sandiao/plugin/commandwhitelist/listener/TabCompletePackageListener.java b/src/main/java/pro/sandiao/plugin/commandwhitelist/listener/TabCompletePackageListener.java index 64d3d86..b4c8f40 100644 --- a/src/main/java/pro/sandiao/plugin/commandwhitelist/listener/TabCompletePackageListener.java +++ b/src/main/java/pro/sandiao/plugin/commandwhitelist/listener/TabCompletePackageListener.java @@ -3,6 +3,8 @@ import com.comphenix.protocol.ProtocolLibrary; import com.comphenix.protocol.ProtocolManager; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.plugin.Plugin; import pro.sandiao.plugin.commandwhitelist.listener.adapter.NewTabCompletePacketAdapter; @@ -42,4 +44,18 @@ public void registerListener(boolean isHighVersion) { public TabCompletePacketAdapter getTabCompletePacketAdapter() { return tabCompletePacketAdapter; } + + /** + * 更新补全列表 + * + * 1.13+ + */ + public void updateCompleteList() { + if (tabCompletePacketAdapter instanceof NewTabCompletePacketAdapter) { + for (Player player : Bukkit.getOnlinePlayers()) { + tabCompletePacketAdapter.sendPacket(player); + player.updateCommands(); + } + } + } } \ No newline at end of file