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

Всем доброго дня, начал осваивать ваш плагин, если не сложно, покажите на примере как реализовать, выдачу итема разово одному игроку, пример выдать меч по нажатию кнопки, нужно именно что бы выдавало один раз!
 
Всем доброго дня, начал осваивать ваш плагин, если не сложно, покажите на примере как реализовать, выдачу итема разово одному игроку, пример выдать меч по нажатию кнопки, нужно именно что бы выдавало один раз!
Код:
BUTTON:
  BTN:
    world: World
    x: 146
    y: 64
    z: 54
    flags:
    - VAR_PLAYER_EXIST=id:SwordBttn
    actions:
    - MESSAGE=&7Ты же знаешь, что меч можно получить всего &b1&7 раз.
    reactions:
    - VAR_PLAYER_SET=id:SwordBttn value:1
    - MESSAGE=&7Ты получил меч.
    - ITEM_GIVE=type:276 name:{&7Меч кладенец} lore:{&7Этот меч раньше использовали Богатыри.\n А теперь ты :3\n&eУчти, если ты его потеряешь - больше не получишь.}
Координаты вставь свои.
 
Последнее редактирование:
Здравствуйте.
Заинтересовавшись вопросом блокировки действий игрока я попытался заблокировать игроку писать в чат, но безуспешно.
Что в type указывать - не знаю.
Код:
MESSAGE:
  BLOCK_MESSAGE:
    mask: ''
    type: EQUAL
    source: CHAT_INPUT
    flags: []
    actions:
    - CANCEL_EVENT=true
    reactions: []
Я уже знаю альтернативу решения этого, но не хочется использовать его.
(Выдать пермишн "- - chatex.allowchat" и отменять получение сообщения от плагина о том, что у игрока нет прав)




UPD: Возможно, нашел какую-то неисправность:
Когда пишешь любую команду через консоль, то плагин выдает сообщение и отменяет событие.

[ReActions] Activator command registered: Команда

Код:
COMMAND:
  COMMAND_BLOCKED:
    override: true
    regex: false
    command: ''
    flags:
    - VAR_PLAYER_COMPARE=id:BLOCKED value:1
    actions:
    - CANCEL_EVENT=true
 
Последнее редактирование:
Код:
BUTTON:
  BTN:
    world: World
    x: 146
    y: 64
    z: 54
    flags:
    - VAR_PLAYER_EXIST=id:SwordBttn
    actions:
    - MESSAGE=&7Ты же знаешь, что меч можно получить всего &b1&7 раз.
    reactions:
    - VAR_PLAYER_SET=id:SwordBttn value:1
    - MESSAGE=&7Ты получил меч.
    - ITEM_GIVE=type:276 name:{&7Меч кладенец} lore:{&7Этот меч раньше использовали Богатыри.\n А теперь ты :3\n&eУчти, если ты его потеряешь - больше не получишь.}
Координаты вставь свои.

Огромное спасибо! То есть использование флага и действия персональной переменной и координат кнопки! выходит
 
Здравствуйте.
Заинтересовавшись вопросом блокировки действий игрока я попытался заблокировать игроку писать в чат, но безуспешно.
Что в type указывать - не знаю.
MESSAGE:
BLOCK_MESSAGE:
mask: ''
type: EQUAL
source: CHAT_INPUT
flags: []
actions:
- CANCEL_EVENT=true
reactions: []
Я уже знаю альтернативу решения этого, но не хочется использовать его.
(Выдать пермишн "- - chatex.allowchat" и отменять получение сообщения от плагина о том, что у игрока нет прав)


Код:
MESSAGE:
  BLOCK_MESSAGE:
    mask: '.*'
    type: REGEX
    source: CHAT_INPUT
    flags: []
    actions:
    - CANCEL_EVENT=true
    reactions: []
 
В MySQL не силен ни как.
Практически ничего о нем не знаю, не подскажите, как действием SQL_SELECT проверить, зарегистрирован ли игрок (например, %PLAYER_NAME%) или нет?
Таблица в MySQL - authme

Ах, да, странно, но почему-то плейсхолдер %CALC:% не работает в активаторе:
Код:
  exec_player_raid:
    flags:
    - VAR_COMPARE=id:Raid value:0 player:%player%
    actions:
    - 'IF_ELSE=if:{%var:%owner%.raid%==0}
                then:run:actions:{
                    action1:{MESSAGE=&7Рейд на игрока &c%player%&7 начат. До конца: &b10 &7минут.}
                    action2:{VAR_SET=id:Raid value:1 player:%player%}
                }
                else:run:actions:{
                    action1:{MESSAGE=&7Вы уже участвуете в рейде. До конца: &b%CALC:10-%varp:raidtime%%&7 минут.}
                }'
    reactions:
    - 'MESSAGE=&7Игрока &a%player% &7уже рейдят. До конца: &b%CALC:10-%var:%player%.raidtime%%'

Вообщем, переменная raidtime игрока = 0. raid игрока = 0
Сообщение получаю такое:
&7Игрока &a%player% &7уже рейдят. До конца: &b%CALC:10-0%
 
Последнее редактирование:
Ах, да, странно, но почему-то плейсхолдер %CALC:% не работает в активаторе:
Попробуйте выполнить подсчёт за пределами действия IF_ELSE, а затем передайте в него результат. Это действие ещё сырое, там не всё работает, как надо. Также, внутри IF_ELSE нельзя изменять переменные. Нужно будет со всем этим разобраться когда-нибудь.
 
Попробуйте выполнить подсчёт за пределами действия IF_ELSE, а затем передайте в него результат. Это действие ещё сырое, там не всё работает, как надо. Также, внутри IF_ELSE нельзя изменять переменные. Нужно будет со всем этим разобраться когда-нибудь.
Спасибо, разобрался.

Вот тут тоже что-то не так.
Код:
VARIABLE:
  VAR_1:
    variable-id: 1
    personal: false
    flags: []
    actions:
    - MESSAGE=111111111111111
    reactions: []
COMMAND:
  1:
    override: true
    regex: false
    command: 123
    flags: []
    actions:
    - VAR_INC=id:1 value:1
Активатор VAR_1 не хочет работать. Как с персональными переменными, так и с глобальными :/
 
Флаг для проверки сердец игрока?
Можно добавить поддержку биомов из TerrainControl для флага BIOME? Было бы отлично.
А ещё флаг для проверки наличия указанного игрока\игроков онлайн.
Плейсхолдер %argscount% для активатора COMMAND не может принимать значения 0 и 1 (если введена только сама команда или только первый аргумент).
 
Вот такой вопрос:
Возможно-ли при помощи ReAction создать арморстенд, который виден только определённому Игроку:
 
Вот такой вопрос:
Возможно-ли при помощи ReAction создать арморстенд, который виден только определённому Игроку:
Ну если тебе нужно, чтобы он был виден одному из нескольких, находящихся в одном месте, игроков, то нет.
 
Здравствуйте, что-то не так.
Временные переменные не сравниваются.
IF_ELSE=if:{%owner%==%player%}
Действий 0.
 
Здравствуйте, что-то не так.
Временные переменные не сравниваются.
IF_ELSE=if:{%owner%==%player%}
Действий 0.
Откуда вы взяли %owner% ? Для вычисления владельца региона используется: %worldguard_region_owner%. Если используете глобальную или персональную переменную: %var:0wner% или %varp:0wner%
 
Здравствуйте, что-то не так.
Временные переменные не сравниваются.
IF_ELSE=if:{%owner%==%player%}
Действий 0.
Кто вам мешает проверить ошибки, я для этого добавил плейсхолдер %ifelsdebug%. Скорей всего проблема в том, что сравниваются строки и js-"парсер" не может понять, что это за переменная %owner%. Вам нужно обрамить %owner% и %player% кавычками, тогда ошибок не должно появится.
 
Кто вам мешает проверить ошибки, я для этого добавил плейсхолдер %ifelsdebug%. Скорей всего проблема в том, что сравниваются строки и js-"парсер" не может понять, что это за переменная %owner%. Вам нужно обрамить %owner% и %player% кавычками, тогда ошибок не должно появится.
Я как всегда тупой)
Спасибо)


Откуда вы взяли %owner% ? Для вычисления владельца региона используется: %worldguard_region_owner%. Если используете глобальную или персональную переменную: %var:0wner% или %varp:0wner%
VAR_TEMP_SET знакомо?)
 
Последнее редактирование:
Хм, действие выглядит так:
Код:
    - 'IF_ELSE=if:{'%owner%'=='%player%'}
                then:run:actions:{
                action1:{MESSAGE=player:%owner% &7Рейдить самого себя не получится, увы.}
                }
                else:run:actions:{
                action1:{IF_ELSE=if:{%var:%owner%.raid%==0}
                                    then:run:actions:{
                                        action1:{MESSAGE=player:%owner% &7Рейд на игрока &c%player%&7 начат. До конца: &b10 &7минут}
                                        action2:{VAR_SET=id:Raid value:1 player:%player%}
                                        action3:{VAR_SET=id:Raid value:1 player:%owner%}
                                        action4:{EXECUTE=activator:Exec_raid player:%player% delay:1m}
                                        }
                                    else:run:actions:{
                                        action1:{MESSAGE=player:%owner% &7Вы уже участвуете в рейде. До конца: &b%raidtime%&7 минут.}
                                        }}
                                    }'

Плагин ругается:
Код:
[23:57:20 WARN]: Caused by: while scanning for the next token
found character '%' that cannot start any token. (Do not use % for indentation)
 in 'string', line 32, column 21:
        - 'IF_ELSE=if:{'%owner%'=='%player%'}
                        ^
Использовать %ifelsedebug% здесь не получается, т.к. активаторы не загружаются.
 
Плагин ругается:
[23:57:20 WARN]: Caused by: while scanning for the next token
found character '%' that cannot start any token. (Do not use % for indentation)
in 'string', line 32, column 21:
- 'IF_ELSE=if:{'%owner%'=='%player%'}
^
Использовать %ifelsedebug% здесь не получается, т.к. активаторы не загружаются.
У вас синтаксическая ошибка yml файла из-за вложенных кавычек. Вы закомментировали следующим образом:
'IF_ELSE=if:{'
%owner%
'=='
%player%
'}...'
Как видно, %owner% не закомментирован.
 
У вас синтаксическая ошибка yml файла из-за вложенных кавычек. Вы закомментировали следующим образом:
'IF_ELSE=if:{'
%owner%
'=='
%player%
'}...'
Как видно, %owner% не закомментирован.
Честно говоря, сам бы я не понял, как закомментировать это правильно.
Воспользовался парсером.
Вышло так, работает:
Код:
    - 'IF_ELSE=if:{''%owner%''==''%player%''}
                then:run:actions:{
                action1:{MESSAGE=player:%owner% &7Рейдить самого себя не получится, увы.}
                }
                else:run:actions:{
                action1:{IF_ELSE=if:{%var:%owner%.raid%==0}
                                    then:run:actions:{
                                        action1:{MESSAGE=player:%owner% &7Рейд на игрока &c%player%&7 начат. До конца: &b10 &7минут}
                                        action2:{VAR_SET=id:Raid value:1 player:%player%}
                                        action3:{VAR_SET=id:Raid value:1 player:%owner%}
                                        action4:{EXECUTE=activator:Exec_raid player:%player% delay:1m}
                                        }
                                    else:run:actions:{
                                        action1:{MESSAGE=player:%owner% &7Вы уже участвуете в рейде. До конца: &b%raidtime%&7 минут.}
                                        }}
                                    }'
 
#175
  • Теперь активатор DOOR поддерживает все типы дверей (включая железные)

Если у кого-то есть возможность проверить - буду благодарен :)
 
Назад
Верх