mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-09 06:50:32 +08:00
18c3716c49
This enables us a fast reference to the entities current chunk instead of having to look it up by hashmap lookups. We also store counts by type to further enable other performance optimizations in later patches.
25 lines
1.3 KiB
Diff
25 lines
1.3 KiB
Diff
From a98fa1d1bf527e9056477711ad1e3bfef9e5b7b2 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 21 Mar 2018 20:52:07 -0400
|
|
Subject: [PATCH] Fix Dragon Server Crashes
|
|
|
|
If the dragon tries to find "ground" and hits a hole, or off edge,
|
|
it will infinitely keep looking for non air and eventually crash.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
index 054a7ef6c..deee5c4cc 100644
|
|
--- a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
+++ b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
@@ -51,7 +51,7 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
|
|
double d2 = this.a.bw.locY + (double) (this.a.bw.length / 2.0F);
|
|
BlockPosition.MutableBlockPosition blockposition_mutableblockposition = new BlockPosition.MutableBlockPosition(MathHelper.floor(d0), MathHelper.floor(d2), MathHelper.floor(d1));
|
|
|
|
- while (this.a.world.isEmpty(blockposition_mutableblockposition)) {
|
|
+ while (this.a.world.isEmpty(blockposition_mutableblockposition) && d2 > 0) { // Paper
|
|
--d2;
|
|
blockposition_mutableblockposition.c(MathHelper.floor(d0), MathHelper.floor(d2), MathHelper.floor(d1));
|
|
}
|
|
--
|
|
2.18.0
|
|
|