Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

@fromgate, вопрос всё ещё крайне актуален :)

А в чём вопрос? У меня всё работает. Я больше скажу, я никогда не пользовался командой — я всегда пользовался каким-то из алисов.
Если есть конфликт с другим плагином, то команды вида <названиеПлагина>:<команда> должны работать. Вам нужно разобраться как в бакките/спиготе решаются такие конфликты. Я это делал в древних версиях при помощи сторонних плагинов. Сейчас как это делается — я не знаю, а проводить дополнительное изучение вопроса не могу.


Как и мой
Видимо баг уже довольно старый, в предыдущих версиях 0.9.10, и circle#21 он так же актуален

В чём ошибка? В том, что огромное число команд выполняется не в той последовательности, в которой они были отправлены? У меня есть предположение, что особенности работы очереди задача баккита. Но чтобы точно ответить на этот вопрос, мне нужно время на изучение того как там всё устроено. Поэтому исправить это изменив пару строк я не могу.
 
В чём ошибка? В том, что огромное число команд выполняется не в той последовательности, в которой они были отправлены? У меня есть предположение, что особенности работы очереди задача баккита. Но чтобы точно ответить на этот вопрос, мне нужно время на изучение того как там всё устроено. Поэтому исправить это изменив пару строк я не могу.
Порядок то вроде соблюдается...
Ошибка в том, что выполняется команда которой НЕТ ) и не совсем понятно откуда она берется...

Если я выставлю флаг - 'PERM=qwerty-30'
И задам действия:
- 'CMD_CONSOLE=PEx user %player_name% remove qwerty-1'
- 'CMD_CONSOLE=PEx user %player_name% remove qwerty-2'
- 'CMD_CONSOLE=PEx user %player_name% remove qwerty-3' # Тут вместо qwerty-3 станет qwerty-30

Откуда берется этот "ДОПОЛНИТЕЛЬНЫЙ" ноль, понятно несовсем... Но это плохо! Это рушит всю логику алгоритма.
 
А в чём вопрос? У меня всё работает. Я больше скажу, я никогда не пользовался командой — я всегда пользовался каким-то из алисов.
Если есть конфликт с другим плагином, то команды вида <названиеПлагина>:<команда> должны работать. Вам нужно разобраться как в бакките/спиготе решаются такие конфликты. Я это делал в древних версиях при помощи сторонних плагинов. Сейчас как это делается — я не знаю, а проводить дополнительное изучение вопроса не могу.

Вопрос заключается в том, что ни единый из алиасов не работает. Плагин понимает, только если я пишу /react. /<Название_Плагина>:<Команда> конкретно с Вашим плагином почему-то не работает. Выполняется всё из-под op, из группы со всеми пермишнсами. Spigot 1.11
f96c027bda7e107e502c2ca86913f9ff.png
 
Последнее редактирование:
@fromgate, меня уже очень долго мучает один вопрос
В активаторах REGION_бла-бла-бла есть какие-нибудь временные плейсхолдеры?
 
Откуда берется этот "ДОПОЛНИТЕЛЬНЫЙ" ноль, понятно несовсем... Но это плохо! Это рушит всю логику алгоритма.
Я знаю откуда!
Проблема не в ReActions а в самом PEX. Попробуйте произвести такие манипуляции с пермишинами без ReActions и вы поймёте, где зарыта собака.
Дело в том, что, если у пользователя нет пермишена qwerty-3, то PEX будет искать ближайший, а ближайшим является qwerty-30 и удалит его, а если не находит ничего, то сообщит, что удалил qwerty-3. Я уверен, вы выполняете удаление пермишенов, которых по сути нет у игрока, вот и получается такая неразбериха.
 
Я знаю откуда!
Проблема не в ReActions а в самом PEX. Попробуйте произвести такие манипуляции с пермишинами без ReActions и вы поймёте, где зарыта собака.
Дело в том, что, если у пользователя нет пермишена qwerty-3, то PEX будет искать ближайший, а ближайшим является qwerty-30 и удалит его, а если не находит ничего, то сообщит, что удалил qwerty-3. Я уверен, вы выполняете удаление пермишенов, которых по сути нет у игрока, вот и получается такая неразбериха.
Ну да, вы правы. У игрока может и не быть такого права. Но в том то и была задумка, что бы удалять методом тыка в надежде попасть на нужный....

Это плохо конечно. А что вместо PEx можна юзать, в bPermissions нет такой проблемы??
Предложение: Добавить активатор, который срабатывал бы при создании портала (в ад, в енд... мб ещё +поддержку мультиверс...)
 
Предложение: Добавить активатор, который срабатывал бы при создании портала (в ад, в енд... мб ещё +поддержку мультиверс...)

Это все-же второстепенно, да и перемещения игроков между мирами/серверами можно запросто отловить

Предложение: добавить активаторы, связанные с инвентарями (открытие, закрытие, перемещение предметов и т.д.)
 
Это все-же второстепенно, да и перемещения игроков между мирами/серверами можно запросто отловить

Предложение: добавить активаторы, связанные с инвентарями (открытие, закрытие, перемещение предметов и т.д.)
сколько пользователей плагина, столько и мнений, это также кто то может назвать второстепенным, как по мне лучше бы сделать RA API, чтобы каждый при соответсвующем желании смог создавать себе активаторы, флаги, действия и прочее, в зависимости от степени личной извращенности ;)
 
сколько пользователей плагина, столько и мнений, это также кто то может назвать второстепенным, как по мне лучше бы сделать RA API, чтобы каждый при соответсвующем желании смог создавать себе активаторы, флаги, действия и прочее, в зависимости от степени личной извращенности ;)
Идея неплохая. Можно будет сделать - в принципе довольно просто. Но вот когда я до этого доберусь.... ©Fromgate
Время. Саммый ценный ресурс в мире. Он же и самый загадочный и парадоксальный..! Он есть у всех, и ниукого его нет.
 
сколько пользователей плагина, столько и мнений, это также кто то может назвать второстепенным, как по мне лучше бы сделать RA API, чтобы каждый при соответсвующем желании смог создавать себе активаторы, флаги, действия и прочее, в зависимости от степени личной извращенности ;)

Да, правильно думаете
Насколько я помню, товарищ @fromgate в версии 1.0.0 плагина в своем блоге обещал, цитирую:

"Откровенно говоря, я очень рассчитывал, что в версии 1.0.0 (которая по идее последует за 0.9.9) будут достаточно кардинальные изменения самого движка плагина"

Надеюсь, этим кардинальным изменением и будет API для разработки собственных активаторов и действий. Возможность поддержки еще большего количества поддерживаемых плагинов, и расширение возможностей за счет аддонов, создаваемых другими игроками помогут расширить сферу применения ReActions'a и выйти ему на новый виток развития.
 
@fromgate
Я бы не сказал, что Pex на столько уж и плохой. Для меня он является оптимальным инструментом во всём, везде, где бы я его не использовал. Если появляются какие-то проблемы, то они всегда решаются очень быстро. Возможно, мне просто, ещё не попался тот случай, с которым я не мог бы справиться.

@Kixot14
Ваш вопрос решается довольно просто. Кто Вам мешает устанавливать пермишен такого формата: qwerty-3.*
Если такого пермишена нет, то qwerty-30.* удаляться не будет.
Также я бы предложил другой способ чистки пермишенов - рекурсивным методом.

Код:
  qwerty:
    flags:
    - 'PERM=group.over-rg_total_count-30'
    actions:
    - VAR_SET=id:qwerty value:30 player:%player_name%
    - execute=activator:qwerty99 player:%player_name%
  qwerty99:
    flags:
    - VAR_PLAYER_GREATER=id:querty value:0
    actions:
    - VAR_PLAYER_DEC=id:qwerty
    - 'CMD_CONSOLE=PEx user %player_name% remove group.over-rg_total_count-%varp:querty%'
    - execute=activator:qwerty99
    reaction:
    - 'CMD_CONSOLE=PEx user %player_name% add -group.over-rg_total_count-1'
Правда, я не проверял работу, но сам принцип ясен. Так будет выглядеть красивее и с точки зрения программирования, правильно.

Спасибо.
 
@fromgate Хэлп
Активаторы работают только в мирах, созданных сервером. В мирах, созданных MultiWorld, работать отказываются. Ошибок никаких нет, просто тупо не выполняются действия.
Отмена тревоги, это просто я тупенький
 
Добра!
Хочу сделать подсказку для тех, кто пишет в локальный чат, что мол никто не слышит.
Так вот, использую Активатор MESSAGE. Но проверить первый символ не знаю как.​
Вот если использовать Шаблон сообщения
(с одиночными кавычками), то Активатор срабатывает всегда, а по флагам проверить не удаётся (наверно).​
А если использовать
то срабатывает только при написании в глобальный чат.​
При этом, если использовать оба этих активатора, то срабатывает только первый.
Возможно ли сделать так, чтобы было разделение Глобального и Локального чата?​

Ах нашёл решение)
Если первый активатор будет Глобальным, с Шаблоном
а второй Локальным, с Шаблоном
то при ввода в Глобальный чат, как я сказал ранее
срабатывает только первый
а при вводе в Локальный первый срабатывать не будет из-за не соответствующего Шаблона.
 
Добра!
Хочу сделать подсказку для тех, кто пишет в локальный чат, что мол никто не слышит.
Так вот, использую Активатор MESSAGE. Но проверить первый символ не знаю как.​
Вот если использовать Шаблон сообщения

(с одиночными кавычками), то Активатор срабатывает всегда, а по флагам проверить не удаётся (наверно).​
А если использовать

то срабатывает только при написании в глобальный чат.​
При этом, если использовать оба этих активатора, то срабатывает только первый.
Возможно ли сделать так, чтобы было разделение Глобального и Локального чата?​

Ах нашёл решение)
Если первый активатор будет Глобальным, с Шаблоном

а второй Локальным, с Шаблоном

то при ввода в Глобальный чат, как я сказал ранее

а при вводе в Локальный первый срабатывать не будет из-за не соответствующего Шаблона.

А не будет ли локальный шаблон затрагивать команды, это вроде тоже в какой-то мере сообщения?
 
Добра!
Хочу сделать подсказку для тех, кто пишет в локальный чат, что мол никто не слышит.
Так вот, использую Активатор MESSAGE. Но проверить первый символ не знаю как.​
Вот если использовать Шаблон сообщения

(с одиночными кавычками), то Активатор срабатывает всегда, а по флагам проверить не удаётся (наверно).​
А если использовать

то срабатывает только при написании в глобальный чат.​
При этом, если использовать оба этих активатора, то срабатывает только первый.
Возможно ли сделать так, чтобы было разделение Глобального и Локального чата?​

Ах нашёл решение)
Если первый активатор будет Глобальным, с Шаблоном

а второй Локальным, с Шаблоном

то при ввода в Глобальный чат, как я сказал ранее

а при вводе в Локальный первый срабатывать не будет из-за не соответствующего Шаблона.
Можна рабочий пример ??
 
Можна рабочий пример ??

Конечно

Если использовать в качестве активатора сообщение от игрока со знаком ! и просто удалять знак (Если я не ошибаюсь, все сообщения в дефолтном майне получают все игроки)

А если игрок пишет сообщение без !, то его сообщение перехватывается, отменяется через CANCEL_EVENT и отправляется новое, игрокам в радиусе x блоков.
 
Конечно

Если использовать в качестве активатора сообщение от игрока со знаком ! и просто удалять знак (Если я не ошибаюсь, все сообщения в дефолтном майне получают все игроки)

А если игрок пишет сообщение без !, то его сообщение перехватывается, отменяется через CANCEL_EVENT и отправляется новое, игрокам в радиусе x блоков.
Интересненько... Но что будет по нагрузкам, если каждый месдж пропускать через реакшнс ??
 
Последнее редактирование:
Интересненько... Но что будет по нагрузкам, если каждый месдж пропускать через реакшнс ??

Пффффф
Ты же не задумываешься над нагрузками, когда подключаешь, например, эвенты в самописах?
Да, все эвенты будут проходить через плагин, но на производительности это никак не скажется.
То же самое в ReActions'e(но это не точно)

Меня, если честно, больше волнует безопасность. Могу я быть уверен, что игроку будет выдано сто $, а не квинтиллион? Этот вопрос, случайно, никто не поднимал?
Ну, все плейсхолдеры сохраняются в файле в папке ReActions'a, а вот за таймер я не знаю. Наверно @fromgate знает?
 
Скажите пожалуйсто такую штуку: если я выдаю игроку пермишен (действием, через плейсхолдер игрока) и вместе с этим запускаю активатор с задержкой, после которой данный пермишн должен быть удален, то при рестарте сервера/релоге игрока продолжит ли этот плейсхолдер сохранять ник игрока, у которого по прошествию времени должен быть отобран этот пермишен ??

А так же, продолжет ли тикать таймер после рестарта сервера?? Если нет, то какие есть варианты ?
Скажите пожалуйсто такую штуку: если я выдаю игроку пермишен (действием, через плейсхолдер игрока) и вместе с этим запускаю активатор с задержкой, после которой данный пермишн должен быть удален, то при рестарте сервера/релоге игрока продолжит ли этот плейсхолдер сохранять ник игрока, у которого по прошествию времени должен быть отобран этот пермишен ??

А так же, продолжет ли тикать таймер после рестарта сервера?? Если нет, то какие есть варианты ?
Да. Если взять действие ACTION_DELAYED, или даже просто WAIT (фактически одно и то же) оно записывает все отложенные события в отдельный файл (за исключением EXEC активатора с установленым delay (тогда не записывает в файл и теряется после рестарта) ), приписывает таймштамп и довыполняет при следующем заходе игрока на сервер.

Вопрос: если оно каждое WAIT пишет в файл, то не будет ли нагрузок если у меня в одном активаторе допустим 30 задержек, интервалы между которыми = 1 такт ?? И выполняется он каждые 10 сек.

Вопрос: как расшифровать таймштамп?? Например вижу я таймштамп и хочю знать накогда запланировано это действие... Как мне узнать ?
 
Последнее редактирование:

Поделиться этой страницей

Назад
Верх