mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-27 04:55:47 +01:00
03a4e7ac75
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 37262de8 PR-812: Add Registry#match(String) d6b40162 SPIGOT-4569: Add more BlockData API f9691891 PR-809: Throw a more clear error for BlockIterators with zero direction, add Vector#isZero() 91e79e19 PR-804: Added methods to get translation keys for materials, itemstacks and more 426b00d3 PR-795: Add new BiomeParameterPoint passed to BiomeProvider#getBiome 0e91ea52 SPIGOT-7224: Add events for brewing stands and campfires starting their actions CraftBukkit Changes: a50301aa5 Fix issues with fluid tag conversion and fluid #isTagged 6aeb5e4c3 SPIGOT-4569: Implement more BlockData API 7dbf862c2 PR-1131: Added methods to get translation keys for materials, itemstacks and more 7167588b1 PR-1117: Add new BiomeParameterPoint passed to BiomeProvider#getBiome 7c44152eb SPIGOT-7224: Add events for brewing stands and campfires starting their actions
43 lines
2.0 KiB
Diff
43 lines
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Sat, 19 Mar 2022 12:12:22 +0000
|
|
Subject: [PATCH] Buffer OOB setBlock calls
|
|
|
|
lets debug mode throw a trace in order to potentially see where
|
|
such calls are cascading from easier, but, generally, if you see one setBlock
|
|
call, you're gonna see more, and this just potentially causes a flood of logs
|
|
which can cause issues for slower terminals, etc.
|
|
|
|
We can limit the flood by just allowing one for a single gen region,
|
|
we'll also only gen a trace for the first one, I see no real pressing need
|
|
to generate more, given that that would *massively* negate this patch otherwise
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/WorldGenRegion.java b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
|
index 73b96f804079288e9c5fcc11da54e61e89a6782a..52fd12c474c01f3b53d0f6596b7a6fafee52bd0d 100644
|
|
--- a/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
|
+++ b/src/main/java/net/minecraft/server/level/WorldGenRegion.java
|
|
@@ -275,6 +275,7 @@ public class WorldGenRegion implements WorldGenLevel {
|
|
}
|
|
}
|
|
|
|
+ private boolean hasSetFarWarned = false; // Paper
|
|
@Override
|
|
public boolean ensureCanWrite(BlockPos pos) {
|
|
int i = SectionPos.blockToSectionCoord(pos.getX());
|
|
@@ -294,7 +295,15 @@ public class WorldGenRegion implements WorldGenLevel {
|
|
|
|
return true;
|
|
} else {
|
|
+ // Paper start
|
|
+ if (!hasSetFarWarned) {
|
|
Util.logAndPauseIfInIde("Detected setBlock in a far chunk [" + i + ", " + j + "], pos: " + pos + ", status: " + this.generatingStatus + (this.currentlyGenerating == null ? "" : ", currently generating: " + (String) this.currentlyGenerating.get()));
|
|
+ hasSetFarWarned = true;
|
|
+ if (this.getServer() != null && this.getServer().isDebugging()) {
|
|
+ io.papermc.paper.util.TraceUtil.dumpTraceForThread("far setBlock call");
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
return false;
|
|
}
|
|
}
|