diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandCompletions.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandCompletions.java index 53a8d8ca..7c550d2d 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandCompletions.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandCompletions.java @@ -39,15 +39,15 @@ import java.util.stream.Collectors; import java.util.stream.Stream; @SuppressWarnings("WeakerAccess") -public class BukkitCommandCompletions extends CommandCompletions { +public class BukkitCommandCompletions extends CommandCompletions { public BukkitCommandCompletions(BukkitCommandManager manager) { super(manager); - registerCompletion("mobs", (sender, config, input, c) -> { + registerCompletion("mobs", c -> { final Stream normal = Stream.of(EntityType.values()) .map(entityType -> ACFUtil.simplifyString(entityType.getName())); return normal.collect(Collectors.toList()); }); - registerCompletion("chatcolors", (sender, config, input, c) -> { + registerCompletion("chatcolors", c -> { Stream colors = Stream.of(ChatColor.values()); if (c.hasConfig("colorsonly")) { colors = colors.filter(color -> color.ordinal() <= 0xF); @@ -62,11 +62,12 @@ public class BukkitCommandCompletions extends CommandCompletions ACFUtil.simplifyString(color.name())).collect(Collectors.toList()); }); - registerCompletion("worlds", (sender, config, input, c) -> ( + registerCompletion("worlds", c -> ( Bukkit.getWorlds().stream().map(World::getName).collect(Collectors.toList()) )); - registerCompletion("players", (sender, config, input, c) -> { + registerCompletion("players", c -> { + CommandSender sender = c.getSender(); Validate.notNull(sender, "Sender cannot be null"); Player senderPlayer = sender instanceof Player ? (Player) sender : null; @@ -74,7 +75,7 @@ public class BukkitCommandCompletions extends CommandCompletions matchedPlayers = new ArrayList(); for (Player player : Bukkit.getOnlinePlayers()) { String name = player.getName(); - if ((senderPlayer == null || senderPlayer.canSee(player)) && StringUtil.startsWithIgnoreCase(name, input)) { + if ((senderPlayer == null || senderPlayer.canSee(player)) && StringUtil.startsWithIgnoreCase(name, c.getInput())) { matchedPlayers.add(name); } } diff --git a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java index d1e18931..e14aa298 100644 --- a/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java +++ b/bukkit/src/main/java/co/aikar/commands/BukkitCommandManager.java @@ -105,7 +105,7 @@ public class BukkitCommandManager extends CommandManager { } @Override - public synchronized CommandCompletions getCommandCompletions() { + public synchronized CommandCompletions getCommandCompletions() { if (this.completions == null) { this.completions = new BukkitCommandCompletions(this); } diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandCompletions.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandCompletions.java index 7a53196c..e5c30d9c 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandCompletions.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandCompletions.java @@ -35,11 +35,11 @@ import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; -public class BungeeCommandCompletions extends CommandCompletions { +public class BungeeCommandCompletions extends CommandCompletions { public BungeeCommandCompletions(CommandManager manager) { super(manager); - registerCompletion("chatcolors", (sender, config, input, c) -> { + registerCompletion("chatcolors", c -> { Stream colors = Stream.of(ChatColor.values()); if (c.hasConfig("colorsonly")) { colors = colors.filter(color -> color.ordinal() <= 0xF); @@ -54,8 +54,10 @@ public class BungeeCommandCompletions extends CommandCompletions ACFUtil.simplifyString(color.name())).collect(Collectors.toList()); }); - registerCompletion("players", (sender, config, input, c) -> { + registerCompletion("players", c -> { + CommandSender sender = c.getSender(); ACFBungeeUtil.validate(sender, "Sender cannot be null"); + String input = c.getInput(); ArrayList matchedPlayers = new ArrayList<>(); for (ProxiedPlayer player : ProxyServer.getInstance().getPlayers()) { diff --git a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java index 4c28e683..2ba99b4d 100644 --- a/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java +++ b/bungee/src/main/java/co/aikar/commands/BungeeCommandManager.java @@ -60,7 +60,7 @@ public class BungeeCommandManager extends CommandManager { } @Override - public synchronized CommandCompletions getCommandCompletions() { + public synchronized CommandCompletions getCommandCompletions() { if (this.completions == null) { this.completions = new BungeeCommandCompletions(this); } @@ -69,7 +69,6 @@ public class BungeeCommandManager extends CommandManager { @Override public void registerCommand(BaseCommand command) { - final String plugin = this.plugin.getDescription().getName().toLowerCase(); command.onRegister(this); for (Map.Entry entry : command.registeredCommands.entrySet()) { String key = entry.getKey().toLowerCase(); diff --git a/core/src/main/java/co/aikar/commands/CommandCompletions.java b/core/src/main/java/co/aikar/commands/CommandCompletions.java index 079b66aa..d9fe1798 100644 --- a/core/src/main/java/co/aikar/commands/CommandCompletions.java +++ b/core/src/main/java/co/aikar/commands/CommandCompletions.java @@ -37,13 +37,14 @@ import java.util.stream.IntStream; @SuppressWarnings({"WeakerAccess", "UnusedReturnValue"}) -public class CommandCompletions { +public class CommandCompletions { private final CommandManager manager; private Map completionMap = new HashMap<>(); public CommandCompletions(CommandManager manager) { this.manager = manager; - registerCompletion("range", (sender, config, input, c) -> { + registerCompletion("range", (c) -> { + String config = c.getConfig(); if (config == null) { return ImmutableList.of(); } @@ -59,10 +60,10 @@ public class CommandCompletions { } return IntStream.rangeClosed(start, end).mapToObj(Integer::toString).collect(Collectors.toList()); }); - registerCompletion("timeunits", (sender, config, input, c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years")); + registerCompletion("timeunits", (c) -> ImmutableList.of("minutes", "hours", "days", "weeks", "months", "years")); } - public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler handler) { + public CommandCompletionHandler registerCompletion(String id, CommandCompletionHandler handler) { return this.completionMap.put("@" + id.toLowerCase(), handler); } @@ -96,7 +97,7 @@ public class CommandCompletions { try { //noinspection unchecked - Collection completions = handler.getCompletions(sender.getIssuer(), config, input, context); + Collection completions = handler.getCompletions(context); if (completions != null) { allCompletions.addAll(completions); continue; @@ -120,8 +121,8 @@ public class CommandCompletions { return allCompletions; } - public interface CommandCompletionHandler { - Collection getCompletions(I sender, String config, String input, C context) throws InvalidCommandArgument; + public interface CommandCompletionHandler { + Collection getCompletions(C context) throws InvalidCommandArgument; } } diff --git a/core/src/main/java/co/aikar/commands/CommandManager.java b/core/src/main/java/co/aikar/commands/CommandManager.java index 5929726d..b423d04f 100644 --- a/core/src/main/java/co/aikar/commands/CommandManager.java +++ b/core/src/main/java/co/aikar/commands/CommandManager.java @@ -45,7 +45,7 @@ abstract class CommandManager { * Gets the command completions manager * @return Command Completions */ - public abstract CommandCompletions getCommandCompletions(); + public abstract CommandCompletions getCommandCompletions(); /** * Lets you add custom string replacements that can be applied to annotation values, diff --git a/example/src/main/java/co/aikar/acfexample/ACFExample.java b/example/src/main/java/co/aikar/acfexample/ACFExample.java index 6ed8c990..d9abe5e0 100644 --- a/example/src/main/java/co/aikar/acfexample/ACFExample.java +++ b/example/src/main/java/co/aikar/acfexample/ACFExample.java @@ -42,7 +42,7 @@ public final class ACFExample extends JavaPlugin { commandManager.getCommandReplacements().addReplacements("test", "foobar", "%foo", "barbaz"); commandManager.getCommandReplacements().addReplacement("testcmd", "test4|foobar|barbaz"); commandManager.getCommandContexts().registerContext(SomeObject.class, SomeObject.getContextResolver()); - commandManager.getCommandCompletions().registerCompletion("test", (sender, config, input, c) -> ( + commandManager.getCommandCompletions().registerCompletion("test", c -> ( Lists.newArrayList("foo", "bar", "baz") )); commandManager.registerCommand(new SomeCommand()); diff --git a/paper/src/main/java/co/aikar/commands/PaperCommandManager.java b/paper/src/main/java/co/aikar/commands/PaperCommandManager.java index 28d0e1f8..5dd84b1d 100644 --- a/paper/src/main/java/co/aikar/commands/PaperCommandManager.java +++ b/paper/src/main/java/co/aikar/commands/PaperCommandManager.java @@ -43,7 +43,7 @@ public class PaperCommandManager extends BukkitCommandManager { } @Override - public synchronized CommandCompletions getCommandCompletions() { + public synchronized CommandCompletions getCommandCompletions() { if (this.completions == null) { this.completions = new PaperCommandCompletions(this); } diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandCompletions.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandCompletions.java index 2a073c24..ac757bb3 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandCompletions.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandCompletions.java @@ -23,10 +23,8 @@ package co.aikar.commands; -import org.spongepowered.api.command.CommandSource; - @SuppressWarnings("WeakerAccess") -public class SpongeCommandCompletions extends CommandCompletions { +public class SpongeCommandCompletions extends CommandCompletions { public SpongeCommandCompletions(final SpongeCommandManager manager) { super(manager); diff --git a/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java b/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java index 7b9eb8be..517562ff 100644 --- a/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java +++ b/sponge/src/main/java/co/aikar/commands/SpongeCommandManager.java @@ -62,7 +62,7 @@ public class SpongeCommandManager extends CommandManager { } @Override - public synchronized CommandCompletions getCommandCompletions() { + public synchronized CommandCompletions getCommandCompletions() { if (this.completions == null) { this.completions = new SpongeCommandCompletions(this); }