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

Плагин [ADMIN] Re:ReActions | Простейший скриптовый плагин (1.20.6+)

В чем проблема? У игрока есть группа с этим пермишеном, но оно не работает, игрока в любом случае телепортирует на варп
Код:
    flag:
REGION:
  exitFromShelter1:
    region: shelters.shelter1
    flag:
    - PERM != shelters.shelter1
    actions:
    - CMD_CONSOLE=warp shelterExit %PLAYER_NAME%
flag - flags, PERM != - !PERM=
Кавычки обязательны.
Код:
flags:
- '!PERM=shelters.shelter1'
 
В команде /ra info exitFromShelter1 видно флаг?
Все было
Сейчас должно быть
Код:
REGION:
  exitFromShelter1:
   region: shelters.shelter1
   flags:
   - '!PERM=shelters.shelter1'
   actions:
   - CMD_CONSOLE=warp shelterExit %PLAYER_NAME%
Уверен, что всё точно так?
Нашел трабл, вместо flags написал flag, ну хотя-бы понял что синтаксис написания != оборачивает все условие в '', спасибо
 
Re:ReActions | Попробуем снова?

Форк небезызвестного плагина ReActions за авторством @fromgate.

Плагин ReActions представляет собой инструмент обработки событий. Он позволяет проверять выполнение условий и, в зависимости от результата проверки, выполнять разные действия.
Я бы мог продолжить копировать оригинальную тему, но не хочется повторяться, и потому, просто оставлю ссылку
http://rubukkit.org/threads/mech-fun-reactions-chto-togda-inache-bukkitdev.41857/

Отличия от оригинального ReActions:

УЧТИТЕ ПРИ ПЕРЕХОДЕ С ОРИГИНАЛА
- player:all и player:null в действиях будут работать как поиск ника - вместо этого используйте player:~all и player:~null.
- VAR_TEMP_SET больше не меняет данные события - для их изменения добавлено действие CHANGE.
- Команды отделены в отдельный конфиг, советую почитать вики, однако, если хочется использовать старые активаторы команд, добавьте действие CANCEL_EVENT.
- Немного изменена очередь обработки вложенных плейсхолдеров - изменение не всегда заметно, но есть особые случаи.
- /ra add теперь только добавляет действия к активаторам - создание активаторов, локаций и прочего теперь в /ra create.

- Работает на версии 1.16 и выше. Одновременно с этим поддержка версий до 1.16 была удалена.
- Пустые файлы персональных переменных удаляются при старте плагина.
- Возможность отдельной перезагрузки таймеров, переменных, файла задержек, локаций, конфига и команд, меню, а также активаторов и отдельных групп активаторов.
/ra reload g dude/testing - перезагрузит группу активаторов testing.yml в папке dude
/ra reload vt - перезагрузит переменные и таймеры
a - активаторы, l - локации, c - конфиг и команды, d - задержки, v - переменные, t - таймеры, m - меню; g папка/файл - группа
Для перезагрузки всего сразу как обычно можно использовать /ra reload, но на мой взгляд она всегда грузила слишком много.
- Добавлено предупреждение при ошибке в активаторе MESSAGE - чат игроков проходит в отдельном потоке, от чего при использовании третьих плагинов сервер может улететь в краш.
- Добавлен лимит на раскрытие плейсхолдеров (настраивается в конфиге) - порой, если вы неправильно поставили переменную(вложили её саму в себя), вызывается ошибка переполнения стека.
- Оптимизирована работа активаторов, их *активация*
- Оптимизирована работа задержек(действие ACTION_DELAYED, например), которые заново обрабатывались при входе игрока. Также добавлено удаление задержек, которые были запущены, но не активированы слишком давно(настраивается в конфиге в часах).
- Указатели player:all и player:null заменены на player:~all и player:~null, дабы избежать проблем с игроками, ники которых "all" и "null".
- Перенос создания локаций, таймеров, меню и активаторов из команды /ra add в /ra create
- Изменение работы "общения" событие-активатор-событие - добавление действия CHANGE.
- Появилась замена активатору COMMAND - новая система команд.
- Новый активатор CUBOID(в разработке) - на замену активаторам REGION(_ENTER, _LEAVE), т.к. они могут сильно нагрузить сервер(проверено на практике + слова fromgate). Создание через команду пока невозможно.
Код:
CUBOID:
  test_cuboid:
   mode: ENTER # вход, LEAVE - выход
   two_dimensional: false # игнорировать ли координату Y
   world: world
   loc1:
     x: 100
     y: 40
     z: 100
   loc2:
     x: 150
     y: 63
     z: 150
- Новый активатор TELEPORT - при любой телепортации игрока.
Код:
TELEPORT:
  test_teleport:
    world: world # название мира, можно не указаывать
    cause: ENDER_PEARL # причина телепорта, можно не указывать
Список возможных причин телепортации
- Новый активатор WEATHER_CHANGE - смена погоды.
Код:
WEATHER_CHANGE:
  test_weather:
    world: world # название мира, можно не указывать
    weather: RAINING # CLEAR, ANY

- Новый флаг CHECK_ONLINE - проверяет, онлайн ли игрок.
Код:
   - CHECK_ONLINE=imDaniX
- Новый флаг REGEX - проверка строки на соответствие regex
Код:
   - REGEX=regex:{ret.*ue} value:{returns true}
- Новый флаг HELD_SLOT - проверка активного слота инвентаря игрока.
Код:
   - HELD_SLOT=4

- Попытка исправления мертвоспавна мобов MOB_SPAWN.
- Новое действие RESPONSE. Настоятельно рекомендую использовать его в связке с командами и активатором COMMAND. Отсылает сообщение игроку или консоли.
Код:
    - RESPONSE=Я карта, я карта, я карта, я карта...
- Новое действие CHANGE. Позволяет редактировать данные изначального события.
Код:
    - CHANGE=key:key value:value
Например, изменить урон в активаторе MOB_DAMAGE
Код:
    - CHANGE=key:damage value:5
Также имеет в себе возможность изменить локацию. В данный момент работает лишь для активатора RESPAWN
Код:
    - CHANGE=key:respawn_loc value:world,0,64,0,0,0

- Плейсхолдеры player_ip (ip игрока), player_level (уровень игрока), player_item_offhand (предмет из второй руки), player_held_slot (номер слота руки), player_uuid (uuid игрока).
- Плейсходер activator_name (название текущего активатора).
- Теперь в плагин встроено дополнение PAPI - не придется искать его в закромах оригинальной темы.

Но... Это все может работать нестабильно - возможности протестировать и половину из этого списка у меня просто нет. Если есть какие-либо проблемы или комментарии - прошу в тему или на гитхаб.

Планы, возможно несбыточные

- Добавление RaContext в работу активаторов, флагов и действий для улучшения работы с временными переменными и редактируемыми значениями изначальных ивентов. done
- Изменение языковой системы для её структуризации и более простой редакции.
- Возможность кэширование каких-либо данных до перезагрузки сервера.
- Общая переработка и улучшение системы плейсхолдеров. done
- Система модулей - подгрузка различных активаторов, флагов, действий, плейсхолдеров извне. Должна заменить встроенную поддержку иных плагинов, позволит быстро обновлять модули плагинов независимо друг от друга - не придется для обновления поддержки отдельного плагина ждать обновления всего ReActions. В ПРОЦЕССЕ
- Некое подобие классов/объектов. Возможно, слишком сложно для обычных разработчиков скриптов, но идея интересная.
- Возможность создания БД h2/sqlite.
- Разделение плагина на его ядро/api и реализацию для последующей поддержки на Bukkit, Sponge и Nukkit.
- Просто починка багов, оптимизация и добавление новых активаторов, флагов, действий да и просто фич.

Если есть предложения - опять же, прошу в тему или на гитхаб.

GitHub(исходный код) GH Actions(последние билды*)
Оставить чаевые https://www.buymeacoffee.com/imdanix
*для скачивания требуется авторизация


P.s.
Честно говоря, не имею цели привлечь к ReActions новую аудиторию, или тем более нажиться на продолжении разработки сего плагина. Другое дело, что мне просто нравится работать над этим, и, пожалуй, я продолжу это делать.
Изначальной идей было просто обновить плагин на версию 1.13, да и забыть про это на веки-вечные. Но в какой-то момент осознал, что в плагине есть много того, чего бы я действительно хотел изменить, будь то какие-то мелочи, или же важные части структуры плагина. К тому же это неплохой способ получить какой-никакой опыт.

Я дико извиняюсь, а как его скачать?
 
Как добавить задержку на выполнение actions?
 
Как добавить задержку на выполнение actions?
Код:
actions:
- MESSAGE=Привет
- ACTION_DELAYED=time:10s action:{MESSAGE Привет, но через 10 секунд}
Через WAIT менее рекомендовано, ибо не сохраняются некоторые временные переменные.
Код:
actions:
- MESSAGE=Привет
- WAIT=10s
- MESSAGE=Привет, но через 10 секунд
 
Народ, а может кто-нибудь пояснить, сильно ли лучше ReActions плагина MyCommand? Что-то вчитался в документацию (Правда оригинального плагина), и сижу с лицом лягушки, потому что уже сделал целый сервер по большей части на MyCommand. Хотел приняться создавать второй сервер, а тут - такая конфета, с возможностью слушать эвенты без привязок к командам и прочему. Есть ли какая-то особо неприятная загвоздка, из-за которой не стоит переходить с уже родного MyCommand на чуждый ReActions?
 
Привет всем, как сделать выполнение команды с определенным шансом?

допустим есть команда /kick с шансом выполнения 90%, а есть команда /ban с шансом выполнения 10%
 
Желаю автору плагина закончить курсы по айдишниках блоках и предметов. Надо было умудриться сделать айди блока кирпичей не brick_block или хотя бы bricks_block bricks, а brick.
Досих пор не могу найти нормальное айди для БЕЛОГО СТЕКЛА (казалось бы STAINED_GLASS) и айди предмета кирпича (казалось бы BRICK)
Плагин вроде норм, но из за таких мелочей хочется застрелиться, поскольку НИЧЕГО ты не можешь создать по нормальному, постоянно произойдёт какаята йня, и ты не поймёшь что не так и почему код не срабатывает по нормальному.
Ответ конечно поздний в щи, но с этой претензией не ко мне, а к разработчикам в первую очередь Mojang - это буквально те же самые id (можно даже увидеть при F3+h), которые используются в ваниле. К тому же, все они дублируются в Bukkit.
Обновил сборку на GH Actions. Плагин сейчас не в активной разработке - нет ни времени, ни сил - но в случае багов и ошибок, можешь писать здесь или в ЛС.
 
Ни смотря на большую страшную надпись в начале темы, ветка dev/modularity была слита в проект. Ожидается гора багов, поэтому отделил изменения до слития в отдельный релиз.
Слитие привносит огромное количество изменений во внутреннюю систему плагина, но увеличения производительности, или новых фич, увы, не добавляет. Попробовать можно установив последний билд. Для работы требуется Java 17.
В ближайших планах исправления багов (в частности, проблемы с активаторами и флагами предметов), а также переделка системы команд и сообщений непосредственно плагина.

Единственное, из приятных изменений - действию RESPONSE была добавлена поддержка синтаксиса MineDown.
 
Добавил альтернативную систему опознания плейсхолдеров. Пока опционально, но когда-нибудь (нескоро) будет включена по-умолчанию. Включается в конфиге, опция general.use-modern-placeholders. По этому поводу немного обновил страничку вики по плейсхолдерам.
Вместо %плейсхолдер% использует формат %[плейсхолдер] - таким образом удается лучше определить границы каждого плейсхолдера при вложенности.
Также доступен формат #[плейсхолдер] - такой плейсхолдер будет заменен лишь раз, т.е. его внутренности не будут обработаны повторно. Может быть полезно при работе с сообщениями игрока.
Доступно экранирование - \%[плейсхолдер\], такой плейсхолдер не будет обработан и просто будет заменен на %[плейсхолдер].
Поддержка PlaceholderAPI на месте, его плейсхолдеры через %% могут использоваться как обычно.

Ещё, модульная система по сути уже работает - папка Modules создается, и если туда положить подходящий модуль, соответственно, он заработает. К сожалению, разделение самого плагина на модули потребует много времени, так как плагины вроде WG вшиты в него очень глубоко.

Впрочем, не то, чтобы версией 0.14.Х кто-то кроме меня пользовался :D
 
Последнее редактирование:
Исправил проблемы с функциями в плейсхолдере calc. Уже довольно давно там в нём используется мой EzMath. Немного привел библиотеку в нормальный вид, так что если кому вдруг понадобится функционал просчета формул, добавил тег в репозиторий, чтобы можно было подхватить с jitpack.
 
В данный момент переписываю обработку предметов. Если у кого-то остались старые активаторы, которые много взаимодействуют с предметами, прошу поделиться - здесь или в ЛС. В старом РеА много всяких квирков (например, создаваемый временный плейсхолдер item_amount, появляющийся при флаге ITEM), которые не задокументированы, или которые познаются только на практике - хочется либо сохранить их, либо придать унифицированности по всему плагину.
 
Предметы полностью переписаны. Последнюю версию до слития вытянул в релиз 0.14.1, переписанные предметы доступны в дев-билдах. По случаю, немного освежил вики предметов. Для начала уточню, что производительность новой системы предметов намного выше старой - обрабатывается куда меньше мусора и ненужных данных.

Для проверок теперь предмет можно оставлять пустым (например, - 'ITEM=') - в таком случае он будет реагировать просто на наличие предмета. Если указать type:AIR, то будет проверяться отсутствие предмета. В обоих случаях, если попытаться выдать такой предмет, ничего не произойдет.
Плейсхолдеры инвентаря, которые выводят предметы (например, %[player_inv:hand]) будут выводить type:AIR, если предмет отсутствует.
Добавлен параметр custom-model-data.
Параметр regex заменен на отдельные параметры name-regex и lore-regex. Для обратной совместимости параметр все ещё действует, и будет автоматически конвертировать name и lore в name-regex и lore-regex соответственно.
Параметр data переименован в durability, skull-owner в head-owner - старые названия все ещё можно использовать, но предметы будут показывать именно эти параметры.
Параметр pattern переименован в banner-pattern.
Параметр stored-enchants теперь является частью enchantments.
Параметры name, lore и enchantments можно оставить пустыми (например, name:{}) - в таком случае на предмете будет проверяться отсутствие этих параметров.

Также несколько изменены modern плейсхолдеры. Синтаксис #[плейсхолдер] убран - теперь для экранирования плейсхолдеров внутри плейсхолдера следует использовать %[плейсхолдер](phs). В будущем в эти скобки добавятся опции для экранирования параметров (фигурных скобок) и цветов.
 
Последнее редактирование:
У меня с ним траблы,не грузиться на 1.16.5 , его сервер не видет в /pl
 

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

Назад
Верх