diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
index 61c0e34..e36dba7 100644
--- a/dependency-reduced-pom.xml
+++ b/dependency-reduced-pom.xml
@@ -3,7 +3,7 @@
4.0.0
ict.MineSunshineone
SimpleChat
- 1.4
+ 1.5
diff --git a/pom.xml b/pom.xml
index 8a0a651..f905889 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
ict.MineSunshineone
SimpleChat
- 1.4
+ 1.5
diff --git a/src/main/java/ict/minesunshineone/chat/SimpleChat.java b/src/main/java/ict/minesunshineone/chat/SimpleChat.java
index 3a32f63..ec46080 100644
--- a/src/main/java/ict/minesunshineone/chat/SimpleChat.java
+++ b/src/main/java/ict/minesunshineone/chat/SimpleChat.java
@@ -3,7 +3,6 @@
import org.bukkit.plugin.java.JavaPlugin;
import ict.minesunshineone.chat.commands.MuteCommand;
-import ict.minesunshineone.chat.commands.MuteCommandTabCompleter;
import ict.minesunshineone.chat.listeners.AnvilListener;
import ict.minesunshineone.chat.listeners.PingListener;
import ict.minesunshineone.chat.listeners.PlayerChatListener;
@@ -27,10 +26,11 @@ public void onEnable() {
getServer().getPluginManager().registerEvents(new PingListener(this), this);
// 注册命令
- getCommand("mute").setExecutor(new MuteCommand(muteManager));
- getCommand("unmute").setExecutor(new MuteCommand(muteManager));
- getCommand("mute").setTabCompleter(new MuteCommandTabCompleter());
- getCommand("unmute").setTabCompleter(new MuteCommandTabCompleter());
+ MuteCommand muteCommand = new MuteCommand(muteManager);
+ getCommand("mute").setExecutor(muteCommand);
+ getCommand("unmute").setExecutor(muteCommand);
+ getCommand("mute").setTabCompleter(muteCommand);
+ getCommand("unmute").setTabCompleter(muteCommand);
getLogger().info("SimpleChat插件已启用");
}
diff --git a/src/main/java/ict/minesunshineone/chat/commands/MuteCommand.java b/src/main/java/ict/minesunshineone/chat/commands/MuteCommand.java
index 246c3b9..e621e06 100644
--- a/src/main/java/ict/minesunshineone/chat/commands/MuteCommand.java
+++ b/src/main/java/ict/minesunshineone/chat/commands/MuteCommand.java
@@ -1,9 +1,14 @@
package ict.minesunshineone.chat.commands;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
+import org.bukkit.command.TabCompleter;
import org.bukkit.entity.Player;
import ict.minesunshineone.chat.managers.MuteManager;
@@ -11,7 +16,7 @@
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextColor;
-public class MuteCommand implements CommandExecutor {
+public class MuteCommand implements CommandExecutor, TabCompleter {
private final MuteManager muteManager;
@@ -19,6 +24,41 @@ public MuteCommand(MuteManager muteManager) {
this.muteManager = muteManager;
}
+ @Override
+ public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
+ List completions = new ArrayList<>();
+
+ if (command.getName().equalsIgnoreCase("mute")) {
+ if (args.length == 1) {
+ String partialPlayerName = args[0].toLowerCase();
+ completions.addAll(Bukkit.getOnlinePlayers().stream()
+ .map(Player::getName)
+ .filter(name -> name.toLowerCase().startsWith(partialPlayerName))
+ .collect(Collectors.toList()));
+ } else if (args.length == 2) {
+ String partialTime = args[1].toLowerCase();
+ for (String timeUnit : TimeUtils.getTimeUnits()) {
+ if (timeUnit.startsWith(partialTime)) {
+ completions.add(timeUnit);
+ }
+ }
+ } else if (args.length == 3) {
+ completions.add("违规发言");
+ completions.add("刷屏");
+ completions.add("辱骂他人");
+ completions.add("广告");
+ }
+ } else if (command.getName().equalsIgnoreCase("unmute") && args.length == 1) {
+ String partialPlayerName = args[0].toLowerCase();
+ completions.addAll(Bukkit.getOnlinePlayers().stream()
+ .map(Player::getName)
+ .filter(name -> name.toLowerCase().startsWith(partialPlayerName))
+ .collect(Collectors.toList()));
+ }
+
+ return completions;
+ }
+
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (command.getName().equalsIgnoreCase("mute")) {
diff --git a/src/main/java/ict/minesunshineone/chat/commands/MuteCommandTabCompleter.java b/src/main/java/ict/minesunshineone/chat/commands/MuteCommandTabCompleter.java
deleted file mode 100644
index a58d2bb..0000000
--- a/src/main/java/ict/minesunshineone/chat/commands/MuteCommandTabCompleter.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package ict.minesunshineone.chat.commands;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import org.bukkit.Bukkit;
-import org.bukkit.command.Command;
-import org.bukkit.command.CommandSender;
-import org.bukkit.command.TabCompleter;
-import org.bukkit.entity.Player;
-
-import ict.minesunshineone.chat.utils.TimeUtils;
-
-public class MuteCommandTabCompleter implements TabCompleter {
-
- @Override
- public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
- List completions = new ArrayList<>();
-
- if (command.getName().equalsIgnoreCase("mute")) {
- if (args.length == 1) {
- // 补全在线玩家名字
- String partialPlayerName = args[0].toLowerCase();
- completions.addAll(Bukkit.getOnlinePlayers().stream()
- .map(Player::getName)
- .filter(name -> name.toLowerCase().startsWith(partialPlayerName))
- .collect(Collectors.toList()));
- } else if (args.length == 2) {
- // 补全时间单位
- String partialTime = args[1].toLowerCase();
- for (String timeUnit : TimeUtils.getTimeUnits()) {
- if (timeUnit.startsWith(partialTime)) {
- completions.add(timeUnit);
- }
- }
- } else if (args.length == 3) {
- // 补全常用禁言理由
- completions.add("违规发言");
- completions.add("刷屏");
- completions.add("辱骂他人");
- completions.add("广告");
- }
- } else if (command.getName().equalsIgnoreCase("unmute")) {
- if (args.length == 1) {
- // 补全在线玩家名字
- String partialPlayerName = args[0].toLowerCase();
- completions.addAll(Bukkit.getOnlinePlayers().stream()
- .map(Player::getName)
- .filter(name -> name.toLowerCase().startsWith(partialPlayerName))
- .collect(Collectors.toList()));
- }
- }
-
- return completions;
- }
-}