geforkt von Mirrors/Paper
b10550736e
Their chunk is set to null before removal, so we kept them around.
59 Zeilen
3.5 KiB
Diff
59 Zeilen
3.5 KiB
Diff
From 0000000000000000000000000000000000000000 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
|
|
@@ -0,0 +0,0 @@ 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
|
|
}
|
|
|
|
}
|
|
@@ -0,0 +0,0 @@ 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
|
|
@@ -0,0 +0,0 @@ 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
|
|
@@ -0,0 +0,0 @@ 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();
|
|
}
|
|
|
|
--
|