Reset Ender Crystals on Dragon Spawn - Fixes #3522

Crystals can end up in a bad state in certain conditions which causes
an exception on the expected number of crystals going negative.

This ensures the crystals/pillars are in expected state when the dragon spawns.
This commit is contained in:
Aikar 2020-10-11 16:11:57 -04:00
parent 01b1971a43
commit 6eda4251f3
No known key found for this signature in database
GPG key ID: 401ADFC9891FAAFE

View file

@ -0,0 +1,24 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Wed, 1 Jun 2016 23:29:17 -0400
Subject: [PATCH] Reset Ender Crystals on Dragon Spawn
Crystals can end up in a bad state in certain conditions which causes
an exception on the expected number of crystals going negative.
This ensures the crystals/pillars are in expected state when the dragon spawns.
See #3522
diff --git a/src/main/java/net/minecraft/server/EnderDragonBattle.java b/src/main/java/net/minecraft/server/EnderDragonBattle.java
index 47182c5004f8023faeecec14a7fd090d40a14270..95ecf9dd511836cc2f70173f07234ef8822d6038 100644
--- a/src/main/java/net/minecraft/server/EnderDragonBattle.java
+++ b/src/main/java/net/minecraft/server/EnderDragonBattle.java
@@ -403,6 +403,7 @@ public class EnderDragonBattle {
entityenderdragon.setPositionRotation(0.0D, 128.0D, 0.0D, this.world.random.nextFloat() * 360.0F, 0.0F);
this.world.addEntity(entityenderdragon);
this.dragonUUID = entityenderdragon.getUniqueID();
+ this.resetCrystals(); // Paper
return entityenderdragon;
}