Идея Сценарий выполнения команд.

Norfolc-xxxx

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
Norfolc
Я просто впрыскиваю идею для плагина, который был бы полезен, как мне кажется, очень многим. В том числе, конечно и мне. Если кто сделает могу скинуть на пивас, но сюрьёзно заказывать и покупать не планирую.

Идея такая: выполение ряда команд по заданному сценарию, вызываемого одной командой.
Хотелось бы сделать его в стиле плагина ChestCommands. Как я это вижу:

Создаётся отдельный файл, например, fly.yml
В нём пишем следующие данные:
1. Команда, вызывающая ценарий (в нашем случае для примера пусть будет /timefly)
2. Сам сценарий.

Сценарий может выглядеть так:
tell: Вам доступен полёт на 20 секунд. (сообщение в чате у игрока)
console: pex user {player} add какойтотам.пермишенс.fly (команда от имени консоли)
player: fly (команда от имени игрока)
wait: 10 (тут сценарий останавливается и ждёт 10 сек до выполдения следующей команды)
tell: У вас осталось 10 секунд!
wait: 5
tell: У вас осталось 5 секунд!!!
wait: 5
player: fly
console: pex user {player} add -какойтотам.пермишенс.fly
tell: Время вышло!

При этом игроку в правах (или группе, в которой игрок) прописывается право например screenplay.fly.yml, (где screenplay'ем я как бы обозвал плагин) которое позволяет ему пользоваться командой для выполнения этого сценария.

Я знаю что к данному примеру можно и альтернативу найти, но вообще по ходу "проектирования" сервера возникает много идей, которые легко можно было бы реализовать таким плагином.

Кроме того сделать поддержку выполнения сценария консолью. Не знаю где как, а на моём хостинге крайне криво выглядит автовыполнение команд. Мне каждый день нужно выполнять ряд команд, которые должны идти в строгой последовательности и желательно выполняться быстро, не дольше минуты, а хостинг позволяет устанавливать по команде на определённую минуту определённого часа. Я могу поставить либо все команды в одну минуту и не понятно, в какой последовательности они выполнятся, либо через минуту каждую. А сценарий выполнил бы всё так, как надо, при этом на хостинге стояла бы всего одна команда.
 
Ну.. могу предложить ReActions. Там создается активатор, в котором всё это делается. Синтаксис естественно другой, но...

Код:
COMMAND:
  timefly:
    override: true
    regex: false
    command: cmd:timefly
    actions:
    - cmd_console=pex user %player% add templfy.allow
    - MESSAGE=&6Вам доступен полет на 20 секунд!
    - cmd=fly
    - ACTION_DELAYED=time:10s action:{MESSAGE &6У Вас осталось десять секунд!}
    - ACTION_DELAYED=time:15s action:{MESSAGE &6У Вас осталось пять секунд!}
    - ACTION_DELAYED=time:20s action:{cmd fly}
    - ACTION_DELAYED=time:20s action:{cmd_console pex user %player% remove templfy.allow}
 
Ну.. могу предложить ReActions. Там создается активатор, в котором всё это делается. Синтаксис естественно другой, но...

Код:
COMMAND:
  timefly:
    override: true
    regex: false
    command: cmd:timefly
    actions:
    - cmd_console=pex user %player% add templfy.allow
    - MESSAGE=&6Вам доступен полет на 20 секунд!
    - cmd=fly
    - ACTION_DELAYED=time:10s action:{MESSAGE &6У Вас осталось десять секунд!}
    - ACTION_DELAYED=time:15s action:{MESSAGE &6У Вас осталось пять секунд!}
    - ACTION_DELAYED=time:20s action:{cmd fly}
    - ACTION_DELAYED=time:20s action:{cmd_console pex user %player% remove templfy.allow}

Уже много раз натыкался на ваш плагин, он действительно очень крут, но я боюсь в него залезать и начинать в нём разбираться, ведь это плагин по созданию других плагинов 😁
Но вот, рано или поздно я просто обязан был к нему прийти. Пожалуй да, я поставлю его. Спасибо за код!
 
Нет, уж то точно не по созданию других плагинов. Просто по привязыванию набора действий к каким-то событиям. К примеру, к написанию команды 😉
 
Нет, уж то точно не по созданию других плагинов. Просто по привязыванию набора действий к каким-то событиям. К примеру, к написанию команды 😉

Что значит это ваше "Нет"?
Сейчас мы только что отказались от написания целого плагина в счёт ReActions!
Да, вопрос. Это будет работать при вводе с консоли? Не данный пример именно, но по тому же принципу?
 
"Нет" - это значит, что вы не получите на выходе jar-файла 😉
Но результат зачастую может заменить плагины.

Данный пример - это именно игровые команды. В принципе по поводу консольных команд никто вопросов не задавал раньше, но в принципе есть активатор MESSAGE, который позволяет отлавливать разные типы сообщений. В т.ч. и ввод в консоли сервера.
 
formgate, я вчера сидел и копался на вашем сайте-туториале, нашёл кое-что и попробовал написать. Выглядит это так:
Код:
EXEC:
  test1:
    actions:
    - CMD_CONSOLE=say hello world 1
    - ACTION_DELAYED=time:10 action:{CMD_CONSOLE say hello world 2}

Запускаю командой: /react run activator:test1
Отклик есть, запущено успешно, результата нет.
Запускаю командой: /react run activator:test1 player:ДляСебя
Вижу в чате дважды первое сообщение и через 10 секунд дважды второе.


Это вообще то что мне нужно? Вроде похоже. И как тогда правильно?
 
Назад
Верх