Melius Commands
Fabric мод для серверной части, позволяющий создавать пользовательские команды и изменять существующие.
Пользовательские команды
Для добавления пользовательских команд создайте JSON-файл в директории ./config/melius-commands/commands. Примеры файлов можно найти в examples/commands! Примените изменения, выполнив команду /reload в игре.
Формат JSON
Формат JSON включает комментарии для пояснения (не копируйте // в свои файлы).
Узел команды (literal / argument)
Корневой узел всегда должен быть узлом типа literal.
{
"id": "...",
// Идентификатор команды (имя команды для узлов типа literal) (обязательно)
"type": "...",
// Тип аргумента, см. ниже. (только для узлов argument, обязательно)
"executes": [
// Список исполнений узла команды, см. ниже.
],
"require": {
// См. https://github.com/Patbox/PredicateAPI/ для получения дополнительной информации.
// Если условие истинно для источника команды, у него будет доступ к этому узлу команды!
},
"literals": [
// Список дочерних узлов типа literal
],
"arguments": [
// Список дочерних узлов типа argument
],
"redirect": "..."
// Если указано, команда скопирует исполнение, требования и дочерние элементы из указанного узла.
// Это может эффективно создать псевдоним для другой команды.
}
Исполнение
Это может быть либо простая строка, которая будет выполнена тихо, от имени консоли с уровнем op 4, либо настроена вручную следующим образом:
{
"command": "...",
// Команда, которая будет выполнена (может ссылаться на значения аргументов с помощью ${id})
"silent": false,
// Отключить вывод команды, если установлено true
"as_console": false,
// Должна ли эта команда выполняться как команда от источника консоли
"op_level": 4
// Уровень оператора источника команды (опционально) (Допустимые значения: 0 - 4)
}
Значение исполнения command может использовать заполнители из аргументов команды и глобальные заполнители, используя формат ${PLACEHOLDER}, где PLACEHOLDER может быть либо идентификатором аргумента, либо глобальным заполнителем.
Тип аргумента
Полный список всех типов аргументов приведен в ARGUMENTS. Некоторые типы аргументов требуют дополнительных аргументов, которые должны быть добавлены отдельно через пробелы.
Модификаторы команд
Для добавления требований к командам создайте JSON-файл в директории ./config/melius-commands/modifiers. Примеры файлов можно найти в examples/modifiers!
Формат JSON
Формат JSON включает комментарии для пояснения (не копируйте // в свои файлы).
Модификатор команды
Синтаксис зависит от выбранного типа модификатора. Важно отметить, что существуют два типа сопоставителей команд:
- Сопоставители узлов (Node matchers) будут сопоставлять узлы команд (структуру, используемую brigadier для внутреннего представления команд) по их пути (например,
teleport.locationбудет соответствовать любой команде вида/teleport 0 100 0). - Сопоставители команд (Command matchers) будут сопоставляться со строкой, используемой при выполнении команды (например,
warp endбудет соответствовать/warp end).
Оба этих типа представлены в трех вариантах:
- Модификаторы
strictприменяются только к exact этому узлу / exact этому вводу команды. - Модификаторы
starts_withприменяются к указанному узлу / команде и ко всему, что "длиннее" него. - Модификаторы
regexприменяются ко всему, что соответствует регулярному выражению.
Сопоставители узлов имеют дополнительное поле requirement_modifier, которое позволяет изменять требование узла, что полностью удалит команду для игроков / источников команд, которые не соответствуют требованию!
Пути узлов команд
Вы можете использовать команду /melius-commands path для определения путей узлов команд любой команды. Пример: чтобы проверить путь команды /tp DrexHD 0 100 0 (телепортация объекта в позицию блока), вы вводите /melius-commands path tp DrexHD 0 100 0 и получите teleport.targets.location, который можно использовать в модификаторах команд.
Заполнители (Placeholders)
%melius-commands:cooldown [id]%/%melius-commands:cooldown [id] [formatting]%- Время восстановления команд игрока.[id]- это идентификатор, указанный в модификаторе восстановления.[formatting]- это форматирование длительности, убедитесь в правильном экранировании.
Отладка исключений
Если при выполнении команды вы получаете сообщение An unexpected error occurred trying to execute that command, вы можете выполнить команду /melius-commands debug-command-exceptions для переключения режима отладки исключений команд. Когда этот режим активен, в консоль записывается дополнительная отладочная информация при возникновении подобных ошибок.
