basic bukkit implementation

This commit is contained in:
dfsek
2021-03-08 01:40:12 -07:00
parent 026a6066d3
commit b1256427a2
19 changed files with 356 additions and 54 deletions

View File

@@ -20,34 +20,34 @@ import static org.junit.jupiter.api.Assertions.fail;
public class CommandTest {
@Test
public void subcommand() throws CommandException {
CommandManager manager = new TerraCommandManager();
CommandManager manager = new TerraCommandManager(null);
manager.register("test", DemoParentCommand.class);
manager.execute("test", Arrays.asList("subcommand1", "first", "2"));
manager.execute("test", Arrays.asList("subcommand2", "first", "2"));
manager.execute("test", Arrays.asList("s1", "first", "2", "3.4"));
manager.execute("test", Arrays.asList("s2", "first", "2"));
manager.execute("test", Arrays.asList("sub1", "first", "2", "3.4"));
manager.execute("test", Arrays.asList("sub2", "first", "2"));
manager.execute("test", Arrays.asList("first", "2")); // Parent command args
manager.execute("test", null, Arrays.asList("subcommand1", "first", "2"));
manager.execute("test", null, Arrays.asList("subcommand2", "first", "2"));
manager.execute("test", null, Arrays.asList("s1", "first", "2", "3.4"));
manager.execute("test", null, Arrays.asList("s2", "first", "2"));
manager.execute("test", null, Arrays.asList("sub1", "first", "2", "3.4"));
manager.execute("test", null, Arrays.asList("sub2", "first", "2"));
manager.execute("test", null, Arrays.asList("first", "2")); // Parent command args
}
@Test
public void args() throws CommandException {
CommandManager manager = new TerraCommandManager();
CommandManager manager = new TerraCommandManager(null);
manager.register("test", DemoCommand.class);
manager.execute("test", Arrays.asList("first", "2"));
manager.execute("test", Arrays.asList("first", "2", "3.4"));
manager.execute("test", null, Arrays.asList("first", "2"));
manager.execute("test", null, Arrays.asList("first", "2", "3.4"));
}
@Test
public void argsBeforeFlags() throws CommandException {
CommandManager manager = new TerraCommandManager();
CommandManager manager = new TerraCommandManager(null);
manager.register("test", DemoCommand.class);
try {
manager.execute("test", Arrays.asList("first", "-flag", "2"));
manager.execute("test", null, Arrays.asList("first", "-flag", "2"));
fail();
} catch(InvalidArgumentsException ignore) {
}
@@ -55,11 +55,11 @@ public class CommandTest {
@Test
public void requiredArgsFirst() throws CommandException {
CommandManager manager = new TerraCommandManager();
CommandManager manager = new TerraCommandManager(null);
manager.register("test", DemoInvalidCommand.class);
try {
manager.execute("test", Arrays.asList("first", "2"));
manager.execute("test", null, Arrays.asList("first", "2"));
fail();
} catch(MalformedCommandException ignore) {
}
@@ -67,20 +67,20 @@ public class CommandTest {
@Test
public void switches() throws CommandException {
CommandManager manager = new TerraCommandManager();
CommandManager manager = new TerraCommandManager(null);
manager.register("test", DemoSwitchCommand.class);
manager.execute("test", Arrays.asList("first", "2"));
manager.execute("test", Arrays.asList("first", "2", "3.4"));
manager.execute("test", null, Arrays.asList("first", "2"));
manager.execute("test", null, Arrays.asList("first", "2", "3.4"));
manager.execute("test", Arrays.asList("first", "2", "-a"));
manager.execute("test", Arrays.asList("first", "2", "3.4", "-b"));
manager.execute("test", null, Arrays.asList("first", "2", "-a"));
manager.execute("test", null, Arrays.asList("first", "2", "3.4", "-b"));
manager.execute("test", Arrays.asList("first", "2", "-aSwitch"));
manager.execute("test", Arrays.asList("first", "2", "3.4", "-bSwitch"));
manager.execute("test", null, Arrays.asList("first", "2", "-aSwitch"));
manager.execute("test", null, Arrays.asList("first", "2", "3.4", "-bSwitch"));
manager.execute("test", Arrays.asList("first", "2", "-aSwitch", "-b"));
manager.execute("test", Arrays.asList("first", "2", "3.4", "-bSwitch", "-a"));
manager.execute("test", null, Arrays.asList("first", "2", "-aSwitch", "-b"));
manager.execute("test", null, Arrays.asList("first", "2", "3.4", "-bSwitch", "-a"));
}
@Command(
@@ -88,7 +88,8 @@ public class CommandTest {
@Argument(value = "arg0"),
@Argument(value = "arg1", type = int.class),
@Argument(value = "arg2", type = double.class, required = false)
})
}
)
public static final class DemoCommand implements CommandTemplate {
@Override
@@ -136,7 +137,8 @@ public class CommandTest {
@Argument(value = "arg0"),
@Argument(value = "arg2", type = double.class, required = false), // optional arguments must be last. this command is invalid.
@Argument(value = "arg1", type = int.class)
})
}
)
public static final class DemoInvalidCommand implements CommandTemplate {
@Override
@@ -162,7 +164,8 @@ public class CommandTest {
aliases = {"s2", "sub2"},
clazz = DemoChildCommand.class // Duplicate command intentional.
)
})
}
)
public static final class DemoParentCommand implements CommandTemplate {
@Override
@@ -183,7 +186,8 @@ public class CommandTest {
@Argument(value = "arg0"),
@Argument(value = "arg1", type = int.class),
@Argument(value = "arg2", type = double.class, required = false),
})
}
)
public static final class DemoChildCommand implements CommandTemplate {
@Override
public void execute(ExecutionState state) {