summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nms-patches/EntityEvokerFangs.patch12
-rw-r--r--src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java2
2 files changed, 14 insertions, 0 deletions
diff --git a/nms-patches/EntityEvokerFangs.patch b/nms-patches/EntityEvokerFangs.patch
new file mode 100644
index 00000000..0e392ed5
--- /dev/null
+++ b/nms-patches/EntityEvokerFangs.patch
@@ -0,0 +1,12 @@
+--- a/net/minecraft/server/EntityEvokerFangs.java
++++ b/net/minecraft/server/EntityEvokerFangs.java
+@@ -108,7 +108,9 @@
+
+ if (entityliving.isAlive() && !entityliving.be() && entityliving != entityliving1) {
+ if (entityliving1 == null) {
++ org.bukkit.craftbukkit.event.CraftEventFactory.entityDamage = this; // CraftBukkit
+ entityliving.damageEntity(DamageSource.MAGIC, 6.0F);
++ org.bukkit.craftbukkit.event.CraftEventFactory.entityDamage = null; // CraftBukkit
+ } else {
+ if (entityliving1.r(entityliving)) {
+ return;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index be0f46f9..33020b90 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -520,6 +520,8 @@ public class CraftEventFactory {
cause = DamageCause.FALL;
} else if (source == DamageSource.DRAGON_BREATH) {
cause = DamageCause.DRAGON_BREATH;
+ } else if (source == DamageSource.MAGIC) {
+ cause = DamageCause.MAGIC;
} else {
throw new IllegalStateException(String.format("Unhandled damage of %s by %s from %s", entity, damager.getHandle(), source.translationIndex));
}