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

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

Тема в разделе "Запросы на разработку плагинов", создана пользователем Norfolc-xxxx, 11 июл 2015.

  1. Автор темы
    Norfolc-xxxx

    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'ем я как бы обозвал плагин) которое позволяет ему пользоваться командой для выполнения этого сценария.

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

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

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Ну.. могу предложить 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}
     
  3. Автор темы
    Norfolc-xxxx

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

    Баллы:
    66
    Имя в Minecraft:
    Norfolc
    Уже много раз натыкался на ваш плагин, он действительно очень крут, но я боюсь в него залезать и начинать в нём разбираться, ведь это плагин по созданию других плагинов :D
    Но вот, рано или поздно я просто обязан был к нему прийти. Пожалуй да, я поставлю его. Спасибо за код!
     
  4. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Нет, уж то точно не по созданию других плагинов. Просто по привязыванию набора действий к каким-то событиям. К примеру, к написанию команды ;)
     
  5. Автор темы
    Norfolc-xxxx

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

    Баллы:
    66
    Имя в Minecraft:
    Norfolc
    Что значит это ваше "Нет"?
    Сейчас мы только что отказались от написания целого плагина в счёт ReActions!
    Да, вопрос. Это будет работать при вводе с консоли? Не данный пример именно, но по тому же принципу?
     
  6. fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    "Нет" - это значит, что вы не получите на выходе jar-файла ;)
    Но результат зачастую может заменить плагины.

    Данный пример - это именно игровые команды. В принципе по поводу консольных команд никто вопросов не задавал раньше, но в принципе есть активатор MESSAGE, который позволяет отлавливать разные типы сообщений. В т.ч. и ввод в консоли сервера.
     
  7. Автор темы
    Norfolc-xxxx

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

    Баллы:
    66
    Имя в Minecraft:
    Norfolc
    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 секунд дважды второе.


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

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