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

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

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

  1. omikron

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

    Баллы:
    66
    Имя в Minecraft:
    omikron
    да тут больше нужны рабочие примеры, которые можно покопать и вообще разобраться как это работает. а то в русскоязычной викии уж слишком они примитивны
     
  2. DyX

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

    Баллы:
    76
    Имя в Minecraft:
    GoODsPie
    учился по статье с вики, довольно подробно расписано как и что работает.
    конкретно для вас, должно выглядеть как-то так:
    - REGEX=input:{откуда берём значение, переменная отвечающая за предмет} regex:{(^цена: )*}
    возможно это и с ошибкой, давно не работал ;)

    круглые скобки объединяют слово в одно целое (вместо поиска букв "ц","е","н","а" ищет само слово)
    ^ обозначает что мы ищем первое значение после "цена:"
    * обозначают прочие символы, не уверен что оно там надо, но я на всякий вставил...

    вообщем, почитайте, лишним не будет.
     
  3. omikron

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

    Баллы:
    66
    Имя в Minecraft:
    omikron
    Собственно кто может подсказать что бы работал магазин. Тыкаешь по предмету с лором "Цена: 10$"
    Я так понимаю сначала сделать сам активатор
    Код:
    /react add
    INVENTORY_CLICK - ну собственно активатор связанный с инвентарем
    sell_item - название
    click:any - не совсем понимаю к какому действию относится
    action:PICKUP_HALF - когда жму ПКМ (он как раз берет пол стака)
    inventory:CHEST - когда открыт сундук (но еще нужно что бы у сундука было определенное название как то один раз вышло что бы срабатывало, но повторно не выходит)
    slotType:CONTAINER - я так понял это именно слоты в которых хранятся вещи игрока
    key:any - любой слот контейнера
    item:'' - я так понимаю оставляем место пустое, т.к. предмет может быть любой но с лором "Цена:10$" ???
    slot:any - ну и тут любой слот хотбара
    
    дальше нам нужны сами действия, это MONEY_GIVE (что бы выдать бабки за предмет) и ITEM_REMOVE_INVENTORY (что бы забрать предмет)
    Код:
    MONEY_GIVE
    сумма которая должна баться из переменной - но как работать с переменной из лора?
    
    и сам предмет
    Код:
    ITEM_REMOVE_INVENTORY 
    lore: ну и опять же переменная
    

    из того что я понимаю, не хватает кода откуда брать параметры и переменных, т.е. какая то проверка предмета по которому я щелкнул, что бы он все проверил, если нашел заранее подготовленную стороку из лора, превратил ее в переменную A для действия MONEY_GIVE и сразу же брал либо лор либо имя предмета и превращал ее в переменную B что бы потом добавить ее в ITEM_REMOVE_INVENTORY.
     
  4. omikron

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

    Баллы:
    66
    Имя в Minecraft:
    omikron
    это уже куда в сторону программирование явно идет -_-'
     
  5. HauserGrim

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

    Баллы:
    96
    Прошу помощи, активатор клика в инвентаре крафта не работает и вызывает ошибку в консоли.
    Код:
    INVENTORY_CLICK:
      inv-craft-craft:
        click-type: ANY
        inventory-type: CRAFTING
        slot: CRAFTING
        actions:
        - CANCEL_EVENT=true
        - 'CMD_OP=say test'
      inv-craft-result:
        click-type: ANY
        inventory-type: CRAFTING
        slot: RESULT
        actions:
        - CANCEL_EVENT=true
        - 'CMD_OP=say test'
    
    Код:
    [00:16:25 ERROR]: Could not pass event PlayerInventoryClickEvent to ReActions v0.11.1
    org.bukkit.event.EventException: null
            at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:72) ~[patched_1.12.2.jar:git-Paper-1594]
            at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.12.2.jar:git-Paper-1594]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1594]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1594]
            at me.fromgate.reactions.event.EventManager.raiseInventoryClickEvent(EventManager.java:485) ~[?:?]
            at me.fromgate.reactions.util.listeners.RaListener.onPlayerInventoryClick(RaListener.java:448) ~[?:?]
            at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor32.execute(Unknown Source) ~[?:?]
            at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.12.2.jar:git-Paper-1594]
            at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.12.2.jar:git-Paper-1594]
            at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.12.2.jar:git-Paper-1594]
            at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.PlayerConnection.a(PlayerConnection.java:1988) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:33) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.PlayerConnectionUtils.lambda$ensureMainThread$0(PlayerConnectionUtils.java:14) ~[patched_1.12.2.jar:git-Paper-1594]
            at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_191]
            at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_191]
            at net.minecraft.server.v1_12_R1.SystemUtils.a(SourceFile:46) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:850) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:423) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:774) ~[patched_1.12.2.jar:git-Paper-1594]
            at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:666) ~[patched_1.12.2.jar:git-Paper-1594]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_191]
    Caused by: java.lang.NumberFormatException: For input string: "CRAFTING"
            at java.lang.NumberFormatException.forInputString(Unknown Source) ~[?:1.8.0_191]
            at java.lang.Integer.parseInt(Unknown Source) ~[?:1.8.0_191]
            at java.lang.Integer.parseInt(Unknown Source) ~[?:1.8.0_191]
            at me.fromgate.reactions.activators.InventoryClickActivator.checkSlot(InventoryClickActivator.java:285) ~[?:?]
            at me.fromgate.reactions.activators.InventoryClickActivator.activate(InventoryClickActivator.java:58) ~[?:?]
            at me.fromgate.reactions.activators.Activator.executeActivator(Activator.java:231) ~[?:?]
            at me.fromgate.reactions.activators.Activators.activate(Activators.java:330) ~[?:?]
            at me.fromgate.reactions.util.listeners.RaListener.onInventoryClickActivator(RaListener.java:655) ~[?:?]
            at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor104.execute(Unknown Source) ~[?:?]
            at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.12.2.jar:git-Paper-1594]
            ... 22 more
    Проверял на spigot 1.12.2 и последнем билде бумаги на 1.12.2

    Так же активатор клика по блоку не хочет реагировать на верстак, но на другие блоки реагирует (наковалья или маяк, например)
    Код:
    BLOCK_CLICK:
      anvil:
        block-type: ANVIL
        click-type: RIGHT
        actions:
        - CANCEL_EVENT=true
        - 'CMD_OP=say test'
      craft:
        block-type: CRAFTING_TABLE
        click-type: RIGHT
        actions:
        - CANCEL_EVENT=true
        - 'CMD_OP=say test'
      beacon:
        block-type: BEACON
        click-type: RIGHT
        actions:
        - CANCEL_EVENT=true
        - 'CMD_OP=say test'
    
    Очень надеюсь, что это я криворукий и ошибся, чем на то, что плагин не работает нормально :(
     
  6. SOHIGH

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

    Баллы:
    76
    Код:
    INVENTORY_CLICK:
      inv-craft-result:
        click-type: ANY
        inventory-type: CRAFTING
        slot-type: RESULT
        actions:
        - CANCEL_EVENT=true
        - 'CMD_OP=say test'
      inv-craft-craft:
       click-type: ANY
       inventory-type: CRAFTING
       slot-type: CRAFTING
       actions:
       - CANCEL_EVENT=true
       - 'CMD_OP=say test'
    
    Ты использовал slot вместо slot-type в обоих случаях.


    На счёт верстака:
    Не CRAFTING_TABLE, а WORKBENCH
    Всё легко выяснилось с помощью этого активатора
    Код:
    BLOCK_CLICK:
        bc:
        block-type: ''
        click-type: ANY
        actions:
        - msg=%blocktype%
     
  7. HauserGrim

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

    Баллы:
    96
    Премного благодарен.
    У меня ещё проблемы с одним активатором. Решил сделать сообщения о смерти только в радиусе
    Код:
    PLAYER_DEATH:
      death-any:
        death-cause: ANY
        actions:
        - 'MESSAGE=player:{loc:%PLAYER_LOC% radius:100} %playername% убит %killer-name%'
    
    Но вот результат меня не радует...
    2018-12-18_14.21.53.png
    А при установке gamerule showDeathMessages false пишет только %playername% убит %killer-name%'
     
  8. SOHIGH

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

    Баллы:
    76
    @HauserGrim
    В общем, как-то так. В активаторе PLAYER_DEATH не задействуются никак причины смерти типа лавы, огня и воды..
    Код:
    PLAYER_DEATH:
      1:
        death-cause: ANY
        actions:
        - MESSAGE=player:{loc:%PLAYER_LOC% radius:100} %player% убит %killer-name%
    Этот активатор займёт переменную killer-name только при смерти от моба или игрока.
    Как я понял, ты хочешь заменить все сообщения о смерти игрока? Да? Ну если делать через ReActions, то как я понимаю это можно сделать только с помощью активатора MESSAGE..
     
    Последнее редактирование: 18 дек 2018
  9. HauserGrim

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

    Баллы:
    96
    @SOHIGH
    Сделал вот так и отключил ванилла сообщения геймрулом
    Код:
    PLAYER_DEATH:
      death-pvp:
        death-cause: PVP
        actions:
        - MESSAGE=player:{loc:%PLAYER_LOC% radius:100} %player% убит %killer-name%
      death-pve:
        death-cause: PVE
        actions:
        - MESSAGE=player:{loc:%PLAYER_LOC% radius:100} %player% убит %killer-name%
      death-other:
        death-cause: OTHER
        actions:
        - MESSAGE=player:{loc:%PLAYER_LOC% radius:100} %player% умер
    
    Думаю, мне этого будет вполне достаточно.
     
  10. GIGABAIT

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

    Баллы:
    66
    Имя в Minecraft:
    GIGABAIT
    у меня проблема с плагином
    ReActions на 1.13.2 спигот когда игроки рубят дерево любое им постоянно выпадает дуб в чем причина?
    удалил плагин все стало норм
     
  11. HauserGrim

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

    Баллы:
    96
    Он ломает 1.13. Ты заметил только дуб, но проблем намного больше. На сколько я знаю, обновление плагина не планируется.
    Можешь посмотреть на Skript или Denizen.
     
  12. GIGABAIT

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

    Баллы:
    66
    Имя в Minecraft:
    GIGABAIT
    ясн а есть аналоги какието на 1,13 мне нужно чтоб выполнялась команда кгда игрок станет на плиту или пройдет через нить с крюком
     
  13. HauserGrim

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

    Баллы:
    96
    Или самопис
     
  14. GIGABAIT

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

    Баллы:
    66
    Имя в Minecraft:
    GIGABAIT
    самопис ето че
     
  15. SOHIGH

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

    Баллы:
    76
    @GIGABAIT, самопис - плагин, написанный вручную тобой.
     
  16. GIGABAIT

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

    Баллы:
    66
    Имя в Minecraft:
    GIGABAIT
    аа ето я неумею даж не
    пробовал
     
  17. DyX

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

    Баллы:
    76
    Имя в Minecraft:
    GoODsPie
    Попробуй Denizens, ток, насколько я знаю он работает вместе с Citizens, а это - лишний плагин
     
  18. Astrogen

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

    Баллы:
    76
    Имя в Minecraft:
    Astrogen
    Такая вот проблема:
    Раньше сервер был на 1.8.8, эндердракон в Крае спавнился при помощи РеАкшнс в нужный момент, убивался, ронял яйцо, которое и было главным трофеем. При переезде на 11.2 сначала вообще не спавнился, потом я выяснил, что у него поменялся текстовый ID, спавн стал получаться, НО он не распознается сервером как босс. Сначала жестко тупит - висит на одном месте, а когда наконец начинает летать - боссбар отсутствует и при смерти из него не выпадает яйцо, а портал не спавнится. Конечно, данную проблему можно решить при помощи того же РеАкшнс - и дроп яйца организовать, и портал построить отдельный, неубиваемый, но хотелось бы знать - может каким-то образом можно делать ему пометку, что он босс?
    Вот строка, которой он спавнится, в 188 - все работало как часы (только время не показывало)

     
    Последнее редактирование: 3 янв 2019
  19. HauserGrim

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

    Баллы:
    96
    Кажись, в новых версиях ему что-то указать нужно было чтобы он был нормальным, но вот уже не помню.
     
  20. HauserGrim

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

    Баллы:
    96
    Ребят, действие MONEY_PAY понял, но вот не знаю как правильней списать определённый процент денег или, например в зависимости от уровня. (например: уровень*10)
     

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