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

Отловил плейсхолдером %message%. Получился вот такой вот монстр http://prnt.sc/f7xfiv

Тоесть я должен делать маску, опираясь именно на "это" ? А не на предыдущий меседж http://prnt.sc/f7x603
В пакете отправляется сообщение "commands.playsound.success". То есть там нет текст Successfully played sound 'sdhfsj" for 'sakfskf'.
Там отправляется JSON конструкция одним из элементов которой является ключ сообщения commands.playsound.success (возможно другой) и параметры.
Отлавливайте именно этот ключ и всё. Пробелы там не причем. Их там просто нет.
Понял
 
Последнее редактирование:
build #99
Активатор срабатывает, когда игрок разрушает блок.
 
build #100

Небольшие изменения в BLOCK_BREAK: вместо blocktype теперь - block, который описывается в формате предмета.
Т.е. можно указать block:{type:WOOL color:BLUE} или указать какое-то значение DATA
 
build #101
Активатор SNEAK выполняется, когда игрок приседает или встаёт, с помощью клавиши Shift​
 
FlySpeed и WalkSpeed сохраняются в файле world\playerdata\(UUID).dat
 
а можно ли действию SHOOT сделать отдачу?
 
а можно ли действию SHOOT сделать отдачу?
Это просто. Воспользуйтесь действием VELOCITY
Это просто. Воспользуйтесь действием VELOCITY
К сожалению таким образом не выходит. Пробовал так:
Код:
    - VELOCITY=vector:-1,-1,-1 kick:true
Но не работает. Отрицательные значения не работают когда kick:true
Нужно пошаманить с этим действием :)
Подшаманил. Скачайте последний build. Теперь можно делать отдачу. В активатор SHOOT установите действие:
Код:
- VELOCITY=vector:-1,-1,-1 kick:true

---------------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------

Расширяем возможности ReActions:
build #104
Это условный оператор, который может значительно облегчить написание активаторов. Он поддерживает всевозможные условные атрибуты присущи языку javascript. Поддерживается проверка regex.​
 
Последнее редактирование:
Расширяем возможности ReActions:
build #104
Это условный оператор, который может значительно облегчить написание активаторов. Он поддерживает всевозможные условные атрибуты присущи языку javascript. Поддерживается проверка regex.​

Я сегодня такой встаю с утра и думаю... Надо бы сделать парочку активаторов с проверкой цепочки флагов по пермишенам... Но на каждом таком узлу должен запускатся дополнительный EXEC активатор с проверкой цепочки на уровень выше. Неудобно! Вот здорово если б было просто что то типа:
IF_PERM=qwerty123 action:action reaction:reaction
IF_PERM=qwerty124 action:action2 reaction:reaction2

И тут на тебе!
Но правда сложный он какой-то...
Но блин... А нельзя что бы это <then> умело так же выполнять действие, без нужны создавать дополнительный EXEC активатор ??

then:{action:COMMAND_CONSOLE=cmd}
И ещё, не очень понятно что значит каждый из этих символом в параметре условного оператора...
Вот это например "!=" что такое ?
 
Это просто. Воспользуйтесь действием VELOCITY

К сожалению таким образом не выходит. Пробовал так:
Код:
    - VELOCITY=vector:-1,-1,-1 kick:true
Но не работает. Отрицательные значения не работают когда kick:true
Нужно пошаманить с этим действием :)
Подшаманил. Скачайте последний build. Теперь можно делать отдачу. В активатор SHOOT установите действие:
Код:
- VELOCITY=vector:-1,-1,-1 kick:true

---------------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------

Расширяем возможности ReActions:
build #104
Это условный оператор, который может значительно облегчить написание активаторов. Он поддерживает всевозможные условные атрибуты присущи языку javascript. Поддерживается проверка regex.​
я про отдачу для жертвы, откидывание
 
Вот это например "!=" что такое ?
Это часть логического выражения, которая называется логическим оператором
"!="
- означает логическое НЕ, т.е, если в условии одно значение не равно другому, то результат будет истиним, т.е. TRUE
если 5 != 3 то TRUE
Больше о логических операторах можно посмотреть в справочнике, например javascript
 
Это часть логического выражения, которая называется логическим оператором
"!="
- означает логическое НЕ, т.е, если в условии одно значение не равно другому, то результат будет истиним, т.е. TRUE
если 5 != 3 то TRUE
Больше о логических операторах можно посмотреть в справочнике, например javascript
Логично
С такими темпами реАкшнс скоро в язык програмирования выльется
 
С такими темпами реАкшнс скоро в язык програмирования выльется
ReActions и является своеобразным языком программирования. У него есть все основные атрибуты языка.
Это логические выражения, циклы, операторы, ... . А также алгоритмы, которые вы используете, чтобы достич поставленной цели. Так что ReActions может носить гордое звание языка программирования, правда, узконаправленного, но всё же...
 
Может ли реАкшнс поймать плейсхолдер от другого плагина и использовать его? Или это впринципе нереально? Только если там хук к api этого плагина будет или что-то вроде...
 
build #106
Теперь оно может запускать другие действия.
Взгляните на многоуровневое действие, которое запускает другие действия в зависимости от поставленной задачи:
​
Код:
SNEAK:
  s5:
    sneak: ANY
    actions:
    - 'IF_ELSE=
        if:{%sneak%==true}
        then:run:actions:{
            action1:{message=&6&lУровень1 TRUE}
            action2:{cmd=say &6&lУровень1 TRUE}
            action3:{IF_ELSE=
                if:{3==2}
                then:{message=&c&lУровень2 TRUE}
                else:run:actions:{
                    action1:{message=&c&lУровень2 FALSE}
                    action2:{IF_ELSE=
                        if:{2==2}
                        then:run:actions:{
                            action1:{broadcast=&e&lУровень3 TRUE}
                        }
                        else:{}
                    }
                }
            }
        } else:run:actions:{
            action1:{message=&6&lУровень1 FALSE}
            action2:{message=&6&lУровень1 FALSE 2}
        }'

Такая конструкция может сломать мозг, не правда ли?

Теперь, предположительно, можно основные задачи выполнять в одном активаторе.
Необходимо подобные исполнения тщательно протестировать, чтобы узнать, что вообще теперь можно делать в ReActions.
 
build #106
Теперь оно может запускать другие действия.
Взгляните на многоуровневое действие, которое запускает другие действия в зависимости от поставленной задачи:
​
Код:
SNEAK:
  s5:
    sneak: ANY
    actions:
    - 'IF_ELSE=
        if:{%sneak%==true}
        then:run:actions:{
            action1:{message=&6&lУровень1 TRUE}
            action2:{cmd=say &6&lУровень1 TRUE}
            action3:{IF_ELSE=
                if:{3==2}
                then:{message=&c&lУровень2 TRUE}
                else:run:actions:{
                    action1:{message=&c&lУровень2 FALSE}
                    action2:{IF_ELSE=
                        if:{2==2}
                        then:run:actions:{
                            action1:{broadcast=&e&lУровень3 TRUE}
                        }
                        else:{}
                    }
                }
            }
        } else:run:actions:{
            action1:{message=&6&lУровень1 FALSE}
            action2:{message=&6&lУровень1 FALSE 2}
        }'

Такая конструкция может сломать мозг, не правда ли?

Теперь, предположительно, можно основные задачи выполнять в одном активаторе.
Необходимо подобные исполнения тщательно протестировать, чтобы узнать, что вообще теперь можно делать в ReActions.
Может быть проще сразу Джаву выучить ?)
Хотя если настроить подсветку в нотпаде, то всё становится понятней и проще

jfghjg.png
 
Почему действие в активаторе bc1 выполняется 2 раза именно если кликнуть ПКМ

Использую build #106

Код:
BLOCK_CLICK:
  ENDERCHEST:
    block-type: ENDER_CHEST
    click-type: RIGHT
    location: world_rpg,27.0,48.0,235.0,0.0,0.0
    actions:
    - CANCEL_EVENT=true
    - MESSAGE=Test
  bc1:
    block-type: SKULL
    click-type: ANY
    location: world_rpg,32.0,47.0,233.0,0.0,0.0
    actions:
    - MESSAGE=Test1

Как можно исправить?
 
Почему действие в активаторе bc1 выполняется 2 раза именно если кликнуть ПКМ
Хм. Действительно, есть такая проблема. Когда добавлял этот активатор, такого поведения не наблюдал.
Похоже, выполняется два события при клике. Попробую исправить.

Но тукую проблему вы можете решить простым способом, добавив флаг DELAY_PLAYER с задержкой, например, в 500ms

Код:
  flags:
    - DELAY_PLAYER=id:blockclick player:%player% set-time:500ms

Хотя если настроить подсветку в нотпаде, то всё становится понятней и проще
У меня подсветка синтаксиса установлена по умолчанию, поэтому решил так расписать это действие. Я переживал, что форматирование действия в таком виде не будет разрешено YML-форматом, но как видно всё замечательно работает. Теперь можно программировать в ReActions, и код будет читабельным.
 
Назад
Верх