8b8e15fb63
This patch, while would have been nice, would just take too much in order to re-implement it to retain and handle all of the state changes possible, and complicates retaining state properly Fix SpongeAbsortEvent handling Only process drops when the block is actually going to be removed
25 Zeilen
1.3 KiB
Diff
25 Zeilen
1.3 KiB
Diff
From e97afba9cc1e570e5e20d21303566e319cb6b325 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 da89a69ed6..45f96078c5 100644
|
|
--- a/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
+++ b/src/main/java/net/minecraft/server/DragonControllerLandedFlame.java
|
|
@@ -49,7 +49,7 @@ public class DragonControllerLandedFlame extends AbstractDragonControllerLanded
|
|
double d2 = this.a.bD.locY + (double)(this.a.bD.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.19.1
|
|
|