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

Плагин [MECH/FUN] ReActions - Что? Тогда? Иначе! [BukkitDev]

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Юзайте консольную команду отправки сообщения игроку этой командой. Сам tellraw удобно составить в онлайн-сервисе.
    Локальную задержку активатора ставить нужно, если такое раздражает.
     
  2. trezz

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

    Баллы:
    61
    А можно по подробнее и с примером. Что-то я вообще сообразить не могу.
     
  3. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    CMD_CONSOLE=tellraw бла-бла-бла
     
  4. trezz

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

    Баллы:
    61
    Это немного не то. Мне нужно КАК в tellraw, а не сама команда. Tellraw пишет игроку в чат и выполняет это, если он нажмет на надпись. А мне нужно без нажатия. Так реально?
    Во как бы игрок зашел в приват допустим и у него в чат что-то вбилось и отправилось. Не через say или sudo ибо так не подходит, а именно в чат написало игроку и вызвалось.
     
  5. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    А что вызвать-то тебе нужно? Какое действие, к примеру, при входе в РГ?
    Код:
    - message=<Тута свой текст>
    #- wait=<вреямя> к примеру, если тебе нужно сделать задержку
    - <Тута свое действие>
    
    вот пример:
    Код:
    actions:
      - message=&7[&4PvP&7] &b> &eВы вошли на территорию &cPvP&e, GM отключен.
      - wait=1s
      - cmd_console=gm %player% 0
    
     
  6. trezz

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

    Баллы:
    61
    Мне нужно заставить игрока написать в чат при входе в регион. Только написать в чат игрока и выполнить оттуда как в tellraw, обычные say и тд не подходят.
     
  7. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    Аааа, сложна! Тебе нужно что бы при входе в РГ от имени игрока выполнялась какая-та команда?!?
    Тогда так:
    Код:
    actions:
    - cmd=<команды>
    
    А вообще, изучите-ка документацию (вдруг вы не сможете нажать на гиперссылку - http://reactions.fromgate.ru/)
     
  8. trezz

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

    Баллы:
    61
    В документации я уже был. Ничего такого не нашел. И мне нужно не именно команду, а заставить игрока написать в чат. Вы не можете немного понять сути проблемы, но все же спасибо за ответы.
     
  9. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    Заставить игрока написать в чат... РА тебе не поможет, к сожалению, только РА + Сторонний плагин, к примеру, OnlyCore.
     
  10. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    У меня немного иная проблема. Как сделать в 'flags' или то или это?
    К примеру:
    Код:
    REGION:
      Spawn_speed:
        region: spawn
        flags:
        - REGION=pvp #или РГ pvp, или РГ pvp2, или РГ ....
        reactions:
        - POTION=type:SPEED time:2 ambient:true 

    Ах, еще, как-нибудь можно сделать так что бы из такой команды: /do <Player> <Text>
    вы делить чисто %arg1% и все последующие аргументы?
    Мне это нужно для того, что бы я писал /do <Player> <Text> и в чат выводилось фейковое сообщение игрока)
     
  11. MLionel

    MLionel Участник

    Баллы:
    31
    Как установить кулдаун на команду?
     
  12. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    Код:
    call:
        override: true
        regex: true
        command: call .*
        flags:
        - DELAY_PLAYER=id:call player:%player% set-time:10s
        reactions:
        - message=&eЖди еще &c%delay-left-ss%&e секунд.
        - cancel_event=true 
     
  13. Korvinius

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

    Баллы:
    88
    FLAG_SET
     
  14. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    Аааа, все, понял, спасибо!
     
  15. OneDisik

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

    Баллы:
    66
    Здраствуйте, придумал систему помощи игроку

    Например: /sos <text> - Команда создает тикет (Одновременно можно только 1 тикет)
    /sosd - удаляет тикет

    Для хелперов или Модераторов:
    /ticket accept <nick> - Чтобы принять заявку

    Код:
        - 'MSG=&8Игрок &3&o%var:%varp:target_player%.target_player% &8отправил заявку на помощь с текстом: &f&o%var:%varp:target_player%.text% player:{group:gl}'
    

    Но дело в том, что при создании данной системы возник вопрос.

    Мне нужно создать команду /ticket list
    Которая будет показывать список всех заявок, которые отправляли игроки, но вообще не представляю как это сделать.

    (Если что написал не понятно, я перепишу) (Неужели через MySQL?)
    (Не хотелось бы давать весь код)
    Код:
      Do_create:
        override: true
        regex: true
        command: do .+ +.*
        actions:
        - VAR_PLAYER_SET=id:player value:%arg1%
        - VAR_PLAYER_SET=id:text value:{%args1%}
     
    Последнее редактирование: 29 июл 2016
  16. SoSeDiK

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

    Баллы:
    76
    Имя в Minecraft:
    SoSeDiK
    Скоро ли будет обновление для 1.10.2?
    >[2K
    [00:18:55 WARN]: Exception in thread "Craft Scheduler Thread - 491"
    >[2K
    [00:18:55 WARN]: org.apache.commons.lang.UnhandledException: Plugin ReActions v0.9.9/4 generated an exception while executing task 704
    at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:56)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    Caused by: java.lang.NoSuchMethodError: org.bukkit.Server.getOnlinePlayers()[Lorg/bukkit/entity/Player;
    at me.fromgate.reactions.MetricsLite.postPlugin(MetricsLite.java:285)
    at me.fromgate.reactions.MetricsLite.access$3(MetricsLite.java:278)
    at me.fromgate.reactions.MetricsLite$1.run(MetricsLite.java:173)
    at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftTask.run(CraftTask.java:71)
    at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
    ... 3 more

    Есть активатор (табличка) и установлен флаг (ITEM_INVENTORY). Мне нужно задать предмет с названием. Дело в том, что название типа "&c&lКлюч" плагин принимает, а вот "&c&lКлюч Судьбы" уже нет. Вопрос: как написать название предмета, в котором есть пробел? Такой же вопрос к описанию (lore) предмета (пробел/новая строка).
    fsp2:
    sign-mask:
    - §lПройти дальше
    - §8(§c§l!§8)
    - §8§l§nнужен ключ
    - §8§l(§2§lКЛАЦ§8§l)
    click-type: ANY
    flags:
    - ITEM_INVENTORY=item:NETHER_STAR name:{&c&lКлюч | Обучение} lore:{&7Нужен для прохождения локаций\n&7в обучении}
    actions:
    - MESSAGE=&6Перемещение...
    - CMD_CONSOLE=clear %PLAYER_NAME%
    - TP=world,72,30,367
    reactions:
    - MESSAGE=&cСначала Вы должны добыть ключ, убив зомби в локации с жизнями.
     
    Последнее редактирование: 30 июл 2016
  17. Korvinius

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

    Баллы:
    88
    flags:
    - ITEM_INVENTORY=item:NETHER_STAR name:{&c&lКлюч.*} lore:{&7Нужен для прохождения локаций.*&7в обучении}
     
  18. SoSeDiK

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

    Баллы:
    76
    Имя в Minecraft:
    SoSeDiK
    Спасибо, выручил! :good:
     
  19. Lyosha12

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

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Вводить список можно рекуррентно в переменную. Но тогда с удалением будет проблема - это вам не строковую константу в string искать, тут нельзя сравнивать содержание string[5], например, с запросом на удаление.

    Костыльно-велосипедное решение:
    1) Заводите новую переменную с инкрементом её индекса в её имени при новой заявке.
    2) При поступлении заявки на удаление запускайте цикл из EXEC на перебор этих переменных по их индексу. Итератором цикла будет служить ещё одна отдельная переменная.

    P.S. Обрабатывать пустые места после удаления переменной не вижу смысла - лишние костыли многим повредили.
    P.P.S. Учитывайте, что при таком переборе и краше сервера одновременно, список переменных может самопроизвольно дропнуться, что повлечёт его обнуление при обращении к нему вновь.
    P.P.P.S. ReActions всё ещё не умеет работать с файлами и делать на этой основе бекап чего-либо.
    @fromgate, я повторюсь, но как насчёт пересмотреть фундамент плагина? Изначально он создавался для телепортов, чтобы сделать оплату более удобной. Теперь плагин вырос и позволяет более удобно создавать ивенты и мелкие заплатки. Предлагаю вырости до версии 1.0.0: добавить основные конструкции из программирования (циклы, итераторы, массивы, функции), но упростить с ними работу до такого элементарного уровня, чтобы задание выше решалось в одну строку:
    Код:
    for(i = 0, maxTicket, +): if(ticket[i] = delete): delete[i] ticket
    Как-никак, но я, полюбивший Ваше творение, теперь изучаю С++ с большим энтузиазмом, чем если бы я не знал о ReActions. И полагаю, что большая часть тех, кто заинтересован скриптингом на ReActions, пойдёт дальше и станет полноценными разработчиками. Конструкция FLAG-THAN-ELSE интересна и позволила мне легко стартануть на первых лекциях. Однако, чем больше я знаю С++, тем больше я хочу, чтобы новички не испытывали тех излишних (с точки зрения не-программистов) манипуляций, которые встречаются мне на каждом шагу, при работе с Вашим плагином :)
     
    Последнее редактирование: 2 авг 2016
  20. BrainRTP

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

    Баллы:
    76
    Имя в Minecraft:
    BrainRTP
    Что-то не работает, или я не понял как делать...
    Пишет, что такой команды нет.
     

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