--- a/net/minecraft/world/level/dimension/end/EnumDragonRespawn.java
+++ b/net/minecraft/world/level/dimension/end/EnumDragonRespawn.java
@@ -13,6 +13,10 @@
 import net.minecraft.world.level.levelgen.feature.WorldGenerator;
 import net.minecraft.world.level.levelgen.feature.configurations.WorldGenFeatureEndSpikeConfiguration;
 
+// CraftBukkit start
+import org.bukkit.event.entity.EntityRemoveEvent;
+// CraftBukkit end
+
 public enum EnumDragonRespawn {
 
     START {
@@ -27,7 +31,7 @@
                 entityendercrystal.setBeamTarget(blockposition1);
             }
 
-            enderdragonbattle.setRespawnStage(null.PREPARING_TO_SUMMON_PILLARS);
+            enderdragonbattle.setRespawnStage(PREPARING_TO_SUMMON_PILLARS); // CraftBukkit - decompile error
         }
     },
     PREPARING_TO_SUMMON_PILLARS {
@@ -38,7 +42,7 @@
                     worldserver.levelEvent(3001, new BlockPosition(0, 128, 0), 0);
                 }
             } else {
-                enderdragonbattle.setRespawnStage(null.SUMMONING_PILLARS);
+                enderdragonbattle.setRespawnStage(SUMMONING_PILLARS); // CraftBukkit - decompile error
             }
 
         }
@@ -81,7 +85,7 @@
                         WorldGenerator.END_SPIKE.place(worldgenfeatureendspikeconfiguration, worldserver, worldserver.getChunkSource().getGenerator(), RandomSource.create(), new BlockPosition(worldgenender_spike.getCenterX(), 45, worldgenender_spike.getCenterZ()));
                     }
                 } else if (flag1) {
-                    enderdragonbattle.setRespawnStage(null.SUMMONING_DRAGON);
+                    enderdragonbattle.setRespawnStage(SUMMONING_DRAGON); // CraftBukkit - decompile error
                 }
             }
 
@@ -94,7 +98,7 @@
             EntityEnderCrystal entityendercrystal;
 
             if (i >= 100) {
-                enderdragonbattle.setRespawnStage(null.END);
+                enderdragonbattle.setRespawnStage(END); // CraftBukkit - decompile error
                 enderdragonbattle.resetSpikeCrystals();
                 iterator = list.iterator();
 
@@ -102,7 +106,7 @@
                     entityendercrystal = (EntityEnderCrystal) iterator.next();
                     entityendercrystal.setBeamTarget((BlockPosition) null);
                     worldserver.explode(entityendercrystal, entityendercrystal.getX(), entityendercrystal.getY(), entityendercrystal.getZ(), 6.0F, World.a.NONE);
-                    entityendercrystal.discard();
+                    entityendercrystal.discard(EntityRemoveEvent.Cause.EXPLODE); // CraftBukkit - add Bukkit remove cause
                 }
             } else if (i >= 80) {
                 worldserver.levelEvent(3001, new BlockPosition(0, 128, 0), 0);
