mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-05 10:20:53 +01:00
42 lines
1.7 KiB
Diff
42 lines
1.7 KiB
Diff
--- a/net/minecraft/server/DragonControllerManager.java
|
|
+++ b/net/minecraft/server/DragonControllerManager.java
|
|
@@ -2,6 +2,10 @@
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
+// CraftBukkit start
|
|
+import org.bukkit.craftbukkit.entity.CraftEnderDragon;
|
|
+import org.bukkit.event.entity.EnderDragonChangePhaseEvent;
|
|
+// CraftBukkit end
|
|
|
|
public class DragonControllerManager {
|
|
|
|
@@ -21,6 +25,19 @@
|
|
this.currentDragonController.e();
|
|
}
|
|
|
|
+ // CraftBukkit start - Call EnderDragonChangePhaseEvent
|
|
+ EnderDragonChangePhaseEvent event = new EnderDragonChangePhaseEvent(
|
|
+ (CraftEnderDragon) this.enderDragon.getBukkitEntity(),
|
|
+ (this.currentDragonController == null) ? null : CraftEnderDragon.getBukkitPhase(this.currentDragonController.getControllerPhase()),
|
|
+ CraftEnderDragon.getBukkitPhase(dragoncontrollerphase)
|
|
+ );
|
|
+ this.enderDragon.world.getServer().getPluginManager().callEvent(event);
|
|
+ if (event.isCancelled()) {
|
|
+ return;
|
|
+ }
|
|
+ dragoncontrollerphase = CraftEnderDragon.getMinecraftPhase(event.getNewPhase());
|
|
+ // CraftBukkit end
|
|
+
|
|
this.currentDragonController = this.b(dragoncontrollerphase);
|
|
if (!this.enderDragon.world.isClientSide) {
|
|
this.enderDragon.getDataWatcher().set(EntityEnderDragon.PHASE, dragoncontrollerphase.b());
|
|
@@ -42,6 +59,6 @@
|
|
this.dragonControllers[i] = dragoncontrollerphase.a(this.enderDragon);
|
|
}
|
|
|
|
- return this.dragonControllers[i];
|
|
+ return (T) this.dragonControllers[i]; // CraftBukkit - decompile error
|
|
}
|
|
}
|