From 463874a024aa9fec083591d9c8900907d28fa389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Wed, 25 Oct 2023 00:55:51 +0200 Subject: [PATCH] Added TabCompleter to base ApplianceCommand --- .../eu/mhsl/craftattack/spawn/appliance/Appliance.java | 1 + .../craftattack/spawn/appliance/ApplianceCommand.java | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java b/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java index c1007fa..74403c7 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliance/Appliance.java @@ -75,6 +75,7 @@ public abstract class Appliance { PluginCommand command = plugin.getCommand(name); if(command != null) { command.setExecutor(executor); + command.setTabCompleter(executor); } else { Bukkit.getLogger().warning("Command " + name + " is not specified in plugin.yml!"); } diff --git a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java b/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java index d7f1f72..118d3b7 100644 --- a/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java +++ b/src/main/java/eu/mhsl/craftattack/spawn/appliance/ApplianceCommand.java @@ -7,16 +7,18 @@ 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 org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.util.List; import java.util.Optional; /** * Utility class which enables command name definition over a constructor. */ -public abstract class ApplianceCommand implements ApplianceSupplier, CommandExecutor { +public abstract class ApplianceCommand implements ApplianceSupplier, TabCompleter, CommandExecutor { public String commandName; private final T appliance; protected Component errorMessage = Component.text("Error whilst executing command").color(NamedTextColor.RED); @@ -43,6 +45,11 @@ public abstract class ApplianceCommand implements Appliance return true; } + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + return null; + } + protected abstract void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args); @Override