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

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

У меня с ним траблы,не грузиться на 1.16.5 , его сервер не видет в /pl
@imDaniX кинь плз гайд как правильно установить
К сожалению, пока не могу поддерживать версии продолжительное время - поддержка 1.16 была брошена полтора года назад. Собрал вот старый билд, но следует учесть, что багов стоит ожидать немерено. Советую смотреть в сторону Skript или ConditionalEvents.
 
Добавил экранирование параметров. Например, при вводе "test:{value\}}", значение параметра "test" будет "value}". Для экранирования через modern плейсхолдеры - %[placeholder](prms). Поможет защититься от инжектов при вводе сообщений, команд. Данные предметов, получаемые через плейсхолдеры, экранируются автоматически.
Экранируются {}, если их количество не совпадает, а также \, если тот стоит в конце экранируемой строки.
 
Последнее редактирование:
Играюсь с системой команд. Пытался воспользоваться фреймворком Lamp, но там нет поддержки сложного синтаксиса (а-ля /reactions activator <name> add action <type> [<params...>]), так что придется искать альтернативы... Если кто знает чего-нибудь, что не потребует слишком много усилий - отпишитесь, пожалуйста.
В любом случае, успел на Lamp сделать такую штуку - автоматом предлагает опции и названия активатора. Плюс организовал кликабельную информацию. В принципе, что-то такое и будет (только, соответственно, без ошибок при вводе)
SG4kBB9.gif
 
Последнее редактирование:
Не работает совсем. Может я что-то не правильно сделал.

REGION_ENTER:
player:
region: kab1
flags:
- REGION_PLAYERS=world.kab1/2
actions:
- BLOCK_SET=block:deepslate_bricks loc:-194/174/375
 
С момента последнего поста прошло много внутренних изменений. Плагин теперь проверяется на продакшен серверах, благодаря чему была найдена куча ошибок и недоработок. Алсо, взял домен 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. Будьте осторожны с рекурсивным запуском, чтобы не убить сервер.
 
Последнее редактирование:
Привет. После фикса 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
 
Привет. После фикса 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
По возможности, закидывай, пожалуйста, через "Вставка" > "Код".
Можешь уточнить, что именно не работает? Этот скрипт выполняется успешно:
Код:
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"
 
У меня пишет только 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
 
У меня пишет только 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
Кажется, нашел проблему. Попробуй последний билд.
 
Есть ли активатор на попадание стрелы в блок? Если нет, как это можно имитировать? Невидимый моб перед целью? Хочу делать тир с калькуляцией очков за попадание по мишеням.
 
Есть ли активатор на попадание стрелы в блок? Если нет, как это можно имитировать? Невидимый моб перед целью? Хочу делать тир с калькуляцией очков за попадание по мишеням.
Пока, к сожалению, нету. Но да, проще всего невидимым мобом будет реализовать.
Могу добавить в ближайшее время, если горит.
 
Пока, к сожалению, нету. Но да, проще всего невидимым мобом будет реализовать.
Могу добавить в ближайшее время, если горит.
Был бы очень благодарен, если бы добавили, с мобами все очень сильно усложняется и не стабильно работает, так как они имеют свойство дохнуть.
 
Привет. Как этот код теперь переписать, что бы он работал?
Код:
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
2023-06-17-20-00-35.png
 
Привет. Как этот код теперь переписать, что бы он работал?
Код:
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
2023-06-17-20-00-35.png
Переменные игрока указываются через varp - %varp:race_setup_countdown_var%
edit: А ещё у тебя в последнем execute лишний пробел после delay:
 
Привет. Как этот код теперь переписать, что бы он работал?
Код:
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
2023-06-17-20-00-35.png
2023-06-17-20-38-08.png
 
Пока, к сожалению, нету. Но да, проще всего невидимым мобом будет реализовать.
Могу добавить в ближайшее время, если горит.
Не добавлял еще? Хотелось бьі уже реализовать задуманное на сервере.
 

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

Назад
Верх