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

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

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

  1. Vinzer

    Vinzer Ньюби

    Баллы:
    1
    Имя в Minecraft:
    Babijon
    @imDaniX кинь плз гайд как правильно установить
     
  2. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    К сожалению, пока не могу поддерживать версии продолжительное время - поддержка 1.16 была брошена полтора года назад. Собрал вот старый билд, но следует учесть, что багов стоит ожидать немерено. Советую смотреть в сторону Skript или ConditionalEvents.
     
  3. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Добавил экранирование параметров. Например, при вводе "test:{value\}}", значение параметра "test" будет "value}". Для экранирования через modern плейсхолдеры - %[placeholder](prms). Поможет защититься от инжектов при вводе сообщений, команд. Данные предметов, получаемые через плейсхолдеры, экранируются автоматически.
    Экранируются {}, если их количество не совпадает, а также \, если тот стоит в конце экранируемой строки.
     
    Последнее редактирование: 6 ноя 2022
  4. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Играюсь с системой команд. Пытался воспользоваться фреймворком Lamp, но там нет поддержки сложного синтаксиса (а-ля /reactions activator <name> add action <type> [<params...>]), так что придется искать альтернативы... Если кто знает чего-нибудь, что не потребует слишком много усилий - отпишитесь, пожалуйста.
    В любом случае, успел на Lamp сделать такую штуку - автоматом предлагает опции и названия активатора. Плюс организовал кликабельную информацию. В принципе, что-то такое и будет (только, соответственно, без ошибок при вводе)
    [​IMG]
     
    Последнее редактирование: 23 ноя 2022
  5. kostenko

    kostenko Участник

    Баллы:
    31
    Имя в Minecraft:
    generalkostenko
    Не работает совсем. Может я что-то не правильно сделал.

    REGION_ENTER:
    player:
    region: kab1
    flags:
    - REGION_PLAYERS=world.kab1/2
    actions:
    - BLOCK_SET=block:deepslate_bricks loc:-194/174/375
     
  6. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    С момента последнего поста прошло много внутренних изменений. Плагин теперь проверяется на продакшен серверах, благодаря чему была найдена куча ошибок и недоработок. Алсо, взял домен reactions.fun, который просто ведёт на страницу плагина на GitHub.

    Были переименованы многие действия, флаги и активаторы. Старые названия продолжат работать благодаря системе "псевдонимов". Из важного - активаторы EXEC переименованы в FUNCTION. Документация пока не обновлена.

    Полностью переработана система временных переменных. Теперь они называются локальными (действие VAR_TEMP_SET переименовано в LOCAL_VAR), и их изменение вновь влияет на оригинальные события (например, изменение урона в MOB_DAMAGE). Действие CHANGE стало псевдонимом LOCAL_VAR, так что если вы уже используете CHANGE, вам не придется ничего менять. Для удобства было добавлено действие LOCAL_VAR_BULK, которое можно использовать для добавления сразу нескольких переменных
    Код:
    actions:
    - LOCAL_VAR_BULK=foo:bar display:{Hello world!}
    Точно также была переписана система отложенных запусков. Теперь она используется не только в WAIT, но ещё и ACTION_DELAYED и EXECUTE. При использовании WAIT теперь сохраняются локальные переменные. Действие ACTION_DELAYED переименовано в RUN_ACTION, может запускать действия без таймера, а также теперь сохраняется при перезагрузке. Поведение отложенных действий при отсутствии игрока, по отношению к которому было выполнено действие, теперь регулируется опцией general.waiter-missing-player-behaviour. Значения: SKIP - пропустить выполнение действия в этом тике, пока игрок не войдет; EXECUTE - выполнить действий все равно, если это возможно; DISCARD - пропустить и удалить отложенное действие. Для сохранения совместимости использует SKIP.

    Добавлено действие RUN_FUNCTION, которое исполняет активатор FUNCTION мгновенно, в отличии от действия EXECUTE. Будьте осторожны с рекурсивным запуском, чтобы не убить сервер.
     
    Последнее редактирование: 25 мар 2023
  7. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Привет. После фикса delay у активатора перестал работать DELAY как action. У меня следующего вида скрипт:
    Файл активатора:
    DROP:
    drop_diamond:
    item: type:diamond
    flags:
    - REGION=Void_new.magic_glade
    actions:
    - DELAY=id:remove_delay time:1s
    - EXECUTE=activator:remove_diamond
    EXEC:
    remove_diamond:
    flags:
    - DELAY=id:remove_delay
    actions:
    - EXECUTE=activator:give_reward_diamond
    reactions:
    - EXECUTE=activator:remove_diamond
    Что я вижу в файле delayed-actions.yml:
    2ef99564-4900-4f33-8d0c-835e4bed6ef9:
    player-id: 796341e0-dba8-3f79-8e46-8ecb2f404287
    execution-time: 1685950547811
    actions:
    - RUN_FUNCTION=activator:remove_diamond
    variables:
    delay-time: 07:35:48
    item: type:DIAMOND amount:1
    delay-left: 0s
    pickupdelay: '40'
    cancel_event: 'false'
    cooldown-time: 07:35:48
    droplocation: Void_new,43.4801,61.0,-11.5205,-140.4011,54.0
    cooldown-left-full: 0d null
    delay-left-full: 0d null
    delay-left-hh: '00'
    delay-left-mm: '00'
    delay-left-ss: '00'
    cooldown-left-hms: 00:00:00
    cooldown-left: 0s
    delay-left-hms: 00:00:00
    delay-fulltime: 05-06-2023 07:35:48
    cooldown-left-hh: '00'
    cooldown-left-mm: '00'
    cooldown-left-ss: '00'
    cooldown-fulltime: 05-06-2023 07:35:48
     
  8. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    По возможности, закидывай, пожалуйста, через "Вставка" > "Код".
    Можешь уточнить, что именно не работает? Этот скрипт выполняется успешно:
    Код:
    DROP:
      drop_diamond:
        item: type:diamond
        actions:
        - RESPONSE=Dropped
        - DELAY=id:remove_delay time:1s
        - EXECUTE=activator:remove_diamond
    EXEC:
      remove_diamond:
        flags:
        - DELAY=id:remove_delay
        actions:
        - RESPONSE=Action
        reactions:
        - RESPONSE=Reaction
        - EXECUTE=activator:remove_diamond
    Пишется "Dropped", в течение секунды "Reaction", и в конце "Action"
     
  9. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    У меня пишет только Dropped и все. Если увеличиваю паузу и вызываю вручную /exec remove_diamond, то пишет только Reaction. В общем перестал работать вызов активатора из других активаторов. Еще такой вариант проверил:
    делаю в файле commands.yml следующее:
    Код:
    cash:
      command: cash
      exec: cash_cmd
    
    Активатор:
    Код:
    EXEC:
      cash_cmd:
        actions:
        - execute=activator:cash_player
      cash_player:
        actions:
        - CMD_CONSOLE=eco give %player% 500
        - MESSAGE=&7[&a$ CASH $&7] &eВы получили &7$500&e!
    
    Вариант выше не работает, при том, что такая команда работает:
    Код:
    cash:
      command: cash
      exec: cash_player
    
     
  10. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Кажется, нашел проблему. Попробуй последний билд.
     
  11. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Заработало, спасибо
     
  12. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Есть ли активатор на попадание стрелы в блок? Если нет, как это можно имитировать? Невидимый моб перед целью? Хочу делать тир с калькуляцией очков за попадание по мишеням.
     
  13. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Пока, к сожалению, нету. Но да, проще всего невидимым мобом будет реализовать.
    Могу добавить в ближайшее время, если горит.
     
  14. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Был бы очень благодарен, если бы добавили, с мобами все очень сильно усложняется и не стабильно работает, так как они имеют свойство дохнуть.
     
  15. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Привет. Как этот код теперь переписать, что бы он работал?
    Код:
    PLATE:
      dworff:
        world: Void_new
        x: -11
        y: 46
        z: -279
        actions:
        - VAR_PLAYER_SET=id:race_setup_countdown_var value:5
        - execute=activator:race_setup_countdown delay
    EXEC:
      race_setup_countdown:
        flags:
        - VAR_PLAYER_COMPARE=id:race_setup_countdown_var value:0
        actions:
        - COMMAND_CONSOLE=setrace %player% dworf
        - COMMAND=spawn
        - MESSAGE=§6[§cВибір раси6]§f Вибрана раса Каджит
        reactions:
        - MESSAGE=§6[§cВибір раси]§f Вибір раси через %race_setup_countdown_var%
        - VAR_PLAYER_DEC=id:race_setup_countdown_var value:1
        - execute=activator:race_setup_countdown delay: 1s
    [​IMG]
     
  16. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Переменные игрока указываются через varp - %varp:race_setup_countdown_var%
    edit: А ещё у тебя в последнем execute лишний пробел после delay:
     
  17. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    [​IMG]
     
  18. Автор темы
    imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Исправил в последнем снапшоте.
     
  19. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Спасибо, проверяю
     
  20. Dinikin

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

    Баллы:
    66
    Имя в Minecraft:
    Dinikin
    Не добавлял еще? Хотелось бьі уже реализовать задуманное на сервере.
     

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