@AtomicScience
Вот, как я себе представлял новый ReActions. Покажу на примере, когда сущность получает повреждение от блока:
Перейдём сначала к документации:
https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/entity/EntityDamageByBlockEvent.html
Событие имеет вид:
public EntityDamageByBlockEvent(Block damager,
Entity damagee,
EntityDamageEvent.DamageCause cause,
double damage)
Подглядим, какие методы он использует:
damager: Можно узнать на какой блок наступила сущность
damagee: Какая сущность получила урон
cause: Причина урона
damage: Можно узнать, значение нанесённого урона
Существуют также родительские методы, такие как:
setCancelled: Отменить событие
Как в этом случае может выглядеть активатор:
Код:
Activator_name:
event: EntityDamageByBlockEvent
damager: block:{type:MAGMA} | ALL # Сравниваем блок, установленный в конфиге с блоком, на который наступила сущность
damagee: PLAYER|ZOMBIE|..|ALL # Сравниваем сущность, установленную в конфиге с сущностью, которая получила урон
cause: BLOCK_EXPLOSION|ALL # Сравниваем причину урона, установленную в конфиге с причиной, которая которая вызвала урон
damage: 0..20 # Если необходимо, сравниваем полученное повреждение
setCancelled: true|false # можем отменить событие или оставить
flags: []
actions: []
reactions: []
Иными словами, зная событие и методы, которые в нём используются, мы можем отловить всё что угодно. При этом не нужно будет тратить время на разработку активатора с новым событием. Единственное, придётся разработать обработку всех этих методов, которые входят во все события. Что хорошо, их не так много.
Что касается флагов и действий, то я ещё не думал как реализовать, возможно таким же образом.
Спасибо.