When the player breaks the end crystal on the exit portal, the code checks to see if it is one of the exit portal crystals.
When modding the behavior of end crystals to drop themselves, I came across this bug.
Because we have a list of EntityReferences instead of actual Entities, the contains method will never evaluate to true. [See image 1]
The only reason that the vanilla implementation works is that
List<EndCrystal> respawnCrystals = this.respawnCrystals.stream().map((e) -> (EndCrystal)e.getEntity(this.level, EndCrystal.class)).filter(Objects::nonNull).toList();
if (respawnCrystals.isEmpty()) {
this.abortRespawnSequence();
return;
}it checks if ALL end crystals are gone, which coincidentally happens to be what happens to exit portal end crystals chaining together when they explode.
Attachments
Comments 3
Does this issue have any impact on vanilla gameplay?
This issue is being temporarily resolved as Awaiting Response. Once the requested information has been delivered, the report will be reopened automatically.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support (Technical Issues) – 📧 Microsoft Support (Account Issues)
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki
Thank you for helping us improve Minecraft! We saved your files: