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

Не пойму какая должна быть структура... Вот например флаг:

Следующая структура не работает (я понимаю что она и не должна работать)
С переменными по-другому. Это вообще нигде не написано...
Однако, можно попробовать указать аргумент в фигурных скобках
 
Не пойму какая должна быть структура... Вот например флаг:

Следующая структура не работает (я понимаю что она и не должна работать)

FLAG_SET=VAR_PLAYER_COMPARE=id:test value:0 VAR_PLAYER_COMPARE=id:test value:1

Такое пока не работает. FLAG_SET писался когда ещё не было фигурных скобок, потом я просто про него забыл. Соответственно, сейчас тут просто при наличии "лишних" пробелов появляются путаницы.

Попробую на досуге привести всё к нормальному виду.
0.9.4/31
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
Изменения:
- Модификация FLAG_SET - поддерживаются фигурные скобки в параметрах. Т.е. FLAG_SET=FLAG1:{...параметры} FLAG2:{...параметры}
- В активаторе COMMAND добавлены дополнительные параметры: args1, args2, .. argsN. Они содержат строку с аргументом от "слова" с указанным номером до конца строки.
Т.е. в команде-активаторе /команда 123 456 789 abc def ghi jkl args -- это "123 456 789 abc def ghi jkl args", args1 - "456 789 abc def ghi jkl args", args2 - "789 abc def ghi jkl args" и т.д.
С переменными по-другому. Это вообще нигде не написано...

С переменными теперь всё также ;) Подстановка переменных (и прочих плейсхолдеров) происходит и во флагах и в действиях.
@fromgate, мне нужно указать строку %args% из команды, но она не должна включать первый аргумент. Однако вариант
Код:
    command: 'deldonate arg1:* .*'
не работает...

Это просто указание описание шаблона команды. В случае регулярного выражение должно быть что-то вроде
command:deldonate arg1:\w+ .*
или
command:deldonate arg1:\S+ .*
Но это повлияет именно на "отлов" команды.
А вот получить строку после определенного аргумента - только через args1, args2 и т.д.
P.S. плейсхолдеры arg1, arg2... тоже остались и также указывают на соответствующее слово.
 
Привет ведро! Помогите мне!
У меня реактионс отказывается работать! Я удалил файл активаторов, перезапустил сервер, но он не создал файл! А комманды работают. В чем проблема?
А еще как сделать так, что бы при нажатии плиты (plate) выдавались деньги с рандомным шансом? Это можно вооьще слелать?
 
@BrainRTP
Файл активаторов создается при создании первого активатора. Естественно, если файл удалён, новых активаторов нет и сохранять нечего.

Создать плиту, которая выдает деньги можно.
Для этого нужно, чтобы помимо ReActions стоял плагин экономики и Vault.

Делается это так (пластина будет выдавать случайно количество денег от 100 до 500):

В файле активаторов это будет выглядеть так:
Код:
PLATE:
  moneygive:
    world: world
    x: 1432
    y: 64
    z: -2146
    actions:
    - money_give=%RANDOM:100-500%
 
Вы не поняли! Вообщем расскажу как было:
У меня есть настроенный РА под себя, все работало, все гуд! Но сегодня мне нужно было изменить информацию, я внутри игры добавил к кнопки block_set, после через фтп зашел и удалил старые block_set на этой кнопке, после залил на сервер и пишу /RA reload ..... И тут мне пишет что типа все хорошо, все загружено: 0 активаторов и 10 локаций. И что вы думаете? Никаких активаторов нет! Кнопки не работают, когда в РГ вхожу, ничего не работает!!!!
Я зашел в фтп, обновил деррикторию где лежит activators.yml и ято вы думаете? Он там был! И он был в порядке, все в норме! И размер файла и тип файла, даже внутри все ок!
Тогда, я все вернул обратно (типа залил бэкап) но ничего до сих пор не работает! Реактиос будто заного начал работать, сам себя удалил! Что делать? Подключаюсь я точно к своему серверу!
 
Вы не поняли! Вообщем расскажу как было:
У меня есть настроенный РА под себя, все работало, все гуд! Но сегодня мне нужно было изменить информацию, я внутри игры добавил к кнопки block_set, после через фтп зашел и удалил старые block_set на этой кнопке, после залил на сервер и пишу /RA reload ..... И тут мне пишет что типа все хорошо, все загружено: 0 активаторов и 10 локаций. И что вы думаете? Никаких активаторов нет! Кнопки не работают, когда в РГ вхожу, ничего не работает!!!!
Я зашел в фтп, обновил деррикторию где лежит activators.yml и ято вы думаете? Он там был! И он был в порядке, все в норме! И размер файла и тип файла, даже внутри все ок!
Тогда, я все вернул обратно (типа залил бэкап) но ничего до сих пор не работает! Реактиос будто заного начал работать, сам себя удалил! Что делать? Подключаюсь я точно к своему серверу!
Проверьте синтаксис. ReActions работает прекрасно. Такое случается только при фатальной ошибке в синтаксисе: не доставили пробел, лишняя скобка, скобки нет и т.д. Файл в студию, если он, конечно, остался.
 
Ставил последние версии (та что выше и ещё несколько последних), и во всех них одна проблема - флаг типа VAR перестал отвечать true даже если значения соответствуют проверочным. Используется следующая структура (может она изменилась?):
- VAR_PLAYER_COMPARE=id:test value:0
 
Вы не поняли! Вообщем расскажу как было:
У меня есть настроенный РА под себя, все работало, все гуд! Но сегодня мне нужно было изменить информацию, я внутри игры добавил к кнопки block_set, после через фтп зашел и удалил старые block_set на этой кнопке, после залил на сервер и пишу /RA reload ..... И тут мне пишет что типа все хорошо, все загружено: 0 активаторов и 10 локаций. И что вы думаете? Никаких активаторов нет! Кнопки не работают, когда в РГ вхожу, ничего не работает!!!!
Я зашел в фтп, обновил деррикторию где лежит activators.yml и ято вы думаете? Он там был! И он был в порядке, все в норме! И размер файла и тип файла, даже внутри все ок!
Тогда, я все вернул обратно (типа залил бэкап) но ничего до сих пор не работает! Реактиос будто заного начал работать, сам себя удалил! Что делать? Подключаюсь я точно к своему серверу!

Я понял. Скорее всего ошибка в синтаксисе - не удается разобрать yaml-формат (это делается функциями встроенными в баккит) при этом в консоль выбрасывается сообщение об ошибке и там даже отмечается в какой строке/колонке что-то пошло не так.
Частые ошибки - использование символов табуляции (можно только пробелы - у меня в редакторе табуляция автоматически заменяется на 4 пробела), использование некоторых символов (решается установкой одинарных кавычек вокруг строки - « ' »), не соблюдено форматирование, не стоит двоеточие в разграничении ключей и параметров) .
Ставил последние версии (та что выше и ещё несколько последних), и во всех них одна проблема - флаг типа VAR перестал отвечать true даже если значения соответствуют проверочным. Используется следующая структура (может она изменилась?):

Хмм... Я проверю, может пока переделывал работу с переменными, то ещё чего-то сломал ;)
@olegikoligik Т.е. структура остается такой же, единственное там добавилась возможность указывать игрока через параметр "player", но если он не указывает, что "берётся" текущий игрок.
 
Есть проблема в точности определения пинга в плагине ScoreboardStats из переменной %ping% .Вопрос - можно ли как то исправить переменную пинга на правильное значение. Если да то в 2ух словах хотя бы куда копать . Заранее спасибо.
 
@rukaban96
Ну что там в ScoreboardStats делается это тема для отдельного обсуждения. Тут всё ж ReActions живёт.
А вообще откуда ScoreboardStats берёт ping - это ещё отдельная история. В java нет реализации ICMP протокола (это тот который "ping" :))
Помню когда я делал "ping" для своего OkGlass, то провозился с ним долго, но не могу сказать, что получил действительно верный и точны результат.
 
Спасибо , просто я не знаком особо с переменными , я думал может это переменная баккита на которую можно повлиять...
...через ReAction
 
@olegikoligik Т.е. структура остается такой же, единственное там добавилась возможность указывать игрока через параметр "player", но если он не указывает, что "берётся" текущий игрок.
Прошу прощения но не очень понял - какое решение?:oops:
 
Последнее редактирование:
А можно сделать тайм аут?
Пример: Игрок нажал на кнопку ему выдалось 500$, потом он снова нажимает, а ему пишет: Подожди 5 минут....
У меня паркур, так встаешь на плиту и тебе выдается рандомно от 500 до 1500$ А люди с Fly злоупотребляют)
 
А можно сделать тайм аут?
Пример: Игрок нажал на кнопку ему выдалось 500$, потом он снова нажимает, а ему пишет: Подожди 5 минут....
У меня паркур, так встаешь на плиту и тебе выдается рандомно от 500 до 1500$ А люди с Fly злоупотребляют)

Таймаут тоже можно сделать. Для этого есть флаги DELAY_PLAYER и аналогичное действие. Но fly всё равно лучше отключать - какой же это паркур получает ;)
Прошу прощения но не очень понял - какое решение?:oops:

Решение было - ждать пока я проверю ;)

Выяснилось, что у меня в девбилдах действительно появилась ошибка. Если имя игрока не было указано явно (параметр player:<Игрок>), то происходила работа с глобальной переменной (это касается только флагов).
Т.е. можно было указать: - VAR_PLAYER_COMPARE=id:cmptest value:10 player:%player% и всё заработало бы как надо.

Но в любом случае уже исправлено:

0.9.4/32
- Исправлена ошибка во флагах VAR_PLAYER_* (требовали явного указания имени игрока)
- Тотальная переработка работы с командами плагина (правда кроме меня этого никто не заметит ;))
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
0.9.4/33
- Сделал то, что давно очень хотел: добавил флагам DELAY и DELAY_PLAYER возможность устанавливать задержку, если она ещё не установлена. Для этого используется формат с указанием параметров:
id:<Id> [player:<Player>] [set-time:<Time>]
Если указано какое-то значение set-time, то если флаг возвращает true (т.е. задержка ещё не устанавливалось или время уже прошло) то тогда дополнительно устанавливается флаг. Соответственно в списке действий уже не нужно ставить действие DELAY (DELAY_PLAYER)
- Действия и флаги DELAY (DELAY_PLAYER) поддерживают параметр player:<Player> - т.е. можно задавать и проверять чужие задержки.

https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
 
0.9.4/33
- Сделал то, что давно очень хотел: добавил флагам DELAY и DELAY_PLAYER возможность устанавливать задержку, если она ещё не установлена. Для этого используется формат с указанием параметров:
id:<Id> [player:<Player>] [set-time:<Time>]
Если указано какое-то значение set-time, то если флаг возвращает true (т.е. задержка ещё не устанавливалось или время уже прошло) то тогда дополнительно устанавливается флаг. Соответственно в списке действий уже не нужно ставить действие DELAY (DELAY_PLAYER)
- Действия и флаги DELAY (DELAY_PLAYER) поддерживают параметр player:<Player> - т.е. можно задавать и проверять чужие задержки.

https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
Не совсем понятно. Если флаг DELAY вернул true, то, в случае указания параметра set-time, его значение будет сразу же установлено для данной задержки, что даёт возможность не указывать действие установки времени данной задержки в действиях?
Спасибо, что делаете нашу жизнь лучше :)
 
Назад
Верх