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

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

Сделал команду /me:
Код:
  me1:
    override: true
    regex: false
    command: cmd:me
    actions:
    - 'message=&7 Использование: /me <текст>'
  me2:
    override: true
    regex: false
    command: me *.
    actions:
    - 'message=player:{loc:%PLAYER_LOC% radius:8} &7 * &f%player% &f%arg1%'

Что мне нужно еще дописать, чтобы команда была полностью поверх стандартной команды bukkit /me?
Проблема в том, что при вводе /me в чат распознаются сразу две команды: /me из баккита и /me из reactions, в итоге выводятся две одинаковые строки в чат.

Тут всё просто. Необходимо отменить событие бакита действием CANCEL_EVENT
- CANCEL_EVENT=true
 
Еще проблема:
Код:
me1:
    override: true
    regex: false
    command: cmd:me
    actions:
    - CANCEL_EVENT=true
    - 'message=&7 Использование: /me <текст>'
  me2:
    override: false
    regex: false
    command: me .*
    actions:
    - CANCEL_EVENT=true
    - 'message=player:{loc:%PLAYER_LOC% radius:8} &7 * &f%player% &f%args%'
Пишу /me с аргументами - пишет, что такой команды нет, если убрать ".*", то me2 работает, но если ввести без аргументов, то в чат вылезет * Player %args%".
Раньше ".*" спокойно работал, сейчас пересобираю сборку - все какие-то ошибки в reactions. Но, возможно, тут я творю ошибки, подскажите, что не так.
.. А если написать /me .* - в точности так (точка, зведочка), то me2 сработает: * Player .*, т.е. работает только аргумент '.*'
 
Еще проблема:
Код:
me1:
    override: true
    regex: false
    command: cmd:me
    actions:
    - CANCEL_EVENT=true
    - 'message=&7 Использование: /me <текст>'
  me2:
    override: false
    regex: false
    command: me .*
    actions:
    - CANCEL_EVENT=true
    - 'message=player:{loc:%PLAYER_LOC% radius:8} &7 * &f%player% &f%args%'
Пишу /me с аргументами - пишет, что такой команды нет, если убрать ".*", то me2 работает, но если ввести без аргументов, то в чат вылезет * Player %args%".
Раньше ".*" спокойно работал, сейчас пересобираю сборку - все какие-то ошибки в reactions. Но, возможно, тут я творю ошибки, подскажите, что не так.
.. А если написать /me .* - в точности так (точка, зведочка), то me2 сработает: * Player .*, т.е. работает только аргумент '.*'


Похоже, здесь в me2 необходимо указать regex: true. Должно заработать. По крайней мере, это у меня работает:
Код:
  me2:
    override: true
    regex: true
    command: me .*
    actions:
    - CANCEL_EVENT=true
    - 'message=player:{loc:%PLAYER_LOC% radius:8} &7 * &f%player% &f%args%'
 
Похоже, здесь в me2 необходимо указать regex: true. Должно заработать. По крайней мере, это у меня работает:
Код:
  me2:
    override: true
    regex: true
    command: me .*
    actions:
    - CANCEL_EVENT=true
    - 'message=player:{loc:%PLAYER_LOC% radius:8} &7 * &f%player% &f%args%'
Спасибо большое
 
Всем доброго времени суток!
У меня есть маленькая идея:

Чтобы игрокам было проще ориентироваться во время нахождения в лобби мини-игр, в зависимости от статуса игры(Набор игроков, Игра) изменялся цвет стекла/шерсти/глины, на котором стоит табличка.

При помощи ReActions'a это конечно можно реализовать, но активатор SIGN срабатывает только при клике по табличке, а срабатывать должен мгновенно, при изменении статуса таблички
Есть какие-нибудь идеи?
 
А что меняет текст на табличках? Если есть к чему подцепиться - допустим выводится текст в чат, то можно попробовать это.
Отловить изменение текста на табличке, если он меняется другим плагином - теоретически возможно, но на практике лучше этого не делать ;)
 
А что меняет текст на табличках? Если есть к чему подцепиться - допустим выводится текст в чат, то можно попробовать это.
Отловить изменение текста на табличке, если он меняется другим плагином - теоретически возможно, но на практике лучше этого не делать ;)
Отлавливать вывод плагинов в чат? Хорошая идея, попробую реализовать
Спасибо за идею:good:
 
Есть ли возможность изменить сообщение игрока? Пытался через действие var_temp_set, но увы и ах...

Проверял таким вот боком.
Код:
MESSAGE:
  Piany:
    mask: '#п'
    type: START
    source: CHAT_INPUT
    flags: []
    actions:
    - message=%word1%
    - var_temp_set=id:WORD1 value:{&7&o*ик*&f}
    - message=%word1%
Второе действие message хоть и выдавало *ик*, но само сообщение оставалось без изменений
 
Есть ли возможность изменить сообщение игрока? Пытался через действие var_temp_set, но увы и ах...

Проверял таким вот боком.
Код:
MESSAGE:
  Piany:
    mask: '#п'
    type: START
    source: CHAT_INPUT
    flags: []
    actions:
    - message=%word1%
    - var_temp_set=id:WORD1 value:{&7&o*ик*&f}
    - message=%word1%
Второе действие message хоть и выдавало *ик*, но само сообщение оставалось без изменений

Основное сообщение в чате выводит не ReActions, а другой плагин, и изменить его не получиться. Поэтому необходимо отменять вывод основного сообщения с помощью CANCEL_EVENT и выводить своё.



/------------------------------------------------------------/

Предложение автору.

Появляется множество игроков, работающих в группе для облегчения прохождения сложных мини-игр, вселяясь друг в друга в режиме спектатора. Режим Спектатора отключать не хочу. Но хотелось бы без особого труда определить состояние вселяемого игрока.
В плагине не особо сложно это сделать, просто нужно юзать метод getSpectatorTarget(), а состояние игрока назвать SPECTATOR_TARGET
Чтобы добавить это состояние, необходимо в файле FlagState.java
добавить пару строк:
Код:
            case SPECTATOR_TARGET:
                if (p.getSpectatorTarget() != null) return true;
Надеюсь, я ничего не напутал.

Спасибо.

p.s. Только заметил, что в плагине есть состояние игрока OP, чего не нашёл в документации. Нужная штука.
 
Основное сообщение в чате выводит не ReActions, а другой плагин, и изменить его не получиться. Поэтому необходимо отменять вывод основного сообщения с помощью CANCEL_EVENT и выводить своё.

Хотел сделать целый чат на основе ReActions, но проблема в том, что в РеА нет плейсхолдера самого сообщения, а не только отдельных его частей. Была идея сделать кучу переменных, в каждой из которых содержится множество %wordN%, но слишком уж это муторно, тем более в новой версии количество слов может достигать 250+

Так или иначе - спасибо за разъяснение :)
 
Хотел сделать целый чат на основе ReActions, но проблема в том, что в РеА нет плейсхолдера самого сообщения, а не только отдельных его частей. Была идея сделать кучу переменных, в каждой из которых содержится множество %wordN%, но слишком уж это муторно, тем более в новой версии количество слов может достигать 250+

Так или иначе - спасибо за разъяснение :)

Хочу Вас порадовать! В РеА есть плейсхолдер всего сообщения :good:
%message%
Ради любопытства, заглянул в код плагина. Там можно найти интересные вещи, даже, о которых не говорится в документации.
Удачи!
 
Хочу Вас порадовать! В РеА есть плейсхолдер всего сообщения :good:
%message%
Ради любопытства, заглянул в код плагина. Там можно найти интересные вещи, даже, о которых не говорится в документации.
Удачи!

О хоспаде, вы мой спаситель!
Спасибо вам ещё раз, может наконец воплощу свою идею с JSON-чатом ^_^
 
Код:
  kassa:
    mob-type: player
    mob-name: '&b&lКассир'
    actions:
    - MESSAGE=&eПроходим, не задерживаем очередь!
    - MONEY_PAY=5
    reactions:
    - MESSAGE=awd
2 раза вылазиет сообщение и 2 раза снимается 5 баксов.
Как исправить?
 
Код:
  kassa:
    mob-type: player
    mob-name: '&b&lКассир'
    actions:
    - MESSAGE=&eПроходим, не задерживаем очередь!
    - MONEY_PAY=5
    reactions:
    - MESSAGE=awd
2 раза вылазиет сообщение и 2 раза снимается 5 баксов.
Как исправить?

Активатор какой? Может, плагин засчитывает это действие 2 раза?
 
Код:
  kassa:
    mob-type: player
    mob-name: '&b&lКассир'
    actions:
    - MESSAGE=&eПроходим, не задерживаем очередь!
    - MONEY_PAY=5
    reactions:
    - MESSAGE=awd
2 раза вылазиет сообщение и 2 раза снимается 5 баксов.
Как исправить?
Похоже, что это активатор MOB_CLICK.
Чтобы не допустить повторных кликов, непонятно по каким причинам, воспользуйтесь флагом DELAY_PLAYER и такой вопрос больше не появится!
 
Я уже точно не помню, что там именно было - но этот глюк вылез после какой-то версии. Попробуйте версию с CircleCI - там должно быть всё ок.
 
Похоже, что это активатор MOB_CLICK.
Чтобы не допустить повторных кликов, непонятно по каким причинам, воспользуйтесь флагом DELAY_PLAYER и такой вопрос больше не появится!
Хорошо,спасибо!
Похоже, что это активатор MOB_CLICK.
Чтобы не допустить повторных кликов, непонятно по каким причинам, воспользуйтесь флагом DELAY_PLAYER и такой вопрос больше не появится!
Можете пример скинуть?
 
Я уже точно не помню, что там именно было - но этот глюк вылез после какой-то версии. Попробуйте версию с CircleCI - там должно быть всё ок.
мм... А где там кнопка "СКАЧАТЬ" ?)
 
мм... А где там кнопка "СКАЧАТЬ" ?)
Сначала нужно зарегистрироваться или зайти с аккаунта GitHub, потом перейти по ссылке на ReActions и открыть последний билд(сейчас build 26); после клацнуть по "Artifacts", и снизу будет подсвечено название файла. Кликаешь на него, и у тебя появляется свежий билд ReActions ^^
 

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

Назад
Верх