ConditionalCommands
Выполнение команды только при выполнении условия.
ConditionalCommands предназначен для использования, когда плагины имеют автоматические команды, которые должны выполняться только при выполнении определенных условий. Он способен выполнять несколько команд с настраиваемыми задержками для каждой команды.
Эта функция была изменена проектом ConditionalCommands от konsolas и уже встроена в Matrix.
Оригинальный проект: https://github.com/konsolas/ConditionalCommands
Использование
/coc <player> unless <condition> do <command>
/coc <player> if <condition> do <command>
/coc help
Условия
Грамматика условий:
<expression>::=<term>{<or><term>}
<term>::=<factor>{<and><factor>}
<factor>::=<comparison>|<not><factor>|(<expression>)
<comparison>::=<constant><comparator><constant>
<constant>::=floating point number or integer
<and>::='&'
<or>::='|'
<not>::='!'
<comparator>::='>'|'='|'<'
Как показано выше, сравниваться могут только числа, и заполнители (placeholders) могут содержать только числа. В случае нескольких операторов сравнения в группе, например, 3>=<2, будет использоваться только первый оператор. Сравнения не могут включать пробелы. Неравенство можно проверить с помощью !(value=value).
Примеры:
/coc RERERE unless -ping->200 do kick RERERE
/coc RERERE if (-ping-<300&-ping->100)&-tps->15.0 do msg RERERE Your ping is between 300 and 100, and the TPS is greater than 15.
Примеры, используемые в конфигурационном файле
## Jesus
# Проверка предотвращает слишком быстрое движение игрока в жидкостях или хождение по жидкости.
jesus:
# Включить эту проверку?
enable: true
# Необходимое количество нарушений для отмены нелегальных движений (-1 = никогда не отменять)
cancel_vl: 15
# Пороговые значения нарушений
# number_of_violations: '<command>'
commands:
10: 'coc %player% if -ping-<120&-tps->19.5 do matrix notify %player% tried to move illegally in liquid (Jesus)'
25: 'coc %player% if -ping-<50&-tps->19.5&-time_online->10000 do matrix kick %player% Jesus/WaterSpeed/WaterFly Hacks'
40: 'matrix kick %player% Jesus/WaterSpeed/WaterFly Hacks'
Заполнители (Placeholders)
Заполнители заключены в '-'. Поскольку они применяются с помощью замены, ошибки, вероятно, будут обнаружены во время анализа, если они введены неправильно.
ping
- Задержка тестируемого игрока.tps
- Средний TPS сервера за последние 2 секунды.time_online
- Время игрока онлайн в миллисекундах.uptime
- Время работы сервера в тиках.player_count
- Количество игроков на сервере.perm:<permission>
- 1.0, если у игрока есть разрешение, 0.0 в противном случае. Например,-perm:essentials.home-
.vl:<check>
- Уровень нарушений Matrix для указанной проверки (внутреннее имя). Например,-vl:speed-
.chance:<percentage>%
- Будет равен 1.0 процент% времени. Например,-chance:34.5%-
.
Множественные команды / команды с задержкой
В разделе 'do' выражения можно выполнять несколько команд одновременно, и выбранные команды могут быть выполнены с задержкой, если это необходимо. Разделитель команд — /<delay>/
, где целое число между /
и /
обозначает задержку перед выполнением команды в тиках. Вот некоторые примеры:
/coc konsolas if -vl:killaura->0 do /1200/ ban konsolas 1 minute delayed ban for killaura
/coc konsolas if -perm:some.permission-=1 do /0/ broadcast konsolas has some.permission! /0/ broadcast second broadcast! /20/ broadcast 1 second later!
Режим разработчика
Режим разработчика был удален в встроенной системе условных команд Matrix.