diff --git a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java index 38820acb..58fc3348 100644 --- a/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java +++ b/cloud-minecraft/cloud-brigadier/src/main/java/cloud/commandframework/brigadier/CloudBrigadierManager.java @@ -617,8 +617,12 @@ public final class CloudBrigadierManager { final @NonNull SuggestionsBuilder builder ) { final CommandContext commandContext; + String command = builder.getInput(); if (this.brigadierCommandSenderMapper == null || senderContext == null) { commandContext = this.dummyContextProvider.get(); + if (command.startsWith("/") /* Minecraft specific */) { + command = command.substring(1); + } } else { final C cloudSender = this.brigadierCommandSenderMapper.apply(senderContext.getSource()); commandContext = new CommandContext<>( @@ -626,11 +630,7 @@ public final class CloudBrigadierManager { cloudSender, this.commandManager ); - } - - String command = builder.getInput(); - if (command.startsWith("/") /* Minecraft specific */) { - command = command.substring(1); + command = command.substring(senderContext.getLastChild().getNodes().get(0).getRange().getStart()); } /* Remove namespace */ diff --git a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricExecutor.java b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricExecutor.java index b7c02b5d..d54f6842 100644 --- a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricExecutor.java +++ b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricExecutor.java @@ -79,9 +79,7 @@ final class FabricExecutor implements Command { @Override public int run(final @NonNull CommandContext ctx) { final S source = ctx.getSource(); - final String input = ctx.getInput().startsWith("/") - ? ctx.getInput().substring(1) - : ctx.getInput(); + final String input = ctx.getInput().substring(ctx.getLastChild().getNodes().get(0).getRange().getStart()); final C sender = this.manager.getCommandSourceMapper().apply(source); this.manager.executeCommand(sender, input).whenComplete(this.getResultConsumer(source, sender)); return com.mojang.brigadier.Command.SINGLE_SUCCESS;