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

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

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

  1. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Если вы имеете ввиду записи, сохранённые в файле delayed-actions.yml, например:
    Код:
    0c8c6c1c-c24a-483d-af7d-b6dd6c4be1b6:
      player: ''
      execution-time: 1489784598495
      actions:
        action: true
        list:
        - execute=activator:my_activator
    
    Там есть отметка времени (execution-time) в мили-секундах. Её очень просто перевести в дату. Убираете 3 последние цифры, получаем отметку времени в секундах 1489784598. Затем, идём на любой онлайн-конвертер unixtime, например здесь:
    https://www.cy-pr.com/tools/time/
    и узнаём привычное для нас дату-время. В данном случае, это Thu, 13 Apr 2017 05:21:48 GMT
     
  2. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Ясно, спасибо.

    В PEx ведь аналогичная система счета времени??
     
  3. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Да, верно. Но там, что хорошо, время указывается в секундах.
     
  4. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Теперь ясно что значит проблема 2038-го года.
     
  5. SoSeDiK

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

    Баллы:
    76
    Имя в Minecraft:
    SoSeDiK
    Как и можно ли вообще использовать %var:%/%varp:% плейсхолдеры в других плагинах?
     
  6. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Плейсхолдеры видны только в плагине, который создал их, в данном случае в ReActions. Другими словами, сторонние плагины не увидят плейсхолдеров.
    Можно сделать связь ReActions со сторонними плагинами другим образом. Если внешний плагин использует свою базу данных MySQL, то ReActions может подключиться к ней и изменять нужные вам данные.
     
  7. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    ППц, 'chanse' функция неработает в действии ITEM_GIVE <наборПредметов>.
    Шанс распределяет всегда поровну между всеми указанными предметами.
    Можете исправить ??
     
  8. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Может, вместо chanSe указать chanCe? Тогда будет работать. У меня работает.
     
  9. Dankis

    Dankis Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Dankis
    @fromgate
    Как можно отключить вывод сообщений о том что был забран предмет?
     
  10. Korvinius

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

    Баллы:
    88
    конфиг, строка: show-messages-for-actions:
     
  11. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Да, действительно. Не заметил опечатки. Спс.

    Скажите ещё пожалуйсто, нельзя ли как-то отловить предмет, на который выпал шанс и вывести его плейсхолдером в сообщении (в идеале ещё и указать собственное значение этого плейсхолдера
    Например если указан шанс: 25, то %25=Название для шанса 25% ) ??
    Есть временный плейсхолдер %item_str%, который выводит название предмета (name:<>, если указано в наборе) вместо дефолтного ID. Но увы без поддержки цветных/текстовых кодов и этот вариант мне ещё не нравится тем, что name-теґ изменяет NBT данные предмета из за чего они например не будут стакатся с другими, идентичными им по ID предметам и проч...

    Так что было бы здорово если б автор добавил вариант с плейсхолдером для шанса, который я описал выше
     
    Последнее редактирование: 19 апр 2017
  12. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    А кто мешает Вам подменить сообщение, с помощью активатора Message?

    Например, вы получаете сообщение, что получили 10 золотых мечей:
    You receive item(s): GoldSword*10
    Это сообщение подменяем следующим образом:

    Код:
    MESSAGE:
      gimsg:
        mask: 'You receive item(s): GoldSword*10'
        source: ALL
        type: EQUAL
        actions:
        - CANCEL_EVENT=true
        - MESSAGE=&eВы получили 10 Золотых Мечей
     
    Последнее редактирование: 19 апр 2017
  13. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Увы, не отлавливает оно таким образом меседж с EXEC активаторов. Пробывал разными методами, даже через REGEX '.*'
    Когда в чат написать - срабатывает. А от действия MESSAGE из EXEC активатора - нет.
     
  14. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Я как раз тестировал отлов сообщения из EXEC активатора. У меня работает.
    Покажите свой активатор
     
  15. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    момент
    Ну вот к примеру https://pastebin.com/kFVivYa5

    Ввожу в чат 123 - ловит, отменяет и заменяет.
    Но если активировать EXEC активатор командой из консоли exec exec1 player:<player>
    то msg1 не срабатывает
    Интересно, а можна ли при перехвате сообщения (например если есть знак ! вначале) не отменять его, не отправлять новое, а просто добавить что-то к нему? Например цветной код вначале. Что бы все глобальные сообщения были другого цвета.
    P.S. плейсхолдера, который бы отвечал за полный текст, в активаторе MESSAGE я не нашел.
     
  16. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Для команды
    Код:
    'CMD_CONSOLE=tellRaw %player_name% {"text":"123"}'
    текст необходимо отлавливать другим образом. Попробуйте изменить тип вместо EQUAL установить type: CONTAINS
    При использовании команды tellRaw сообщение выводится с невидимыми символами, поэтому тип сравнения EQUAL не подходит .

    Плейсхолдер есть: %message%
     
    Последнее редактирование: 19 апр 2017
  17. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Да один буй, я же говорю: даже тип: REGEX и mask: '.*' непомогает

    Попробуйте и убедитесь сами
     
  18. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Я попробовал и у меня работает:
    Код:
    EXEC:
      exec1:
        actions:
        - 'CMD_CONSOLE=tellRaw %player% {"text":"123"}'
        - 'MESSAGE=123'
    MESSAGE:
      msg1:
        source: ALL
        type: CONTAINS
        mask: '123'
        actions:
        - CANCEL_EVENT=true
        - 'MESSAGE=&eТест 1'
    
    /-------------------------------/

    /exec exec1

    Результат:
    Тест 1
    Тест 1
    /-------------------------------/

    /exec exec1 player:<мой ник>

    Результат:
    Тест 1
    Тест 1
    /-------------------------------/

    /exec exec1 player:<ник игрока, которого нет на сервере>

    Нет результата

    У меня отсутствует результат, если игрока нет на сервере, в остальных вариантах всё работает.
     
  19. Kixot14

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

    Баллы:
    88
    Skype:
    Kixot14
    Имя в Minecraft:
    F1xer
    Черт его знает что не так... Может быть из за разных версий ? У меня билд #33 из CircleCI
     
  20. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    У меня тоже билд #33, я проверал как на версии 1.10.2, так и на 1.11.2. Везде работает. Где-то у Вас в коде активаторов проблема.
     

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