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

Нет, к сожалению эффект не накладывается. Учитывая то что всё написано правильно, и выполняются нужные активаторы.(Должны выполнятся)
 
Нет, к сожалению эффект не накладывается. Учитывая то что всё написано правильно, и выполняются нужные активаторы.(Должны выполнятся)
ITEM_CLICK:
WeakShoot:
item: type:BLAZE_ROD
actions:
- SHOOT=damage:2 distance:10 singlehit:true run:{activator:Weak playeronly:true}
EXEC:
Weak:
actions:
- POTION=type:WEAKNESS level:1 time:5 ambient:false

Попробуй так, у меня сработало. Если не будет даваться эффект, то значит проблема в версии.
 
А как называется тошнота в действии Potion?
 
После добавления этого активатора:
Код:
MOB_KILL:
  SkeleContr:
    mob-type: SKELETON
    mob-name: ''
    flags:
    - CHANCE=10
    - '!REGION=mobarena1'
    actions:
    - message=&cИз остатков костей незаметно подобрались чешуйницы...
    - mob_spawn=type:SILVERFISH loc:{%player_loc% add-vector:0,1,0}
    - mob_spawn=type:SILVERFISH loc:{%player_loc% add-vector:0,1,0 radius:3 land:true}
    - mob_spawn=type:SILVERFISH loc:{%player_loc% add-vector:0,1,0 radius:3 land:true}
Появилась следующая ошибка:
Код:
[Server thread/ERROR]: Could not pass event MobKillEvent to ReActions v0.10.2
org.bukkit.event.EventException: null
    at org.bukkit.plugin.EventExecutor$1.execute(EventExecutor.java:46) ~[paperclip.jar:git-Paper-1188]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[paperclip.jar:git-Paper-1188]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[paperclip.jar:git-Paper-1188]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514) [paperclip.jar:git-Paper-1188]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499) [paperclip.jar:git-Paper-1188]
    at me.fromgate.reactions.event.EventManager.raiseMobKillEvent(EventManager.java:119) [ReActions.jar:?]
    at me.fromgate.reactions.RAListener.onDropLoot(RAListener.java:246) [ReActions.jar:?]
    at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor727.execute(Unknown Source) [?:?]
    at org.bukkit.plugin.EventExecutor$1.execute(EventExecutor.java:44) [paperclip.jar:git-Paper-1188]
    at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) [paperclip.jar:git-Paper-1188]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [paperclip.jar:git-Paper-1188]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:514) [paperclip.jar:git-Paper-1188]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:499) [paperclip.jar:git-Paper-1188]
    at org.bukkit.craftbukkit.v1_12_R1.event.CraftEventFactory.callEntityDeathEvent(CraftEventFactory.java:395) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityLiving.die(EntityLiving.java:1130) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntitySkeleton.die(EntitySkeleton.java:46) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityLiving.damageEntity(EntityLiving.java:972) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityMonster.damageEntity(EntityMonster.java:44) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.BlockMagma.stepOn(BlockMagma.java:21) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.Entity.move(Entity.java:892) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityLiving.a(EntityLiving.java:1829) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityLiving.n(EntityLiving.java:2132) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityInsentient.n(EntityInsentient.java:508) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityMonster.n(EntityMonster.java:24) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntitySkeletonAbstract.n(EntitySkeletonAbstract.java:96) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityLiving.B_(EntityLiving.java:1960) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityInsentient.B_(EntityInsentient.java:247) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.EntityMonster.B_(EntityMonster.java:28) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.World.entityJoinedWorld(World.java:1755) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.World.h(World.java:1725) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.World.tickEntities(World.java:1539) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.WorldServer.tickEntities(WorldServer.java:675) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.MinecraftServer.D(MinecraftServer.java:913) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.DedicatedServer.D(DedicatedServer.java:424) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.MinecraftServer.C(MinecraftServer.java:767) [paperclip.jar:git-Paper-1188]
    at net.minecraft.server.v1_12_R1.MinecraftServer.run(MinecraftServer.java:665) [paperclip.jar:git-Paper-1188]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.lang.NullPointerException
 
Build #131
  • Добавлена возможность отлавливать урон моба/игрока от зелий для активатора MOB_DAMAGE
 
Интересная задумка, но почему не обновляется:cry:
 
Можно ли сделать,что бы зомби при респавне получал эффект зелья вечный?
Или что бы просто у него увеличивалась скорость?
Если можно то напишите как.Заранее благодарен,с меня лайк.
 
Как с помощью активаторов изменить урон мобам, например, с шансом 10% нанесется на 50% больше урона?
 
Можно ли сделать,что бы зомби при респавне получал эффект зелья вечный?
Или что бы просто у него увеличивалась скорость?
Если можно то напишите как.Заранее благодарен,с меня лайк.

Только через ванильную команду, типа /effect @e[type=Zombie,name=Valera] speed 1000000
Либо и спавнить моба через ванильную команду - неплохой генератор мобов можно найти на minecraft.tools


Как с помощью активаторов изменить урон мобам, например, с шансом 10% нанесется на 50% больше урона?
Как-то так. Но придется расписывать для каждого моба.
Код:
MOB_DAMAGE:
  IncDamage1:
    mob-type: SKELETON
    mob-name: ''
    flags:
    - chance=10
    actions:
    - var_temp_set=id:damage value:%damage%+%damage%/2
  IncDamage1:
    mob-type: CREEPER
    mob-name: ''
    flags:
    - chance=10
    actions:
    - var_temp_set=id:damage value:%damage%+%damage%/2
 
Добавьте действию LOG возможность записывать информацию в назначеный файл. Ну ппц неудобно когда все логи в одной свалке!
Я бы вывел себе отдельно один чат, отдельно второй, третий... Отдельно системные сообщения, отдельно логи использования команд...

Да, прийдется к каждой команде и сообщению привязывать действие LOG. Но это пустяк я думаю. На производительность никак не должно повлиять.
 
Последнее редактирование:
Только через ванильную команду, типа /effect @e[type=Zombie,name=Valera] speed 1000000
Либо и спавнить моба через ванильную команду - неплохой генератор мобов можно найти на minecraft.tools


Как-то так. Но придется расписывать для каждого моба.
Код:
MOB_DAMAGE:
  IncDamage1:
    mob-type: SKELETON
    mob-name: ''
    flags:
    - chance=10
    actions:
    - var_temp_set=id:damage value:%damage%+%damage%/2
  IncDamage1:
    mob-type: CREEPER
    mob-name: ''
    flags:
    - chance=10
    actions:
    - var_temp_set=id:damage value:%damage%+%damage%/2
Спасибо, я тоже пытался сделать но не понял как делать var_temp_set, я там damage в проценты закрыл.
 
А ведь, в принципе можно удалять essentials и юзать ReActions + mycommand
 
А ведь, в принципе можно удалять essentials и юзать ReActions + mycommand
Именно! Но для удобства надо выводить персональные переменные (VAR_PLAYER) в отдельный файл, индивидуально для каждого игрока (конечно же можно всё в БД, но это не всегда удобно...).
 
Для @fromgate и @maxdikiy к прочтению обязательно:
--------------------------------------------------------------------
С давних пор я пользуюсь ReActions'ом. Плагин, изначально задуманный как универсальный инструмент обработки событий справляется со своими задачами прекрасно, имея в своем распоряжении обширный набор инструментов. Но чего-то не хватает, верно?
ReActions стал бы по настоящему гибким и универсальным если бы пользователь мог вносить в него свои изменения, создавая свои инструменты, редактировать существующие под свои нужные, добавлять совместимость с ReActions'ом в код других плагинов.
К сожалению, сейчас для этого нужно проделать весьма много работы, ибо средств для этого в плагине почти нет.
Поэтому, я считаю, для плагина нужно разработать собственное API.

Во-первых, это значительно упростит жизнь создателям серверов, хотя бы самую малость знакомых с API Bukkit'a.
Вместо того, чтобы писать целый "самопис" под свои нужды можно просто написать маленький аддон для ReAction'са и использовать его вместе с в "ванильными" средствами плагина. Вместо того, чтобы делать костыли при подключении других плагинов можно просто немного переписать код стороннего плагина, внедрив в него небольшую функцию. Так же эта возможность заинтересует разработчиков собственных плагинов добавить в свои детища совместимость с ReActions'ом, ибо возможность в разы увеличить возможности плагина всего лишь добавив совместимость мало кого оставит равнодушным

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

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


А еще API значительно упростит жизнь разработчикам - вместо того, чтобы работать над рутинным созданием новых активаторов, действий и флагов они займутся реально сложными, трудоемкими, глобальными вещами, определяющими общую концепцию и функциональность плагина.

С аддонами ReActions станет модульным - разработчик сможет собрать свою сборку плагин под свои нужды и предпочтения, не нагружая сервер бесполезными и ненужными для него функциями. Даже разработчикам будет гораздо проще разработать еще один небольшой файл с какими-то функциями, нежели встраивать их в уже весьма объемное ядро плагина.

Ну, в заключение скажу: API станет новым витком для развития ReActions'a. Пользователи будут рады возможности легко доработать плагин, Разработчики - возможности расширить функциональности своих работ.
С API ReActions станет по-настоящему гибким, простым и многофункциональным инструментом!

------------------------------------------------------------------------------------------------

Ну, лично я готов оказать посильную помощь в разработке: написание документации или вики, например.
И обещаю самостоятельно разработать парочку аддонов
 
@AtomicScience
Самое главное забыли. Что именно нужно от API.
Я не верю, что для ReActions кто-то будет писать отдельные модули. Т.е. добавлять плагину поддержку «под-плагинов» — когда-то я об этом задумывался, но при трезвом размышлении отказался.
Единственный плюс в этом может заключаться в том, что можно весь ReActions разбить на модули и загружать по мере необходимости.

Обращаться к ReActions из сторонних плагинов в принципе можно. Но прецедентов не было.

Собственно по этому поводу возникает пара вопросов:
- Для чего? Если ты пишешь плагин, то вероятность того, решишь состыковать его со скриптовым движком минимальна. Я бы не стал ;)
- Что может потребоваться от этого API? Поскольку, плагин построен на нескольких статических классах, которые достаточно завершены, то вполне можно использовать их, к примеру для того чтобы читать значение переменных.
Можно привязываться к событиям, которые реализует для собсвтенных нужд ReActions, можно выполнить какие-то активаторы и т.п.

Да и по большому счёту, можно считать, что API есть. И если кому-то реально что-то нужно сделать через ReActions — это возможно. Пока таких попыток не было. Появятся, будут вопросы — можно будет рассуждать и о развитии API.
 
Последнее редактирование:
Назад
Верх