User Tools

Site Tools


ru:tutorial:commands:requirements

Условия

Примечание: статья в разработке.

Допустим, у вас есть команда, которую вы хотите, чтобы могли выполнять только операторы. Вот тут-то и вступает в игру метод requires. Метод requires имеет один аргумент Predicate<ServerCommandSource>, который предоставит ServerCommandSource для тестирования и определения того, может ли CommandSource выполнить команду.

Например, это может выглядеть следующим образом:

  1. dispatcher.register(literal("foo")
  2. .requires(source -> source.hasPermissionLevel(4))
  3. .executes(ctx -> {
  4. ctx.getSource().sendFeedback(new LiteralText("Ты оператор"), false);
  5. return 1;
  6. });

Эта команда будет выполняться только в том случае, если источником команды является оператор 4-го уровня как минимум. Если предикат возвращает значение false, то команда не будет выполнена. Также это имеет побочный эффект, заключающийся в том, что эта команда не отображается при завершении вкладки никому, кто не является оператором 4-го уровня.

Ничто не мешает кому-либо указывать вызовы реализаций разрешений в блоке requires. Просто обратите внимание, что если разрешения изменятся, вам необходимо повторно отправить дерево команд.

ru/tutorial/commands/requirements.txt · Last modified: 2022/03/03 12:06 by 127.0.0.1