Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

Флаг COMPARE в моём случае делает проверку аргументов после команды. (Просит, чтобы после команды хоть что-то было написано)
То бишь ты просто введёшь команду /o без каких-либо аргументов, отправится пустое сообщение в чат.
Мне это не нужно, да и игрокам не всегда удобно будет.
Если сравнивать аргументы после команды с "о", то это приведёт просто к нерабочей системе.
Аргументы после команды /o в плейсхолдере %args0%, а я говорю про саму команду %arg0% которая сравнивается с "o".
А насчет пустого сообщения - сравнивайте первый аргумент в том же активаторе с пустотой на НЕсоответствие. Например:
Код:
COMPARE = param:%arg0% value1:o
!COMPARE = param:%arg1% value1:" "
В вашем случае было так:
Compare= param:%args% value1:{%arg1%}
Идет сравнение: например,
/o все тп раздача
"все тп раздача" сравнивалось с "все". У вас, получается, команда должна была запрещать сообщения /o длиной больше одного слова. Бред какой то.
 
Последнее редактирование:
Аргументы после команды /o в плейсхолдере %args0%, а я говорю про саму команду %arg0% которая сравнивается с "o".
А насчет пустого сообщения - сравнивайте первый аргумент в том же активаторе с пустотой на НЕсоответствие. Например:
Код:
COMPARE = param:%arg0% value1:o
!COMPARE = param:%arg1% value1:" "
В вашем случае было так:
Compare= param:%args% value1:{%arg1%}
Идет сравнение: например,
/o все тп раздача
"все тп раздача" сравнивалось с "все". У вас, получается, команда должна была запрещать сообщения /o длиной больше одного слова. Бред какой то.
Именной такой бред выйдет, если сравнивать аргументы после команды со всеми аргументами - %args%.
В моём случае сравнивается с первым аргументом, чтобы можно было отправить сообщение с 1 и более раздельными словами.
 
У меня тут несколько вопросов:
1. Как сделать, чтобы при команде с аргуменами выполнялся один скрипт, а без аргументов второй.
2. Как отобразить префикс игрока из PermissionsEX? (%vault_rankprefix% НЕ РАБОТАЕТ!)
А по поводу 1-го, есть действия actions, а есть reactions (работают и по отдельности, и вместе), там, после проверки, просто разные действия пишешь
 
Ребят, прошу ответа:
Возможно ли с помощью ReActions выполнять команды плагина WorldEdit?
Те, что с двойным слэшем.
Пока что вижу единственный способ реализовать это:
Использовать команду sudo плагина Essentials:
CMD_CONSOLE=sudo %player% /set 4
Работает, да, но это же костыль
 
Именной такой бред выйдет, если сравнивать аргументы после команды со всеми аргументами - %args%.
В моём случае сравнивается с первым аргументом, чтобы можно было отправить сообщение с 1 и более раздельными словами.
Теперь я понял, что вы хотели сделать. Мой способ тоже рабочий, проверил. Насчет вашего - просто поставьте НЕ перед флагом, и тогда должно заработать. Сам сразу не додумался до этого) А флаг сравнивающий команду должен предотвращать выполнение других:
Код:
COMPARE = param:%arg0% value1:o
!COMPARE = param:%args% value1:%arg1%
В этом случае будет идти сравнение на Не соответствие всех аргументов - первому. Что могло работать и с вашим флагом, если поменять местами действие и реакцию. Но тогда осталась бы проблема с побочными командами.
 
А по поводу 1-го, есть действия actions, а есть reactions (работают и по отдельности, и вместе), там, после проверки, просто разные действия пишешь
Это я знаю, мне вот бы узнать, как эту проверку сделать... Хотел REGEX использовать, но не получилось.
 
У меня тут несколько вопросов:
1. Как сделать, чтобы при команде с аргуменами выполнялся один скрипт, а без аргументов второй.
2. Как отобразить префикс игрока из PermissionsEX? (%vault_rankprefix% НЕ РАБОТАЕТ!)

Именной такой бред выйдет, если сравнивать аргументы после команды со всеми аргументами - %args%.
В моём случае сравнивается с первым аргументом, чтобы можно было отправить сообщение с 1 и более раздельными словами.

Нашел идеальный и простой способ:
Код:
flags :
  - !COMPARE=param:%argscount% value1:0
Действия будут выполняться если количество аргументов в команде больше 0, реакции если 0
 
Нашел идеальный и простой способ:
Код:
flags :
  - !COMPARE=param:%argscount% value1:0
Действия будут выполняться если количество аргументов в команде больше 0, реакции если 0
Вот это другое дело, но да, проблема с побочными командами остаётся.

UPD: Случайно обнаружил, что знак "*" определяет аргументы команды и не даёт побочным командам активировать данную. Таким образом, получилось добиться нужного результата без флагов с помощью двух активаторов:
Код:
COMMAND:
  GeneralChat:
    override: false
    regex: true
    command: o .*
    actions:
    - MESSAGE=player:all &7> %vault_rankprefix% %player%:&f %args%
  GeneralChat2:
    override: false
    regex: true
    command: o*
    actions:
    - MESSAGE=&6Общий чат:&f /o (текст)
Принцип работы:
Команду /o обрабатывает 2 активатора сразу.
- Первый выдаёт действие, если после /o что-то введено.
- Второй выдаёт действие, если просто введена команда /o, без аргументов.
- При вводе других команд с буквой "о" активаторы не срабатывают, всё как надо.
 
Последнее редактирование:
Второй по идее будет работать и по повторяющимся "o", т.е. "oooooooo" и т.п.
 
Второй по идее будет работать и по повторяющимся "o", т.е. "oooooooo" и т.п.
Вроде нормально работает.
Только вот команды почему-то раз через раз регистрируются. То есть, после перезагрузки сервера прописываю команды созданные в ReActions, они выполняются, но пишет "команда недоступна", то бишь команды нет такой. Но через время команды регистрируются в хаотичном порядке и этот текст перестаёт вылезать.
Можно как-то регистрировать все команды из ReActions при входе на сервер?
 
Вроде нормально работает.
Только вот команды почему-то раз через раз регистрируются. То есть, после перезагрузки сервера прописываю команды созданные в ReActions, они выполняются, но пишет "команда недоступна", то бишь команды нет такой. Но через время команды регистрируются в хаотичном порядке и этот текст перестаёт вылезать.
Можно как-то регистрировать все команды из ReActions при входе на сервер?

Если используется регулярка, то при старте плагин не знает о какой команде идёт речь.
Как я сказал, команда описанная как o* может быть и командой o и командой oo и т.д.
В этом случае плагин оперирует на событие.
Потом (я вот тут уже не помню, но кажется я это хотел реализовать - надо проверить ;)) при выполнении команды он пытается её зарегистрировать. Т.е. написал первый раз o он пожаловался: команда неизвестная и зарегистрировал её. И т.д.

Чтобы он зарегистрировал её сразу, можно сделать пустой активатор на команду o (без регулярного выражения). Она зарегистрируется при старте. А остальным вариантам уже регистрация не потребуется.
 
Назад
Верх