geforkt von Mirrors/Paper
89a1469d3f
Their chunk is set to null before removal, so we kept them around.
62 Zeilen
3.5 KiB
Diff
62 Zeilen
3.5 KiB
Diff
From 6895d564dbcdf151c559133974d76b1c22552c24 Mon Sep 17 00:00:00 2001
|
|
From: BillyGalbreath <Blake.Galbreath@GMail.com>
|
|
Date: Sat, 21 Jul 2018 01:51:27 -0500
|
|
Subject: [PATCH] EnderDragon Events
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
index 4ab310cd6b..90f6d58ddd 100644
|
|
--- a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
+++ b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
@@ -65,7 +65,9 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
|
|
this.d.setDuration(200);
|
|
this.d.setParticle(Particles.DRAGON_BREATH);
|
|
this.d.a(new MobEffect(MobEffects.HARM));
|
|
+ if (new com.destroystokyo.paper.event.entity.EnderDragonFlameEvent((org.bukkit.entity.EnderDragon) this.a.getBukkitEntity(), (org.bukkit.entity.AreaEffectCloud) this.d.getBukkitEntity()).callEvent()) // Paper
|
|
this.a.world.addEntity(this.d);
|
|
+ else this.removeAreaEffect(); // Paper
|
|
}
|
|
|
|
}
|
|
@@ -76,6 +78,8 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
|
|
++this.c;
|
|
}
|
|
|
|
+
|
|
+ public void removeAreaEffect() { this.e(); } // Paper - OBFHELPER
|
|
@Override
|
|
public void e() {
|
|
if (this.d != null) {
|
|
diff --git a/src/main/java/net/minecraft/server/DragonControllerStrafe.java b/src/main/java/net/minecraft/server/DragonControllerStrafe.java
|
|
index b466605762..bf15964e78 100644
|
|
--- a/src/main/java/net/minecraft/server/DragonControllerStrafe.java
|
|
+++ b/src/main/java/net/minecraft/server/DragonControllerStrafe.java
|
|
@@ -68,7 +68,9 @@ public class DragonControllerStrafe extends AbstractDragonController {
|
|
EntityDragonFireball entitydragonfireball = new EntityDragonFireball(this.a.world, this.a, d9, d10, d11);
|
|
|
|
entitydragonfireball.setPositionRotation(d6, d7, d8, 0.0F, 0.0F);
|
|
+ if (new com.destroystokyo.paper.event.entity.EnderDragonShootFireballEvent((org.bukkit.entity.EnderDragon) a.getBukkitEntity(), (org.bukkit.entity.DragonFireball) entitydragonfireball.getBukkitEntity()).callEvent()) // Paper
|
|
this.a.world.addEntity(entitydragonfireball);
|
|
+ else entitydragonfireball.die(); // Paper
|
|
this.c = 0;
|
|
if (this.d != null) {
|
|
while (!this.d.b()) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityDragonFireball.java b/src/main/java/net/minecraft/server/EntityDragonFireball.java
|
|
index 239be99c51..2195b83ce2 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityDragonFireball.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityDragonFireball.java
|
|
@@ -40,8 +40,10 @@ public class EntityDragonFireball extends EntityFireball {
|
|
}
|
|
}
|
|
|
|
+ if (new com.destroystokyo.paper.event.entity.EnderDragonFireballHitEvent((org.bukkit.entity.DragonFireball) this.getBukkitEntity(), list.stream().map(EntityLiving::getBukkitLivingEntity).collect(java.util.stream.Collectors.toList()), (org.bukkit.entity.AreaEffectCloud) entityareaeffectcloud.getBukkitEntity()).callEvent()) { // Paper
|
|
this.world.triggerEffect(2006, new BlockPosition(this.locX, this.locY, this.locZ), 0);
|
|
this.world.addEntity(entityareaeffectcloud);
|
|
+ } else entityareaeffectcloud.die(); // Paper
|
|
this.die();
|
|
}
|
|
|
|
--
|
|
2.21.0
|
|
|