Files

34 lines
1.5 KiB
Diff

--- ../src-base/minecraft/net/minecraft/entity/boss/dragon/phase/PhaseManager.java
+++ ../src-work/minecraft/net/minecraft/entity/boss/dragon/phase/PhaseManager.java
@@ -3,6 +3,8 @@
import net.minecraft.entity.boss.EntityDragon;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.bukkit.craftbukkit.entity.CraftEnderDragon;
+import org.bukkit.event.entity.EnderDragonChangePhaseEvent;
public class PhaseManager
{
@@ -26,8 +28,20 @@
this.phase.removeAreaEffect();
}
- this.phase = this.getPhase(phaseIn);
+ // CraftBukkit start - Call EnderDragonChangePhaseEvent
+ EnderDragonChangePhaseEvent event = new EnderDragonChangePhaseEvent(
+ (CraftEnderDragon) this.dragon.getBukkitEntity(),
+ (this.phase == null) ? null : CraftEnderDragon.getBukkitPhase(this.phase.getPhaseList()),
+ CraftEnderDragon.getBukkitPhase(phaseIn)
+ );
+ this.dragon.worldObj.getServer().getPluginManager().callEvent(event);
+ if (event.isCancelled()) {
+ return;
+ }
+ phaseIn = CraftEnderDragon.getMinecraftPhase(event.getNewPhase());
+ // CraftBukkit end
+ this.phase = this.getPhase(phaseIn);
if (!this.dragon.worldObj.isRemote)
{
this.dragon.getDataManager().set(EntityDragon.PHASE, Integer.valueOf(phaseIn.getId()));