diff --git a/src/main/java/org/ultramine/commands/completion/DefaultCompleters.java b/src/main/java/org/ultramine/commands/completion/DefaultCompleters.java index 7af8a11..2ee6827 100644 --- a/src/main/java/org/ultramine/commands/completion/DefaultCompleters.java +++ b/src/main/java/org/ultramine/commands/completion/DefaultCompleters.java @@ -14,34 +14,34 @@ @ArgumentCompleter(value = "player", isUsername = true) public static List player(String val, String[] args) { - return getListOfStringsMatchingWord(val, MinecraftServer.getServer().getAllUsernames()); + return filterArray(val, MinecraftServer.getServer().getAllUsernames()); } @ArgumentCompleter("item") public static List item(String val, String[] args) { - return getListOfStringsFromIterableMatchingWord(val, Item.itemRegistry.getKeys()); + return filterCollection(val, Item.itemRegistry.getKeys()); } @ArgumentCompleter("block") public static List block(String val, String[] args) { - return getListOfStringsFromIterableMatchingWord(val, Block.blockRegistry.getKeys()); + return filterCollection(val, Block.blockRegistry.getKeys()); } @ArgumentCompleter("entity") public static List entity(String val, String[] args) { - return getListOfStringsFromIterableMatchingWord(val, EntityList.func_151515_b()); + return filterCollection(val, EntityList.func_151515_b()); } @ArgumentCompleter("list") public static List list(String val, String[] args) { - return getListOfStringsMatchingWord(val, args); + return filterArray(val, args); } - public static List getListOfStringsMatchingWord(String filter, String[] strings) + public static List filterArray(String filter, String[] strings) { List result = new ArrayList(); @@ -54,7 +54,7 @@ return result; } - public static List getListOfStringsFromIterableMatchingWord(String filter, Iterable iterable) + public static List filterCollection(String filter, Iterable iterable) { List result = new ArrayList(); diff --git a/src/test/groovy/org/ultramine/commands/completion/CommandCompletionHandlerTest.groovy b/src/test/groovy/org/ultramine/commands/completion/CommandCompletionHandlerTest.groovy new file mode 100644 index 0000000..01c82c6 --- /dev/null +++ b/src/test/groovy/org/ultramine/commands/completion/CommandCompletionHandlerTest.groovy @@ -0,0 +1,21 @@ +package org.ultramine.commands.completion + +import spock.lang.Specification + +class CommandCompletionHandlerTest extends Specification { + + def "Test completion"() { + setup: + def argumentHandler = Mock(IArgumentCompletionHandler) + def commandHandler = new CommandCompletionHandler() + + when: "Add argument handler to command handler" + commandHandler.addNextArgument(argumentHandler, "a", "b") + + and: "Get completion for first argument" + commandHandler.getCompletionOptions("as") + + then: "Argument handler is called" + 1 * argumentHandler.handleCompletion("as", "a", "b") + } +}