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

Не вижу сложности, когда игрок пишет tpaccept там идет ивент тп игрока к игроку, там мы и проверим.
Человеку, который в глаза не видел код, синтаксис и операторные выражения Java, очень понятна суть данного поста :D
Не вижу сложности, когда игрок пишет tpaccept там идет ивент тп игрока к игроку, там мы и проверим.
Кстати, проверка наличия игрока в каком-то мире при запросе телепорта - не решение проблемы, ибо я написал механизм дырки поста три ранее.
 
Человеку, который в глаза не видел код, синтаксис и операторные выражения Java, очень понятна суть данного поста :D

Кстати, проверка наличия игрока в каком-то мире при запросе телепорта - не решение проблемы, ибо я написал механизм дырки поста три ранее.
Тупишь, не при запросе надо, а при tpaccept когда чувак принимает тпшку.
 
Последнее редактирование:
Тупишь, не при запросе надо, а при tpaccept когда чувак принимает тпшку.
Да, бывают дела. Ночь :D
14. Указываю место телепортации по схеме
loc:{loc:<Мир>,<X>,<Y>,<Z>[,<Тангаж>,<Азимут>] radius:<Радиус> [land:<true | false>]}
Код:
loc:{loc:the_end,1,64,1 radius:50 land:true}
- Телепортирует в рандомную точку в воздухе(!) возле места, где был активирован(!) телепорт. Что не так?
Телепортировать в случайное место внутри кубоида не вижу смысла, т.к. мир не указывается. Что делать?
15. А можно ли отложить выполнение любого активатора? Например, в названии указывать:
Test: 150ms

UPD1
Необходимость возникла из-за такой ситуации:
При выполнении команды, назначается личная переменная. Далее должно скрываться сообщение игроку с этой переменной, которое вызвала команда. А далее должно выдаваться новое сообщение, в тексте которого будет %arg1%.

Я это провернул с помощью групп. Коротко говоря, есть три активатора. Два COMMAND и один MESSAGE. Требовалась такая последовательность: COMMAND-MESSAGE-COMMAND. Группы отлично с этим сплавились, но хотело бы именно задержку перед выполнением любого активатора (в этом примере - активатора COMMAND под номером три) :)

UPD2
Происходит некоторая ересь. Есть три группы активаторов: "1", "2" и "3", в которые прописаны соответствующие активаторы:
В них есть активаторы
Код:
COMMAND:
  TP-Message-1-1:
    command: cmd:tp arg1:*
    flags:
    - PERM=essentials.tp
    actions:
    - var_player_set=id:TP-Message value:1
    reactions: []
Код:
MESSAGE:
  TP-MessageShow:
    mask: Телепортирование...
    type: CONTAINS
    source: CHAT_OUTPUT
    flags:
    - var_player_compare=id:TP-Message value:1
    actions:
    - var_player_set=id:TP-Message value:0
    - var_player_set=id:TP-MessageReplace value:1
    - CANCEL_EVENT=true
    reactions: []
Код:
COMMAND:
  TP-Message-2-1:
    command: cmd:tp arg1:*
    flags:
    - PERM=essentials.tp
    - var_player_compare=id:TP-MessageReplace value:1
    actions:
    - message=&6Телепортация &d&l► &e&l%arg1%
    - action_delayed=time:500ms action:{var_player_set id:TP-MessageReplace value:0}
    reactions: []
А происходит следующее:
При телепортации к игроку онлайн и при нулевом значении переменной TP-MessageReplace, сообщение не выводится.

Но, после тп, значение становится равным одному. Если попытаться телепортироваться к любому игроку, то сообщение напишет, так как значение переменной TP-MessageReplace равно одному. Далее же значение сбрасывается.

Собственно, вопрос: почему активатор в группе "3" не обрабатывается после активатора в группе "2"? Они же по порядку идут... :confused:
 
Последнее редактирование:
Фикс под wg 6.0 был или еще нет?

Попробовал подружить ReActions с WG6.0: https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Вроде работает. Но изменений касательно поддержки имён миров для региона пока нет.

В связи с этим вопрос.
Самый простой способ (чтобы сохранилась совместимость и не пришлось много переделывать по части синтаксиса), это ввести запись региона в форме:
<Мир>.<НазваниеРегиона>
или
<Мир>:<НазваниеРегиона>

Соответственно, если будет указывать только имя региона - он будет искаться только в первом мире.

Вместо точки или двоеточия желательно какой-то символ, который не может быть использован в названии региона. Есть там какие-то правила? Кто знает?
 
Попробовал подружить ReActions с WG6.0: https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Вроде работает. Но изменений касательно поддержки имён миров для региона пока нет.

В связи с этим вопрос.
Самый простой способ (чтобы сохранилась совместимость и не пришлось много переделывать по части синтаксиса), это ввести запись региона в форме:
<Мир>.<НазваниеРегиона>
или
<Мир>:<НазваниеРегиона>

Соответственно, если будет указывать только имя региона - он будет искаться только в первом мире.

Вместо точки или двоеточия желательно какой-то символ, который не может быть использован в названии региона. Есть там какие-то правила? Кто знает?
Да любой символ который не позволяет писать майн, например параграф.
 
16. Использовав конструкцию
Код:
  AntiAD:
    mask: \d+\W+\d+\W+\d+\W+\d+\W+\d+
    type: REGEX
    source: All
    flags: []
    actions:
    - cancel_event=true
    - message=Проверка
    reactions: []
Сообщение, написанное игроком в чат, не скрывается :(
А если написать
/ncp tell Lyosha12 123 123 123 123 123
То сообщение с цифрами скрывается.
dc2ffe8c1684dcb195c54f0b2dfea22c.png

И работает, почему-то, только когда у меня права оператора...
UPD
Мало того, что работает только тогда, когда я являюсь оператором... Оно вообще не работает! Маска не определяет сообщение типа "ssssss ssssss sssss 123 123 123 ssssss ssssss 123 132"
А здесь (http://regex101.com/) всё спокойно определяется.
Эхх... Не работает моя "золотая" маска:
Код:
MESSAGE:
  Anti-AD:
    mask: (\d+\D+\d+\D+\d+\D+\d+\D+\d+)
    type: REGEX
    source: ALL
    flags: []
    actions:
    - message=Test
    reactions: []
UPD
Опять туплю... Активатор Message работает же совсем не так, как я предполагал... Это же будет проверятся сообщение, которое отправлено игроку! А не которое игрок написал...

17. Можно ли добавить функцию проверки, находится ли игрок в "ванише", что из Essentials? Иногда нужно, чтобы некоторые активаторы не исполнялись при таком состоянии. Ещё нужнее была бы проверка в самих действиях на предмет активации этого режима.

Например, при написании команды /kill nick в ванише, действие message, что включено в активатор, который ловит эту команду, не будет выполнено. Можно, конечно, вынести сообщение в отдельный активатор... Но проверка этого режима не помешала бы :)
18. Не помешала бы поддержка убийств из плагина CrackShot. Что-то ловит, что-то нет.
19. А можно ли сделать так, чтобы переменная присваивалась предмету, который был использован в руке? А далее проверять эту переменную на предмете. В связке с изменением lore по действию выйдет настоящая прочность итемов! (Может, будет и поддержка проверки lore, из которых можно было бы вытаскивать %lore_word1_line1%... Мечты :D)
Попробовал подружить ReActions с WG6.0: https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

Вроде работает. Но изменений касательно поддержки имён миров для региона пока нет.

В связи с этим вопрос.
Самый простой способ (чтобы сохранилась совместимость и не пришлось много переделывать по части синтаксиса), это ввести запись региона в форме:
<Мир>.<НазваниеРегиона>
или
<Мир>:<НазваниеРегиона>

Соответственно, если будет указывать только имя региона - он будет искаться только в первом мире.

Вместо точки или двоеточия желательно какой-то символ, который не может быть использован в названии региона. Есть там какие-то правила? Кто знает?
Символ "\" нельзя использовать: "Неправильное название региона".
Точка так же не прокатывает.
20. Возвращаемся к изменению конфига через файл и чат.
В одном случае, стабильный конфиг, в котором не стираются комментарии и отступы при редактировании через чат - хорошо. С другой стороны, если вдруг что-то пойдёт не так и конфиг просто обнулится, то его нельзя будет восстановить.

Так как при изменении конфига через чат, в данный момент, из памяти ReActions полностью воспроизводиться конфиг и перезаписывается в файл, то можно "восстанавливать" конфиги этим способом. С вводом "стабильных комментариев" эта фича пропадёт. Предлагаю реализовать её в виде команды /ra restore config-name. :)
 
Последнее редактирование:
Да любой символ который не позволяет писать майн, например параграф.

Нее! Майн должен позволять писать ;) Как с командной строки добавлять-то? ;)
В любом, случае, выяснилось, что WG не любит и точки и двоеточия в имени региона. Поэтому буду использовать точку.
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
Теперь в имени регионов можно указывать мир:
<Мир>.<Регион>
Если мир не указан, то будет считаться, что регион находится в первом мире. Соответственно при апдейте нужно проверить не было ли ранее указаний на регионы в других мирах.
 
Нее! Майн должен позволять писать ;) Как с командной строки добавлять-то? ;)
В любом, случае, выяснилось, что WG не любит и точки и двоеточия в имени региона. Поэтому буду использовать точку.
https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
Теперь в имени регионов можно указывать мир:
<Мир>.<Регион>
Если мир не указан, то будет считаться, что регион находится в первом мире. Соответственно при апдейте нужно проверить не было ли ранее указаний на регионы в других мирах.
Ура, спасибо за фикс :)
 
Только один момент, это уже под WG6.x
Скорее всего с WG5.x работать не будет. Я не проверял, во всяком случае.
Окей, проверю на локальной машинке.
Нет. Флаги REGION не работают, даже с указанием мира, в котором они находятся:
flags:
- REGION=world.boom1
RGENTER так же не работает:
Код:
  pvp:
    region: pvp
    flags:
    - ITEM_INVENTORY=&fПроверка$384*1
    actions:
    - message=&cПроверка
    reactions: []
С первой версией поправок всё работает. :(
Ладно, буду юзать костыль, проверяя и мир, в котором должен находится игрок...
Кстати, логи:
Код:
2014-11-30 12:33:10 [INFO] Lyosha12 issued server command: /plugman reload reactions
2014-11-30 12:33:10 [INFO] [ReActions] Disabling ReActions v0.9.3/1
2014-11-30 12:33:10 [INFO] [ReActions] Enabling ReActions v0.9.3/3
2014-11-30 12:33:11 [INFO] [ReActions] PlayEffect plugin is not found at your system
2014-11-30 12:33:11 [INFO] [ReActions] If you need more effects please download PlayEffect from:
2014-11-30 12:33:11 [INFO] [ReActions] http://dev.bukkit.org/bukkit-plugins/playeffect/
2014-11-30 12:33:11 [SEVERE] Error occurred while enabling ReActions v0.9.3/3 (Is it up to date?)
java.lang.NoSuchMethodError: com.sk89q.worldguard.bukkit.WorldGuardPlugin.getRegionContainer()Lcom/sk89q/worldguard/bukkit/RegionContainer;
    at me.fromgate.reactions.externals.RAWorldGuard.connectToWorldGuard(RAWorldGuard.java:58)
    at me.fromgate.reactions.externals.RAWorldGuard.init(RAWorldGuard.java:48)
    at me.fromgate.reactions.ReActions.onEnable(ReActions.java:112)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:457)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:382)
    at com.ryanclancy000.plugman.utilities.Utilities.loadPlugin(Utilities.java:294)
    at com.ryanclancy000.plugman.utilities.Utilities.reloadCommand(Utilities.java:423)
    at com.ryanclancy000.plugman.PlugManCommands.onCommand(PlugManCommands.java:82)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:189)
    at org.bukkit.craftbukkit.v1_5_R3.CraftServer.dispatchCommand(CraftServer.java:546)
    at net.minecraft.server.v1_5_R3.PlayerConnection.handleCommand(PlayerConnection.java:979)
    at net.minecraft.server.v1_5_R3.PlayerConnection.chat(PlayerConnection.java:895)
    at net.minecraft.server.v1_5_R3.PlayerConnection.a(PlayerConnection.java:840)
    at net.minecraft.server.v1_5_R3.Packet3Chat.handle(Packet3Chat.java:44)
    at org.spigotmc.netty.NettyNetworkManager.b(NettyNetworkManager.java:218)
    at net.minecraft.server.v1_5_R3.PlayerConnection.d(PlayerConnection.java:109)
    at net.minecraft.server.v1_5_R3.ServerConnection.b(SourceFile:35)
    at org.spigotmc.MultiplexingServerConnection.b(MultiplexingServerConnection.java:72)
    at net.minecraft.server.v1_5_R3.MinecraftServer.r(MinecraftServer.java:583)
    at net.minecraft.server.v1_5_R3.DedicatedServer.r(DedicatedServer.java:227)
    at net.minecraft.server.v1_5_R3.MinecraftServer.q(MinecraftServer.java:472)
    at net.minecraft.server.v1_5_R3.MinecraftServer.run(MinecraftServer.java:404)
    at net.minecraft.server.v1_5_R3.ThreadServerApplication.run(SourceFile:573)
 
@Lyosha12
Флаги, я честно говоря не проверял сам. Активаторы вроде отрабатывались нормально.
Ладно, проверю ещё раз. Посмотрю сегодня.
Окей, проверю на локальной машинке.
java.lang.NoSuchMethodError: com.sk89q.worldguard.bukkit.WorldGuardPlugin.getRegionContainer()Lcom/sk89q/worldguard/bukkit/RegionContainer;
at me.fromgate.reactions.externals.RAWorldGuard.connectToWorldGuard(RAWorldGuard.java:58)

Worldguard какой версии? 5-й?
 
@Lyosha12
Флаги, я честно говоря не проверял сам. Активаторы вроде отрабатывались нормально.
Ладно, проверю ещё раз. Посмотрю сегодня.


Worldguard какой версии? 5-й?
version: "5.7.6-SNAPSHOT"
21. А можно ли заставить уменьшаться личную переменную даже тогда, когда игрок, который её имеет, offline?
Сделал я тут замерчики на один день... Такие цифры не являются хорошими? :D
65ce1c7d2a9e9727999c989ab2607109.png

Это учитывая, что в /ra list group показывает только 27 страниц. А это далеко не всё, что я запланировал :D
 
@Lyosha12
Честно говоря, не понятно чего это показывает. То что обработчик RegionEvent в ReActions съел за день какой-то процент времени? Ну так и должно быть ;)

Главное чтобы применительно к одному тику (1/20 секунды) не было превышения времени выполнения.

Но вообще интересно посмотреть, что будет после перехода на WG6 - там появился кэш и по идее опрос координат на принадлежность региону будет выполняться быстрее.
 
@Lyosha12
Честно говоря, не понятно чего это показывает. То что обработчик RegionEvent в ReActions съел за день какой-то процент времени? Ну так и должно быть ;)

Главное чтобы применительно к одному тику (1/20 секунды) не было превышения времени выполнения.

Но вообще интересно посмотреть, что будет после перехода на WG6 - там появился кэш и по идее опрос координат на принадлежность региону будет выполняться быстрее.
Только вряд ли я перейду на шестую версию (Она же не поддерживает 1.5.2?)... Ибо менять версию сервера - это терять и без того малый онлайн...
 
Только вряд ли я перейду на шестую версию (Она же не поддерживает 1.5.2?)... Ибо менять версию сервера - это терять и без того малый онлайн...

Насчет поддержки WG60 - 1.5.2 не удивлюсь, если поддерживает. Надо пробовать.
 
Насчет поддержки WG60 - 1.5.2 не удивлюсь, если поддерживает. Надо пробовать.
Попробую, когда выйдет релиз. А то как увижу какие-то критические баги, как полетит у меня всё к чертям... Сразу отобьёт желание ставить шестёрку :D
+ Там написано, что они перешли на новый UUID. А это фичи 1.8. Не думаю, что будет поддержка 1.5.2, хоть там и написано, что "можно обновить любую 5.х".
22. Возвращаемся к дружбе флагов WG и Вашего замечательного плагина, @fromgate. Зачем что-то придумывать, когда можно добавить один флаг "RGFLAG=flagname:[deny|allow]"? :)
23. Улучшаем выталкивание. Можно сделать выталкивание из региона, из радиуса, относительно точки; из радиуса, относительно игрока (моба с именем, переменной); из радиуса, относительно предмета на земле (к которому, может, можно будет прицепить переменные).
Регулирование плавности выталкивания (задавать действия по одному на каждые 50ms ну очень геморрно...).
 
На 1.8 плагины обновлять планируете?
 
24. Если вводить команду через /powertool command, то в ReActions она не будет регистрироваться как введённая, а выведет лишь сообщение о несуществующей команде. Странно, не правда ли?
 
Последнее редактирование:
Назад
Верх