1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Релизы плагинов", создана пользователем fromgate, 16 июл 2013.

  1. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Да, это же так легко :D
     
  2. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Не вижу сложности, когда игрок пишет tpaccept там идет ивент тп игрока к игроку, там мы и проверим.
     
  3. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Человеку, который в глаза не видел код, синтаксис и операторные выражения Java, очень понятна суть данного поста :D
    Кстати, проверка наличия игрока в каком-то мире при запросе телепорта - не решение проблемы, ибо я написал механизм дырки поста три ранее.
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Тупишь, не при запросе надо, а при tpaccept когда чувак принимает тпшку.
     
    Последнее редактирование: 28 ноя 2014
  5. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Да, бывают дела. Ночь :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:
     
    Последнее редактирование: 30 ноя 2014
  6. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Попробовал подружить ReActions с WG6.0: https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar

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

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

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

    Вместо точки или двоеточия желательно какой-то символ, который не может быть использован в названии региона. Есть там какие-то правила? Кто знает?
     
  7. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Да любой символ который не позволяет писать майн, например параграф.
     
  8. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    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
    То сообщение с цифрами скрывается.
    [​IMG]
    И работает, почему-то, только когда у меня права оператора...
    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)
    Символ "\" нельзя использовать: "Неправильное название региона".
    Точка так же не прокатывает.
    20. Возвращаемся к изменению конфига через файл и чат.
    В одном случае, стабильный конфиг, в котором не стираются комментарии и отступы при редактировании через чат - хорошо. С другой стороны, если вдруг что-то пойдёт не так и конфиг просто обнулится, то его нельзя будет восстановить.

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

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Нее! Майн должен позволять писать ;) Как с командной строки добавлять-то? ;)
    В любом, случае, выяснилось, что WG не любит и точки и двоеточия в имени региона. Поэтому буду использовать точку.
    https://dl.dropboxusercontent.com/u/64799811/ReActions/ReActions.jar
    Теперь в имени регионов можно указывать мир:
    <Мир>.<Регион>
    Если мир не указан, то будет считаться, что регион находится в первом мире. Соответственно при апдейте нужно проверить не было ли ранее указаний на регионы в других мирах.
     
  10. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Ура, спасибо за фикс :)
     
  11. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Только один момент, это уже под WG6.x
    Скорее всего с WG5.x работать не будет. Я не проверял, во всяком случае.
     
  12. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Окей, проверю на локальной машинке.
    Нет. Флаги 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)
     
  13. Автор темы
    fromgate

    fromgate Старожил Пользователь

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

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    version: "5.7.6-SNAPSHOT"
    21. А можно ли заставить уменьшаться личную переменную даже тогда, когда игрок, который её имеет, offline?
    Сделал я тут замерчики на один день... Такие цифры не являются хорошими? :D
    [​IMG]
    Это учитывая, что в /ra list group показывает только 27 страниц. А это далеко не всё, что я запланировал :D
     
  15. Автор темы
    fromgate

    fromgate Старожил Пользователь

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

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

    Но вообще интересно посмотреть, что будет после перехода на WG6 - там появился кэш и по идее опрос координат на принадлежность региону будет выполняться быстрее.
     
  16. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    Только вряд ли я перейду на шестую версию (Она же не поддерживает 1.5.2?)... Ибо менять версию сервера - это терять и без того малый онлайн...
     
  17. Автор темы
    fromgate

    fromgate Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Насчет поддержки WG60 - 1.5.2 не удивлюсь, если поддерживает. Надо пробовать.
     
  18. Lyosha12

    Lyosha12 Активный участник Пользователь

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

    Korvinius Активный участник Пользователь

    Баллы:
    88
    На 1.8 плагины обновлять планируете?
     
  20. Lyosha12

    Lyosha12 Активный участник Пользователь

    Баллы:
    98
    Skype:
    alexey_zyuz
    Имя в Minecraft:
    Lyosha12
    24. Если вводить команду через /powertool command, то в ReActions она не будет регистрироваться как введённая, а выведет лишь сообщение о несуществующей команде. Странно, не правда ли?
     
    Последнее редактирование: 3 дек 2014

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