Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-22 14:28:09 +01:00
65 Zeilen
3.0 KiB
Diff
65 Zeilen
3.0 KiB
Diff
|
--- a/net/minecraft/server/DragonControllerManager.java
|
||
|
+++ b/net/minecraft/server/DragonControllerManager.java
|
||
|
@@ -2,32 +2,44 @@
|
||
|
|
||
|
import org.apache.logging.log4j.LogManager;
|
||
|
import org.apache.logging.log4j.Logger;
|
||
|
+import org.bukkit.craftbukkit.entity.CraftEnderDragon;
|
||
|
+import org.bukkit.entity.EnderDragon;
|
||
|
+import org.bukkit.event.entity.EnderDragonChangePhaseEvent;
|
||
|
|
||
|
public class DragonControllerManager {
|
||
|
|
||
|
private static final Logger a = LogManager.getLogger();
|
||
|
- private final EntityEnderDragon b;
|
||
|
- private final IDragonController[] c = new IDragonController[DragonControllerPhase.c()];
|
||
|
- private IDragonController d;
|
||
|
+ private final EntityEnderDragon b; // PAIL: Rename enderDragon
|
||
|
+ private final IDragonController[] c = new IDragonController[DragonControllerPhase.c()]; // PAIL: Rename dragonControllers
|
||
|
+ private IDragonController d; // PAIL: Rename currentDragonController
|
||
|
|
||
|
public DragonControllerManager(EntityEnderDragon entityenderdragon) {
|
||
|
this.b = entityenderdragon;
|
||
|
this.a(DragonControllerPhase.k);
|
||
|
}
|
||
|
|
||
|
- public void a(DragonControllerPhase<?> dragoncontrollerphase) {
|
||
|
- if (this.d == null || dragoncontrollerphase != this.d.i()) {
|
||
|
+ public void a(DragonControllerPhase<?> dragoncontrollerphase) { // PAIL: Rename setControllerPhase
|
||
|
+ if (this.d == null || dragoncontrollerphase != this.d.i()) { // PAIL: Rename getControllerPhase
|
||
|
if (this.d != null) {
|
||
|
- this.d.e();
|
||
|
+ this.d.e(); // PAIL: Rename
|
||
|
}
|
||
|
|
||
|
- this.d = this.b(dragoncontrollerphase);
|
||
|
+ // CraftBukkit start - Call EnderDragonChangePhaseEvent
|
||
|
+ EnderDragonChangePhaseEvent event = new EnderDragonChangePhaseEvent((CraftEnderDragon) this.b.getBukkitEntity(), this.d == null ? null : CraftEnderDragon.getBukkitPhase(this.d.i()), CraftEnderDragon.getBukkitPhase(dragoncontrollerphase));
|
||
|
+ this.b.world.getServer().getPluginManager().callEvent(event);
|
||
|
+ if (event.isCancelled()) {
|
||
|
+ return;
|
||
|
+ }
|
||
|
+ dragoncontrollerphase = CraftEnderDragon.getMinecraftPhase(event.getNewPhase());
|
||
|
+ // CraftBukkit end
|
||
|
+
|
||
|
+ this.d = this.b(dragoncontrollerphase); // PAIL: Rename getDragonController
|
||
|
if (!this.b.world.isClientSide) {
|
||
|
- this.b.getDataWatcher().set(EntityEnderDragon.a, Integer.valueOf(dragoncontrollerphase.b()));
|
||
|
+ this.b.getDataWatcher().set(EntityEnderDragon.a, Integer.valueOf(dragoncontrollerphase.b())); // PAIL: Rename getId
|
||
|
}
|
||
|
|
||
|
DragonControllerManager.a.debug("Dragon is now in phase {} on the {}", new Object[] { dragoncontrollerphase, this.b.world.isClientSide ? "client" : "server"});
|
||
|
- this.d.d();
|
||
|
+ this.d.d(); // PAIL: Rename reset
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@@ -42,6 +54,6 @@
|
||
|
this.c[i] = dragoncontrollerphase.a(this.b);
|
||
|
}
|
||
|
|
||
|
- return this.c[i];
|
||
|
+ return (T) this.c[i];
|
||
|
}
|
||
|
}
|