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

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

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

вообщем, почитайте, лишним не будет.
 
Собственно кто может подсказать что бы работал магазин. Тыкаешь по предмету с лором "Цена: 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.
 
учился по статье с вики, довольно подробно расписано как и что работает.
конкретно для вас, должно выглядеть как-то так:
- REGEX=input:{откуда берём значение, переменная отвечающая за предмет} regex:{(^цена: )*}
возможно это и с ошибкой, давно не работал ;)

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

вообщем, почитайте, лишним не будет.
это уже куда в сторону программирование явно идет -_-'
 
Прошу помощи, активатор клика в инвентаре крафта не работает и вызывает ошибку в консоли.
Код:
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'
Очень надеюсь, что это я криворукий и ошибся, чем на то, что плагин не работает нормально :(
 
Прошу помощи, активатор клика в инвентаре крафта не работает и вызывает ошибку в консоли.
Код:
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%
 
Премного благодарен.
У меня ещё проблемы с одним активатором. Решил сделать сообщения о смерти только в радиусе
Код:
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%'
 
@HauserGrim
В общем, как-то так. В активаторе PLAYER_DEATH не задействуются никак причины смерти типа лавы, огня и воды..
Код:
PLAYER_DEATH:
  1:
    death-cause: ANY
    actions:
    - MESSAGE=player:{loc:%PLAYER_LOC% radius:100} %player% убит %killer-name%
Этот активатор займёт переменную killer-name только при смерти от моба или игрока.
Как я понял, ты хочешь заменить все сообщения о смерти игрока? Да? Ну если делать через ReActions, то как я понимаю это можно сделать только с помощью активатора MESSAGE..
 
Последнее редактирование:
@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% умер
Думаю, мне этого будет вполне достаточно.
 
у меня проблема с плагином
ReActions на 1.13.2 спигот когда игроки рубят дерево любое им постоянно выпадает дуб в чем причина?
удалил плагин все стало норм
 
у меня проблема с плагином
ReActions на 1.13.2 спигот когда игроки рубят дерево любое им постоянно выпадает дуб в чем причина?
удалил плагин все стало норм
Он ломает 1.13. Ты заметил только дуб, но проблем намного больше. На сколько я знаю, обновление плагина не планируется.
Можешь посмотреть на Skript или Denizen.
 
ясн а есть аналоги какието на 1,13 мне нужно чтоб выполнялась команда кгда игрок станет на плиту или пройдет через нить с крюком
 
аа ето я неумею даж не
пробовал
 
Такая вот проблема:
Раньше сервер был на 1.8.8, эндердракон в Крае спавнился при помощи РеАкшнс в нужный момент, убивался, ронял яйцо, которое и было главным трофеем. При переезде на 11.2 сначала вообще не спавнился, потом я выяснил, что у него поменялся текстовый ID, спавн стал получаться, НО он не распознается сервером как босс. Сначала жестко тупит - висит на одном месте, а когда наконец начинает летать - боссбар отсутствует и при смерти из него не выпадает яйцо, а портал не спавнится. Конечно, данную проблему можно решить при помощи того же РеАкшнс - и дроп яйца организовать, и портал построить отдельный, неубиваемый, но хотелось бы знать - может каким-то образом можно делать ему пометку, что он босс?
Вот строка, которой он спавнится, в 188 - все работало как часы (только время не показывало)

- MOB_SPAWN=type:ENDER_DRAGON name:{&4&lАнкалагон} potion:SPEED:5 xp:4000-6000 health:600 dmg:3 loc:dragon_resp
 
Последнее редактирование:
Ребят, действие MONEY_PAY понял, но вот не знаю как правильней списать определённый процент денег или, например в зависимости от уровня. (например: уровень*10)
 
Назад
Верх