diff --git a/pom.xml b/pom.xml
index 573a4f9..4a7e9b8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.minster586
ServerDevMode
- 1.0.2
+ 1.0.3
jar
ServerDevMode
Development mode plugin for Minecraft servers—tracing events and debugging logs
diff --git a/src/main/java/com/minster586/devmode/CommandHandler.java b/src/main/java/com/minster586/devmode/CommandHandler.java
index 89cbe6c..a39da03 100644
--- a/src/main/java/com/minster586/devmode/CommandHandler.java
+++ b/src/main/java/com/minster586/devmode/CommandHandler.java
@@ -5,7 +5,30 @@ import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
-public class CommandHandler implements CommandExecutor {
+import org.bukkit.command.TabCompleter;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+public class CommandHandler implements CommandExecutor, TabCompleter {
+ private static final List SUBCOMMANDS = Arrays.asList("on", "off", "level", "zip");
+ private static final List LEVELS = Arrays.asList("minimal", "verbose", "full");
+ @Override
+ public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) {
+ if (!sender.hasPermission("serverdevmode.use")) return Collections.emptyList();
+
+ if (args.length == 1) {
+ return SUBCOMMANDS.stream()
+ .filter(s -> s.startsWith(args[0].toLowerCase()))
+ .toList();
+ }
+ if (args.length == 2 && args[0].equalsIgnoreCase("level")) {
+ return LEVELS.stream()
+ .filter(l -> l.startsWith(args[1].toLowerCase()))
+ .toList();
+ }
+ return Collections.emptyList();
+ }
private final DevModeManager manager;
diff --git a/src/main/java/com/minster586/devmode/ServerDevMode.java b/src/main/java/com/minster586/devmode/ServerDevMode.java
index ad56ed8..04b1711 100644
--- a/src/main/java/com/minster586/devmode/ServerDevMode.java
+++ b/src/main/java/com/minster586/devmode/ServerDevMode.java
@@ -21,8 +21,11 @@ public class ServerDevMode extends JavaPlugin {
// Initialize dev mode manager with logger
devModeManager = new DevModeManager(this, logWriter);
- // Register command handler
- getCommand("devmode").setExecutor(new CommandHandler(devModeManager));
+
+ // Register command handler and tab completer
+ CommandHandler handler = new CommandHandler(devModeManager);
+ getCommand("devmode").setExecutor(handler);
+ getCommand("devmode").setTabCompleter(handler);
// Register listeners
getServer().getPluginManager().registerEvents(new ChatEventListener(devModeManager), this);
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 09b3413..a5cd6e3 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,5 +1,5 @@
name: ServerDevMode
-version: 1.0.2
+version: 1.0.3
main: com.minster586.devmode.ServerDevMode
api-version: 1.16
description: Server-wide development mode plugin for event tracing, chat logging, and debugging support.