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

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

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

  1. VRovo213

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

    Баллы:
    76
    Можно ли как-то делать проверку пермишена в меню? Что бы в зависимости от пермишена менять лор и запрещать повторную покупку к примеру?

    upd: что здесь не так?
    Код:
      buy_fly:
        flags:
        - PERM=essentials.fly
        - MONEY=100
        actions:
        - IF_ELSE=
            if:{'%perm_flag%'=='true'}
              then:run:actions:{
                action1:{message=Возможность FLY уже приобретена!}
            } else:run:actions:{
              action1:{IF_ELSE=if:{'%money_flag%'=='100'}
                then:run:actions:{
                  action1:{message=купил}
                  action2:{CMD_CONSOLE=pex user %player_name% add essentials.fly}
                } else:run:actions:{ action1:{MSG=мало} }} }
        reactions:
        - MESSAGE=%ifelsedebug%
     
    Последнее редактирование: 12 апр 2018
  2. VRovo213

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

    Баллы:
    76
    Paper при входе
    Код:
    [11:56:45] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to ReActions v0.11.0
    org.bukkit.event.EventException: null
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[PaperSpigot-latest.jar:git-Paper-1385]
        at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[PaperSpigot-latest.jar:git-Paper-1385]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[PaperSpigot-latest.jar:git-Paper-1385]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:515) [PaperSpigot-latest.jar:git-Paper-1385]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:500) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.PlayerList.onPlayerJoin(PlayerList.java:370) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.PlayerList.a(PlayerList.java:183) [PaperSpigot-latest.jar:git-Paper-1385]
        at protocolsupport.zplatform.impl.spigot.network.handler.SpigotLoginListenerPlay.joinGame(SpigotLoginListenerPlay.java:124) [ProtocolSupport(8).jar:?]
        at protocolsupport.protocol.packet.handler.AbstractLoginListenerPlay.tryJoin(AbstractLoginListenerPlay.java:130) [ProtocolSupport(8).jar:?]
        at protocolsupport.protocol.packet.handler.AbstractLoginListenerPlay.tick(AbstractLoginListenerPlay.java:92) [ProtocolSupport(8).jar:?]
        at protocolsupport.zplatform.impl.spigot.network.handler.SpigotLoginListenerPlay.e(SpigotLoginListenerPlay.java:70) [ProtocolSupport(8).jar:?]
        at net.minecraft.server.v1_12_R1.NetworkManager.a(NetworkManager.java:255) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.ServerConnection.c(ServerConnection.java:150) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:941) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:426) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [PaperSpigot-latest.jar:git-Paper-1385]
        at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [PaperSpigot-latest.jar:git-Paper-1385]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
    Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
        at me.fromgate.reactions.actions.ActionIfElse.execute(ActionIfElse.java:37) ~[?:?]
        at me.fromgate.reactions.actions.Action.executeAction(Action.java:66) ~[?:?]
        at me.fromgate.reactions.actions.Actions.performAction(Actions.java:192) ~[?:?]
        at me.fromgate.reactions.actions.Actions.executeActions(Actions.java:183) ~[?:?]
        at me.fromgate.reactions.util.waiter.Task.execute(Task.java:58) ~[?:?]
        at me.fromgate.reactions.util.waiter.ActionsWaiter.refresh(ActionsWaiter.java:72) ~[?:?]
        at me.fromgate.reactions.util.listeners.RaListener.onPlayerJoin(RaListener.java:412) ~[?:?]
        at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor324.execute(Unknown Source) ~[?:?]
        at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[PaperSpigot-latest.jar:git-Paper-1385]
        ... 17 more
     
  3. SOHIGH

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

    Баллы:
    76
    Зачем же так нагружать активатор действиями IF_ELSE?
    Используй просто стронний актватор с флагом.
    Код:
    COMMAND:
      'cmd_buyfly':
        override: false
        regex: false
        command: buyfly
        flags:
        - PERM=essentials.fly
        actions:
        - MSG=&7Вам и так доступна возможность летать!
        - FLY=fly:true allow:true
        reactions:
        - EXECUTE=activator:moneyfly
    EXEC:
      'moneyfly':
        flags:
        - MONEY=100
        actions:
        - CMD_CONSOLE=pex user %PLAYER_NAME% add essentials.fly
        - MONEY_PAY=100
        - 'MSG=&7Вы успешно купили возможность летать! Остаток средств&f: &b%money%&c$'
        reactions:
        - MSG=&7Недостаточно средств! &8(&b%calc:%money%-100%&8)
    /buyfly
     
  4. Koyot

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

    Баллы:
    68
    Ещё разок сформулирую свой вопрос.
    Блоки из модов для действия SHOOT по умолчанию стоят, как проницаемые и поэтому их невозможно уничтожить выстрелом. Хотя в конфиге они прописаны, как разрушаемые, но как проницаемые не прописаны. Как это убрать? Как сделать блок из мода разрушаемым для выстрела?
     
  5. Lomank

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

    Баллы:
    66
    Имя в Minecraft:
    Lomank
    Дело в том, что плейсхолдер _flag отображает значение флага, в твоём случае %perm_flag% отобразит essentials.fly.
    Да, я тоже бы хотел, чтобы плейсхолдеры флагов возвращали true или false. Попробуй пр

    Выйти из положения можно, как указал SOHIGH выше.
     
  6. Lomank

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

    Баллы:
    66
    Имя в Minecraft:
    Lomank
    @fromgate, здравствуй.

    В данный момент плейсхолдер флага отображает значение данного флага, если он был в активаторе. Я пока не понял, зачем он. Если он будет возвращать значение флага, то оно неизменно и пользы от него почти нет.

    Предлагаю сделать так, чтобы плейсхолдер %_flag% возвращал true или false из указанного флага, в зависимости от того, что возвращает этот флаг. Таким способом можно избавиться от некрасивых костылей и дополнительных активаторов.
     
  7. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    @Lomank Я не помню конкретно для чего я делал, чтобы потягивалось значение. Но как-то я это использовал )

    В принципе лучше будет тогда сделать плейсхолдер <имя_флага>_flag_value, который будет иметь значение true / false.
     
  8. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Обычные юзеры тут не в помощь, наверно. Дождитесь ответа разработчиков плагина, или отпишитесь им в ЛС
     
  9. maxdikiy

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

    Баллы:
    76
    Имя в Minecraft:
    maxdikiy
    Плейсхолдер флага очень полезная вещь. Вот, как я когда-то использовал его:
    Код:
      exec_get_player_donate:
        flags:
        - FLAG_SET=GROUP:default GROUP:fly GROUP:vip GROUP:vipp GROUP:god GROUP:mvp
        GROUP:mvpp GROUP:creative GROUP:arch GROUP:glarch GROUP:moderator GROUP:youtube
        GROUP:mladm GROUP:admin GROUP:pgl GROUP:gl GROUP:creator
        actions:
        - CMD_CONSOLE=say &eИгрок &a%player% &eимеет донат &6&l%GROUP_FLAG%
        reactions: []
    
     
  10. Lomank

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

    Баллы:
    66
    Имя в Minecraft:
    Lomank
    Кстати да, можно просто отдельный плейсхолдер сделать, а плейсхолдер %_flag% ещё пригодится. :)
     
  11. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Проверяйте. Я ещё вчера добавил забыл написать.

    #211
    • Флаги будут создавать дополнительный временный плейсхолдер <FLAG_NAME>_FLAG_VAL, который будет содержать результат проверки данного флага (true / false)
    • Добавлен флаг HEALTH — проверка здоровья игрока
    • Команда /react add теперь работает (должна ;)) на bukkit 1.7.10.
    • Исправлена ошибка, связанная с несовместимостью API разных версий spigot, проявлявшая себя периодически при стрельбе из лока, бросании зелий и т.п.
    • Информация о регистрации команд, при старте сервера, объедина в одно сообщение.
     
  12. Lomank

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

    Баллы:
    66
    Имя в Minecraft:
    Lomank
    Плейсхолдер %<FLAG_NAME>_FLAG_VAL% не всегда срабатывает почему-то. Бывает просто нераскрытый плейсхолдер показывает. Не знаю с чем это связано.
     
  13. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Хм.. Посмотрю.
     
  14. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Немного переделал генератор сайта с докуентацией.
    Теперь он вытягивает последний билд с CircleCI, поэтому он всегда (ну может с небольшой задержкой) доступен тут: http://reactions.fromgate.me/downloads/ReActions-1.0-SNAPSHOT.jar
     
  15. Koyot

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

    Баллы:
    68
    [20:02:05] [Server thread/ERROR]: Could not pass event BlockClickEvent to ReActions v0.10.2
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:338) ~[JavaPluginLoader$1.class:1.7.10-1614.58]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[RegisteredListener.class:1.7.10-1614.58]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:507) [SimplePluginManager.class:1.7.10-1614.58]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:492) [SimplePluginManager.class:1.7.10-1614.58]
    at me.fromgate.reactions.event.EventManager.raiseBlockClickEvent(EventManager.java:486) [ReActions.jar:?]
    at me.fromgate.reactions.RAListener.onPlayerInteract(RAListener.java:401) [ReActions.jar:?]
    at sun.reflect.GeneratedMethodAccessor42.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_161]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334) [JavaPluginLoader$1.class:1.7.10-1614.58]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [RegisteredListener.class:1.7.10-1614.58]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:507) [SimplePluginManager.class:1.7.10-1614.58]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:492) [SimplePluginManager.class:1.7.10-1614.58]
    at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:223) [CraftEventFactory.class:1.7.10-1614.58]
    at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:429) [mx.class:?]
    at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:861) [nh.class:?]
    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60) [jo.class:?]
    at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9) [jo.class:?]
    at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:245) [ej.class:?]
    at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:181) [nc.class:?]
    at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:1023) [MinecraftServer.class:?]
    at net.minecraft.server.dedicated.DedicatedServer.func_71190_q(DedicatedServer.java:432) [lt.class:?]
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:841) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:693) [MinecraftServer.class:?]
    at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]
    Caused by: java.lang.NoSuchMethodError: com.sk89q.worldguard.LocalPlayer.getAssociation(Ljava/util/List;)Lcom/sk89q/worldguard/domains/Association;
    at me.fromgate.reactions.module.wgbridge.WGBridge6x.isPlayerIsMember(WGBridge6x.java:163) ~[?:?]
    at me.fromgate.reactions.externals.RAWorldGuard.isPlayerIsMember(RAWorldGuard.java:131) ~[?:?]
    at me.fromgate.reactions.flags.FlagRegion.checkFlag(FlagRegion.java:52) ~[?:?]
    at me.fromgate.reactions.flags.Flags.check(Flags.java:114) ~[?:?]
    at me.fromgate.reactions.flags.Flags.checkFlag(Flags.java:142) ~[?:?]
    at me.fromgate.reactions.flags.Flags.checkAllFlags(Flags.java:156) ~[?:?]
    at me.fromgate.reactions.flags.Flags.checkFlags(Flags.java:148) ~[?:?]
    at me.fromgate.reactions.actions.Actions.executeActivator(Actions.java:151) ~[?:?]
    at me.fromgate.reactions.activators.BlockClickActivator.activate(BlockClickActivator.java:83) ~[?:?]
    at me.fromgate.reactions.activators.Activator.executeActivator(Activator.java:231) ~[?:?]
    at me.fromgate.reactions.activators.Activators.activate(Activators.java:330) ~[?:?]
    at me.fromgate.reactions.RAListener.onBlockClickActivator(RAListener.java:612) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_161]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:334) ~[JavaPluginLoader$1.class:1.7.10-1614.58]
    ... 24 more

    BLOCK_CLICK:
    bc:
    block-type: ''
    click-type: RIGHT
    flags:
    - ITEM=type:4439
    - REGION_MEMBER=%worldguard_region_name%
    actions:
    - CANCEL_EVENT=true

    В чём беда? PlaceHolderApi работает, данная переменная в сочетании с другими флагами работает. Флаг REGION работает. А REGION_OWNER и REGION_MEMBER выдают вот это
     
  16. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Тут беда: org.bukkit.craftbukkit.v1_7_R4.
     
  17. VRovo213

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

    Баллы:
    76
    а тут?
     
  18. Автор темы
    fromgate

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

    Баллы:
    173
    Имя в Minecraft:
    fromgate
    Скорее всего это связано с тем, что самого флага не дошла проверка.
    Т.е. если флагов 3, а второй в списке вернул false, то неотработавшей считается вся конструкция. Собственно так оно и есть.
    Я могу сделать полный перебор, но первый вариант оптимальнее с точки зрения производительности.
     
  19. Koyot

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

    Баллы:
    68
    Я ничего не понял, в java я не понимаю ничего. Не посоветуете ли коим образом это можно исправить?
     
  20. Saharo4ek

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

    Баллы:
    96
    Имя в Minecraft:
    tin
    Никак
     

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