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

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

Тема в разделе "Неподтвержденные плагины", создана пользователем imDaniX, 6 сен 2019.

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

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Re:ReActions | Попробуем снова?

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

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

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

    - Работает на версии 1.13 и выше. Одновременно с этим поддержка версий до 1.13 была удалена.
    - Пустые файлы персональных переменных удаляются при старте плагина.
    - Возможность отдельной перезагрузки таймеров, переменных, файла задержек, локаций, конфига и команд, меню, а также активаторов и отдельных групп активаторов.
    /ra reload g dude/testing - перезагрузит группу активаторов testing.yml в папке dude
    /ra reload vt - перезагрузит переменные и таймеры
    a - активаторы, l - локации, c - конфиг и команды, d - задержки, v - переменные, t - таймеры, m - меню; g папка/файл - группа
    Для перезагрузки всего сразу как обычно можно использовать /ra reload, но на мой взгляд она всегда грузила слишком много.
    - Добавлено предупреждение при ошибке в активаторе MESSAGE - чат игроков проходит в отдельном потоке, от чего при использовании третьих плагинов сервер может улететь в краш.
    - Теперь в плагин встроено дополнение PAPI - не придется искать его в закромах оригинальной темы.
    - Добавлен лимит на раскрытие плейсхолдеров (настраивается в конфиге) - порой, если вы неправильно поставили переменную(вложили её саму в себя), вызывается ошибка переполнения стека.
    - Оптимизирована работа активаторов, их *активация*
    - Оптимизирована работа задержек(действие ACTION_DELAYED, например), которые заново обрабатывались при входе игрока. Также добавлено удаление задержек, которые были запущены, но не активированы слишком давно(настраивается в конфиге в часах).
    - Плейсхолдеры player_ip (ip игрока), player_level (уровень игрока), player_item_offhand (предмет из второй руки), player_held_slot (номер слота руки)
    - Указатели player:all и player:null заменены на player:~all и player:~null, дабы избежать проблем с игроками, ники которых "all" и "null".
    - Перенос создания локаций, таймеров, меню и активаторов из команды /ra add в /ra create
    - Изменение работы "общения" событие-активатор-событие - добавление действия CHANGE.

    - Удален активатор COMMAND. Вместо него новая система команд и активатор PRECOMMAND, который практически полностью копирует функционал оригинального активатора.
    - Новый активатор PRECOMMAND - простая проверка команды.
    Код:
    PRECOMMAND:
      test_precommand:
        command: test
        regex: false
        starts: true
        console_allowed: true
      test_precommand2:
        command: '(test|тест) .*'
        regex: true
        starts: false
        console_allowed: false
    
    - Новый активатор 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 # причина телепорта, можно не указывать
    
    Список возможных причин телепортации
    - Новый активатор PROJECTILE_HIT(в ранней разработке)

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

    - Попытка исправления мертвоспавна мобов MOB_SPAWN.
    - Новое действие RESPONSE. Настоятельно рекомендую использовать его в связке с командами и активатором PRECOMMAND. Отсылает сообщение игроку или консоли.
    Код:
        - 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
    

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

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

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

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

    GitHub(исходный код) CircleCI(последние билды*)
    *для скачивания требуется авторизация


    P.s.
    Честно говоря, не имею цели привлечь к ReActions новую аудиторию, или тем более нажиться на продолжении разработки сего плагина. Другое дело, что мне просто нравится работать над этим, и, пожалуй, я продолжу это делать.
    Изначальной идей было просто обновить плагин на версию 1.13, да и забыть про это на веки-вечные. Но в какой-то момент осознал, что в плагине есть много того, чего бы я действительно хотел изменить, будь то какие-то мелочи, или же важные части структуры плагина. К тому же это неплохой способ получить какой-никакой опыт.
     
    Последнее редактирование: 19 сен 2019 в 11:57
  2. Mr Hosting
  3. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Резерв
     
  4. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    Возникла проблема, хотел привязать действие к определенному блоку, но координаты не видит, а в ручную в конфиге хз как вписывать, команду написал которую вводил upload_2019-9-7_22-38-50.png
     
  5. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Попробуй через location:world,-1764,21,845. Как закончу с текущим обновлением постараюсь начать документацию на гитхабе и в пределах плагина и, где требуется, нормализовать неразбериху с локациями там и сям.
    А ещё type неверно указан. Если это 1.14+ - там больше нет просто SIGN, ибо ныне существует куча табличек из разной древесины.
     
  6. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    Да сработало, спасибо. Еще не получается нормально перезагружать плагин, на версии 1.14.4. К примеру я удалил в активаторах целый раздел ( таблички) и после перезагрузки плагин ругается, выдает ошибку и до полной перезагрузки сервера перестает работать (выключил - включил), и так почти с каждым моим действием

    **** Переврал немного, но легче не становится. Пытался создать простенькие актеваторы(
    BLOCK_CLICK)
    , но после перезахода плагин просто слетает и отказывается работать пока не почищу все
     
    Последнее редактирование: 7 сен 2019
  7. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Лог/ошибки на hastebin/pastebin, погляжу.
     
  8. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    https://pastebin.com/jBRqtQsX
     
  9. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    > plugin is disabled
    Плагин вообще отключен... Можно лог ошибки при самом удалении, а лучше полный лог?
     
  10. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    Вот лог: https://pastebin.com/5npzbF0x
     
  11. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Ох, такие простые ошибки. Исправлю в следующем обновлении - выпущу в течении одного-трех дней.
     
  12. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    Отлично что ты занимаешься им, огромное спасибо, плагин пусть и не популярный но очень перспективный.
    Как мне кажется не хватает для выбора локации опции чтобы сохранять координаты куда ты смотришь, чтобы не в ручную переписывать все координаты перенесенных табличек, а используя локацию для них, может и другое есть и другие применения, но это самое очевидное.
     
  13. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    В оригинальном ReA была команда /ra sel, которая записывала локацию, куда смотрит игрок, и её можно было использовать для создания активаторов в команде /ra add. С разделением /ra add на /ra create и /ra add я несколько сломал это, но со следующим обновлением вернется.
     
  14. Korvinius

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

    Баллы:
    88
    То есть, можно будет писать свои "модули", которые будут "подгружаться" как в PlaceholderAPI?
     
  15. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Именно. Впрочем, работать начну над этим я лишь через несколько месяцев - до этого нужно закончить с контекстами, переработать языковую систему и систему плейсхолдеров, а между всем этим чинить баги новые и старые.
     
  16. Korvinius

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

    Баллы:
    88
    :good:Шикарно!
    Эх нашелся бы еще добрый человек, который PlayEffect обновит...
     
  17. Korvinius

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

    Баллы:
    88
    Если возможно, сделайте возможность в активаторах DAMAGE_BY_MOB, MOB_CLICK, MOB_DAMAGE, MOB_KILL, привязывать активатор не к какому то одному мобу, а ко всем и/или к группе мобов.
     
  18. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Обновление 0.12.27 | Экспериментальное
    - Изменение работы "общения" событие-активатор-событие.
    Действие VAR_TEMP_SET больше не влияет на изначальное событие. Вместо этого добавлено действие CHANGE.
    Код:
    - CHANGE=key:damage value:5
    Временные переменные по-прежнему будут обновляться, т.е. "%damage%" в данном случае вернёт "5".
    Также теперь можно изменять некоторые локации. В данный момент это только локация респавна в активаторе RESPAWN.
    Код:
    - CHANGE=key:respawn_loc value:world,0,64,0,0,0
    - Исправление новой системы команд от лица игрока(команды могли попросту не работать)
    - Возвращение функционала COMMAND
    Активатор PRECOMMAND теперь практически полностью копирует функционал удаленного активатора COMMAND, за тем исключением, что команды не регистрируются, а также отсутствует параметр override. Впрочем, на замену override можно использовать действие CANCEL_EVENT или его эквивалент в CHANGE
    Код:
    - CANCEL_EVENT=true
    - CHANGE=key:cancel_event value:true
    - Некоторые исправления
    Исправлена критическая ошибка при первом запуске плагина. Исправлена возможность забирать предметы из меню. Определенные плейсхолдеры локаций теперь работают и в /ra create.

    GitHub(исходный код) CircleCI(последние билды*)
    *для скачивания требуется авторизация

    Повторюсь - обновление экспериментальное, потому, прошу сообщать о всех ошибках. На сей момент не советую ставить на сервер в продакшене.
    В последующем постараюсь выпускать более частые обновления дабы вовремя исправлять новоявленные ошибки, избегая таких задержек при больших обновлениях. В ближайшее время буду чинить баги и добавлять мелкие фишки, вроде предложения выше.
     
    Последнее редактирование: 17 сен 2019 в 12:53
  19. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    Что то опять не по плану идет, запустил, прописал себе первый активатор, подредактировал его в конфиге и опять не робит ничего. Я так понял что если в ручную редактироваться конфиг все слетает с массой ошибок
     
  20. Автор темы
    imDaniX

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

    Баллы:
    76
    Имя в Minecraft:
    imDaniX
    Странности за странностями. На домашнем сервере все работает. Лог с ошибками, и буду чинить.
     
  21. pasha5018

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

    Баллы:
    66
    Имя в Minecraft:
    tdmackey
    Для чистоты эксперемента взял чистый сервер только с 1 плагином вписал команду "/react create BLOCK_CLICK test location:world,13,63,29" и следом "/react reload"
    вот что выдало - https://pastebin.com/GdrZvMJH
     

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