diff --git a/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitCommandContext.java b/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitCommandContext.java index 807b733..00313df 100644 --- a/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitCommandContext.java +++ b/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitCommandContext.java @@ -20,5 +20,4 @@ public class BukkitCommandContext> extends AbstractC public Player player() { return (Player) sender(); } - } diff --git a/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitScrowCommand.java b/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitScrowCommand.java index 8463a61..9fe9f27 100644 --- a/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitScrowCommand.java +++ b/bukkit/site/lab0x13/scrow/commands/bukkit/BukkitScrowCommand.java @@ -29,7 +29,7 @@ public class BukkitScrowCommand> extends Comma commandHandler.invoke( rootLiteral, commandContextFactory.createContext(rootLiteral, commandSender), - Stream.of(args).filter(str -> !str.isEmpty()) + Stream.of(args).filter(arg -> !arg.isEmpty()) ); return true; } diff --git a/common/site/lab0x13/scrow/commands/parser/NodeTreeWalker.java b/common/site/lab0x13/scrow/commands/parser/NodeTreeWalker.java index 573374a..229d7dc 100644 --- a/common/site/lab0x13/scrow/commands/parser/NodeTreeWalker.java +++ b/common/site/lab0x13/scrow/commands/parser/NodeTreeWalker.java @@ -26,7 +26,6 @@ public class NodeTreeWalker> { ) { var cursor = new Cursor(iter); Literal literal = rootLiteral; - String token; while (true) { for (var arg : literal.arguments()) { @@ -36,14 +35,12 @@ public class NodeTreeWalker> { return res; } - token = cursor.nextToken(); - if (token == null) + var literalName = cursor.nextToken(); + if (literalName == null) break; - var nextLiteral = literal.getSubLiteral(token); - if (nextLiteral == null) - return new WalkResult.LiteralUnknown<>(ctx, literal, token); - if (platformAdapter.checkPermission(ctx, nextLiteral.permission())) - return new WalkResult.LiteralUnknown<>(ctx, literal, token); + var nextLiteral = literal.getSubLiteral(literalName); + if (nextLiteral == null || !platformAdapter.checkPermission(ctx, nextLiteral.permission())) + return new WalkResult.LiteralUnknown<>(ctx, literal, literalName); literal = nextLiteral; } diff --git a/common/tests/site/lab0x13/scrow/commands/CommandHandlerTest.java b/common/tests/site/lab0x13/scrow/commands/CommandHandlerTest.java index 30d0f19..f373ddb 100644 --- a/common/tests/site/lab0x13/scrow/commands/CommandHandlerTest.java +++ b/common/tests/site/lab0x13/scrow/commands/CommandHandlerTest.java @@ -24,36 +24,37 @@ class CommandHandlerTest { private static final ByteArrayOutputStream outContent = new ByteArrayOutputStream(); private static final PrintStream originalOut = System.out; - private final CommandHandler commandHandler = new CommandHandler<>(new TestPlatform(Collections.emptyList())); + private final CommandHandler commandHandler = new CommandHandler<>(new TestPlatform()); private final Argument playerArg = Argument.builder("player", new StringArgumentType()) .build(); private final Argument amountArg = Argument.builder("amount", new IntegerArgumentType()) .build(); - private final RootLiteral rootLiteral = Literal.builder("coins") - .withSyncExecutor(_ -> { - System.out.println("default executor"); - }) - .withSubLiteral(Literal.builder("get") - .withArgument(playerArg) - .withSyncExecutor(ctx -> { - var player = ctx.getArg(playerArg); - System.out.println("get executor: player=" + player); + private final RootLiteral rootLiteral = + Literal.builder("coins") + .withSyncExecutor(_ -> { + System.out.println("default executor"); }) - .build() - ) - .withSubLiteral(Literal.builder("set") - .withArgument(playerArg) - .withArgument(amountArg) - .withSyncExecutor(ctx -> { - var player = ctx.getArg(playerArg); - var amount = ctx.getArg(amountArg); - System.out.println("set executor: player=" + player + " amount=" + amount); - }) - .build() - ) - .asRootLiteral(MessageStyle.PLAIN); + .withSubLiteral(Literal.builder("get") + .withArgument(playerArg) + .withSyncExecutor(ctx -> { + var player = ctx.getArg(playerArg); + System.out.println("get executor: player=" + player); + }) + .build() + ) + .withSubLiteral(Literal.builder("set") + .withArgument(playerArg) + .withArgument(amountArg) + .withSyncExecutor(ctx -> { + var player = ctx.getArg(playerArg); + var amount = ctx.getArg(amountArg); + System.out.println("set executor: player=" + player + " amount=" + amount); + }) + .build() + ) + .asRootLiteral(MessageStyle.PLAIN); @BeforeAll static void init() { diff --git a/common/tests/site/lab0x13/scrow/commands/TestPlatform.java b/common/tests/site/lab0x13/scrow/commands/TestPlatform.java index a9088a8..27c04f1 100644 --- a/common/tests/site/lab0x13/scrow/commands/TestPlatform.java +++ b/common/tests/site/lab0x13/scrow/commands/TestPlatform.java @@ -10,15 +10,9 @@ public class TestPlatform implements PlatformAdapter { private final PlainTextComponentSerializer plainText = PlainTextComponentSerializer.plainText(); - private final List permissions; - - public TestPlatform(List permissions) { - this.permissions = new ArrayList<>(permissions); - } - @Override public boolean checkPermission(CommandContextImpl ctx, String permission) { - return permissions.contains(permission); + return true; } @Override diff --git a/defs.bzl b/defs.bzl index fe77b49..96aa01d 100644 --- a/defs.bzl +++ b/defs.bzl @@ -1,2 +1,2 @@ GROUP = "site.lab0x13.scrow" -VERSION = "1.3.1" \ No newline at end of file +VERSION = "1.3.2" \ No newline at end of file