Я сейчас пытаюсь разработать простой мод Minecraft для 1.15.2. Я пытаюсь создать команду, которая анонимизирует ваши сообщения, например, во время фальсифицированных выборов. В основном он принимает сообщение, которое вы написали, и отправляет его анонимно всем на сервере.
Вот код класса команд, который обрабатывает поведение:
public class CommandVote {
public static void register(CommandDispatcher<CommandSource> dispatcher) {
LiteralArgumentBuilder<CommandSource> builder = Commands.literal("vote").requires(source -> source.hasPermissionLevel(0));
builder.executes(context -> vote(context))
.then(Commands.argument("message", MessageArgument.message()))
.executes(context -> voteArgs(context));
dispatcher.register(builder);
}
private static int vote(CommandContext<CommandSource> context) throws CommandSyntaxException {
ServerPlayerEntity player = context.getSource().asPlayer();
player.sendMessage(new StringTextComponent("Por favor, introduzca su opcion en la votacion"));
return Command.SINGLE_SUCCESS;
}
private static int voteArgs(CommandContext<CommandSource> context) throws CommandSyntaxException {
ServerPlayerEntity player = context.getSource().asPlayer();
player.server.getPlayerList().sendMessage(MessageArgument.getMessage(context, "message"));
return Command.SINGLE_SUCCESS;
}
}
Регистры команд и это проявляется в игре. Проблема возникает, когда я пытаюсь выполнить его, например: «/ Голос Привет». Каждый раз, когда к команде добавляется аргумент, Minecraft просто говорит мне, что команда не существует или «Неизвестная команда»
Я не совсем понимаю, о чем я тут напутал. Любые советы в правильном направлении очень ценятся.
Заранее спасибо