Posted November 20, 20222 yr Dear all, I am struggling to correctly use performCommand and I was hoping for a little help. Firstly, yes I am checking the side (I read the Common Issues) and have before this an event that sends the code server side. Now when looking at many examples or threads they all pass a CommandSourceStack directly into performCommand as the first argument. Now I see that the first arg wants a ParseResults, not a CommandSourceStack. if (!serverPlayer.level.isClientSide() && serverPlayer.getServer() != null) { CommandSourceStack commandSourceStack = serverPlayer.createCommandSourceStack().withSuppressedOutput().withPermission(4); ParseResults<CommandSourceStack> results = new ParseResults<CommandSourceStack>(); serverPlayer.getServer().getCommands().performCommand(results, cmd); } My challenge is that I do not know how to build the ParseResults<CommandSourceStack> correctly so that it can be passed and read. I would be grateful for any suggestions (and exceptionally thankful for any lines of code) that would assist resolving this. Edited December 10, 20222 yr by Scytale
December 10, 20222 yr Author In case anyone else finds this, the answer is ... String command = "some command"; CommandSourceStack commandSourceStack = serverPlayer.createCommandSourceStack().withSuppressedOutput().withPermission(4); CommandDispatcher<CommandSourceStack> commanddispatcher = serverPlayer.getServer().getCommands().getDispatcher(); ParseResults<CommandSourceStack> results = commanddispatcher.parse(command, commandSourceStack); int result = serverPlayer.getServer().getCommands().performCommand(results, command);
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.