Кастомные команды - GlowingInk/ReActions GitHub Wiki
С обновлением 0.12.17 в ReActions активатор COMMAND был отделён в отдельную категорию commands.yml, которая находится в папке плагина. Связано это с невозможностью адекватно оптимизировать работу и реализовать весь функционал команд.
Тем не менее, структура создания команды невероятно проста.
cat:
command: cat
alias:
- kitty
- котя
prefix: animals
register: true
override: false
tab: true
permission: animals.cat
error:
no_perm: animals_noperm
offline: animals_offline
not_int: animals_notint
exec: animals_cat
backup: animals_backup
args:
# Пример: /cat white
'white':
permission: animals.cat.white
exec: animals_cat
# Пример: /cat white imDaniX
'white ~player':
permission: animals.cat.white.other
ignore_after: true
exec: animals_cat_other
# Пример: /cat white 6
'white ~int':
permission: animals.cat.white.multiply
exec: animals_cat_multiply
# Пример: /cat black
'black':
permission: animals.cat.black
error:
no_perm: animals_noperm_black
exec: animals_cat_black
# Пример: /cat orange
'red|orange|yellow':
tab: false
permission: animals.cat.other
exec: animals_cat_secret
command
основная команда, на которую будет окликаться плагин. В данном случае /cat
alias
список альтернативных написаний команды. В данном случае /kitty, /котя
prefix
префикс команды, который можно использовать для уточнения команды. В данном случае /animals:cat, /animals:kitty, /animals:котя.
register
регистрировать ли команду. Это позволит использовать клавишу tab для авто-завершения аргументов.
override
отменять ли событие ввода команды - тогда другие плагины не смогут окликнуться на ввод данной команды.
permission
право на использование команды в целом. В данном случае animals.cat
error
указатели EXEC-активаторов, которые будут использованы в случае той или иной ошибки. В данный момент указателей 5:
# Ошибки
error:
# При любой ошибке
any: error_any
# У игрока нет прав
no_perm: error_no_perm
# Указанный игрок оффлайн
offline: error_offline
# Аргумент не целочисленное число
not_int: error_not_int
# Аргумент не число
not_float: error_not_float
exec
EXEC-активатор, который будет выполнен в случае отсутствия аргументов.
backup
EXEC-активатор, который будет выполнен в случае, если ни один из аргументов не будет соответствовать заданным. Если отсутствует - берется exec
.
args
список аргументов и их настройки.
Все аргументы следует помещать в 'одинарные кавычки'. В аргументах вы можете использовать некоторые заменители:
~player
любой игрок онлайн ("imDaniX", "Player"). В примере white ~player
~int
целочисленная цифра ("1337", "451"). В примере white ~int
~float
цифра с плавующей запятой ("13.37", "0.451").
*
любой аргумент ("Например", "это").
Если вы хотите поместить в аргументы конкретно один из таких аргументов, а не заменитель, просто добавьте \
в начало этого аргумента, например \~player
(но я даже не знаю, зачем вам это делать).
В случае, если вы хотите использовать один блок аргументов сразу для нескольких слов, используйте |
. В примере red|orange|yellow
Для аргументов доступна опция ignore_after
(по-умолчанию true
) - в случае включения все введеные аргументы, находящиеся после верной цепочки аргументов, будут проигнорированы. Это можно использовать, например, для команды личных сообщений.
personal_message:
command: msg
alias:
- m
- pm
- tell
exec: pm_help
args:
'~player *':
ignore_after: true
exec: pm_message
error:
offline: pm_offline
'~player':
exec: pm_no_message
error:
offline: pm_offline
Также в настройках аргументов вы можете переписать значения error
, permission
, override
, tab
и exec
.
В целом, можно отказаться от всех настроек, кроме command
- что-то будет установлено по-умолчанию, что-то будет проигнорировано вовсе. Самый минималистичный вариант:
example:
command: example
exec: example_command
В данном случае будут применены следующие настройки: prefix: example
, register: true
, override: false
, tab: true
, всё остальное же будет проигнорировано. Конечно, можно отказаться и от exec
, но тогда смысла в такой команде не будет, кроме регистрации.