1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Автор темы
    fromgate

    fromgate Старожил Пользователь

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


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

    Kixot14 Активный участник Пользователь

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Порядок то вроде соблюдается...
    Ошибка в том, что выполняется команда которой НЕТ ) и не совсем понятно откуда она берется...

    Если я выставлю флаг - '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

    Откуда берется этот "ДОПОЛНИТЕЛЬНЫЙ" ноль, понятно несовсем... Но это плохо! Это рушит всю логику алгоритма.
     
  3. Myaugav

    Myaugav Активный участник Пользователь

    Баллы:
    66
    Вопрос заключается в том, что ни единый из алиасов не работает. Плагин понимает, только если я пишу /react. /<Название_Плагина>:<Команда> конкретно с Вашим плагином почему-то не работает. Выполняется всё из-под op, из группы со всеми пермишнсами. Spigot 1.11
    [​IMG]
     
    Последнее редактирование: 7 апр 2017
  4. AtomicScience

    AtomicScience Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    @fromgate, меня уже очень долго мучает один вопрос
    В активаторах REGION_бла-бла-бла есть какие-нибудь временные плейсхолдеры?
     
  5. maxdikiy

    maxdikiy Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Я знаю откуда!
    Проблема не в ReActions а в самом PEX. Попробуйте произвести такие манипуляции с пермишинами без ReActions и вы поймёте, где зарыта собака.
    Дело в том, что, если у пользователя нет пермишена qwerty-3, то PEX будет искать ближайший, а ближайшим является qwerty-30 и удалит его, а если не находит ничего, то сообщит, что удалил qwerty-3. Я уверен, вы выполняете удаление пермишенов, которых по сути нет у игрока, вот и получается такая неразбериха.
     
  6. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Я всегда говорил, что PEX - гадость! ;)
     
  7. Kixot14

    Kixot14 Активный участник Пользователь

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Ну да, вы правы. У игрока может и не быть такого права. Но в том то и была задумка, что бы удалять методом тыка в надежде попасть на нужный....

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

    AtomicScience Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Это все-же второстепенно, да и перемещения игроков между мирами/серверами можно запросто отловить

    Предложение: добавить активаторы, связанные с инвентарями (открытие, закрытие, перемещение предметов и т.д.)
     
  9. Korvinius

    Korvinius Активный участник Пользователь

    Баллы:
    88
    сколько пользователей плагина, столько и мнений, это также кто то может назвать второстепенным, как по мне лучше бы сделать RA API, чтобы каждый при соответсвующем желании смог создавать себе активаторы, флаги, действия и прочее, в зависимости от степени личной извращенности ;)
     
  10. Kixot14

    Kixot14 Активный участник Пользователь

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Идея неплохая. Можно будет сделать - в принципе довольно просто. Но вот когда я до этого доберусь.... ©Fromgate
    Время. Саммый ценный ресурс в мире. Он же и самый загадочный и парадоксальный..! Он есть у всех, и ниукого его нет.
     
  11. AtomicScience

    AtomicScience Активный участник Пользователь

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

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

    Надеюсь, этим кардинальным изменением и будет API для разработки собственных активаторов и действий. Возможность поддержки еще большего количества поддерживаемых плагинов, и расширение возможностей за счет аддонов, создаваемых другими игроками помогут расширить сферу применения ReActions'a и выйти ему на новый виток развития.
     
  12. maxdikiy

    maxdikiy Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    @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'
    
    Правда, я не проверял работу, но сам принцип ясен. Так будет выглядеть красивее и с точки зрения программирования, правильно.

    Спасибо.
     
  13. SamaraGamer

    SamaraGamer Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    SamaraGamer
    @fromgate Хэлп
    Активаторы работают только в мирах, созданных сервером. В мирах, созданных MultiWorld, работать отказываются. Ошибок никаких нет, просто тупо не выполняются действия.
    Отмена тревоги, это просто я тупенький
     
  14. Pinkierar

    Pinkierar Новичок Пользователь

    Баллы:
    6
    Skype:
    metilan111
    Имя в Minecraft:
    Pinkierar
    Добра!
    Хочу сделать подсказку для тех, кто пишет в локальный чат, что мол никто не слышит.
    Так вот, использую Активатор MESSAGE. Но проверить первый символ не знаю как.​
    Вот если использовать Шаблон сообщения
    (с одиночными кавычками), то Активатор срабатывает всегда, а по флагам проверить не удаётся (наверно).​
    А если использовать
    то срабатывает только при написании в глобальный чат.​
    При этом, если использовать оба этих активатора, то срабатывает только первый.
    Возможно ли сделать так, чтобы было разделение Глобального и Локального чата?

    Ах нашёл решение)
    Если первый активатор будет Глобальным, с Шаблоном
    а второй Локальным, с Шаблоном
    то при ввода в Глобальный чат, как я сказал ранее
    а при вводе в Локальный первый срабатывать не будет из-за не соответствующего Шаблона.
     
  15. AtomicScience

    AtomicScience Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    А не будет ли локальный шаблон затрагивать команды, это вроде тоже в какой-то мере сообщения?
     
  16. Kixot14

    Kixot14 Активный участник Пользователь

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Можна рабочий пример ??
     
  17. AtomicScience

    AtomicScience Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    AtomicScience
    Конечно

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

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

    Kixot14 Активный участник Пользователь

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Интересненько... Но что будет по нагрузкам, если каждый месдж пропускать через реакшнс ??
     
    Последнее редактирование: 11 апр 2017
  19. AtomicScience

    AtomicScience Активный участник Пользователь

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

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

    Kixot14 Активный участник Пользователь

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Скажите пожалуйсто такую штуку: если я выдаю игроку пермишен (действием, через плейсхолдер игрока) и вместе с этим запускаю активатор с задержкой, после которой данный пермишн должен быть удален, то при рестарте сервера/релоге игрока продолжит ли этот плейсхолдер сохранять ник игрока, у которого по прошествию времени должен быть отобран этот пермишен ??

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

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

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

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