mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-18 08:57:44 +01:00
Updated Upstream (Paper)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@6d63005 Fix setEggCount method from TurtleLayEggEvent (#8385) PaperMC/Paper@abe53a7 Fix typos in isTickingWorlds API javadocs (#8382) PaperMC/Paper@01a1387 Rewrite chunk system (#8177)
This commit is contained in:
@@ -4,64 +4,49 @@ Date: Fri, 1 Jul 2022 04:03:37 -0500
|
||||
Subject: [PATCH] Remove Timings
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java
|
||||
index e9070b6158e7e8c2dd33a9dcb20898a2f0d86e48..c8c019aea915ebb089f2ebe45bbcd1b5317c629f 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkLoadTask.java
|
||||
@@ -89,7 +89,7 @@ public final class ChunkLoadTask extends ChunkTask {
|
||||
|
||||
final ChunkMap chunkManager = this.world.getChunkSource().chunkMap;
|
||||
|
||||
- try (Timing ignored = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) {
|
||||
+ //try (Timing ignored = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Purpur
|
||||
final ChunkSerializer.InProgressChunkHolder chunkHolder;
|
||||
|
||||
// apply fixes
|
||||
@@ -123,7 +123,7 @@ public final class ChunkLoadTask extends ChunkTask {
|
||||
}
|
||||
|
||||
this.complete(chunkHolder);
|
||||
- }
|
||||
+ //} // Purpur
|
||||
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
|
||||
index 6513438d01a3c7955e61a77b57385baf487aeed8..75bcbfdd657f6be95d76a416a8a32f9cd562c931 100644
|
||||
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
|
||||
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
|
||||
@@ -901,9 +901,9 @@ public final class ChunkHolderManager {
|
||||
}
|
||||
|
||||
private void complete(final ChunkSerializer.InProgressChunkHolder holder) {
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java
|
||||
index 0d245ad7d19b11e946e0b5b43bf2181292297210..49f3a4e66ea38e80f8096071003500513b750584 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/io/chunk/ChunkSaveTask.java
|
||||
@@ -34,7 +34,7 @@ public final class ChunkSaveTask extends ChunkTask {
|
||||
// can be executed asynchronously or synchronously
|
||||
final CompoundTag compound;
|
||||
public boolean processTicketUpdates() {
|
||||
- co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager
|
||||
+ //co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager // Purpur
|
||||
return this.processTicketUpdates(true, true, null);
|
||||
- } finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager
|
||||
+ //} finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager // Purpur
|
||||
}
|
||||
|
||||
- try (Timing ignored = this.world.timings.chunkUnloadDataSave.startTimingIfSync()) {
|
||||
+ try /*(Timing ignored = this.world.timings.chunkUnloadDataSave.startTimingIfSync())*/ { // Purpur
|
||||
compound = ChunkSerializer.saveChunk(this.world, this.chunk, this.asyncSaveData);
|
||||
} catch (final Throwable ex) {
|
||||
// has a plugin modified something it should not have and made us CME?
|
||||
@@ -43,7 +43,7 @@ public final class ChunkSaveTask extends ChunkTask {
|
||||
// Note: We add to the server thread queue here since this is what the server will drain tasks from
|
||||
// when waiting for chunks
|
||||
ChunkTaskManager.queueChunkWaitTask(() -> {
|
||||
- try (Timing ignored = this.world.timings.chunkUnloadDataSave.startTiming()) {
|
||||
+ //try (Timing ignored = this.world.timings.chunkUnloadDataSave.startTiming()) { // Purpur
|
||||
CompoundTag data = PaperFileIOThread.FAILURE_VALUE;
|
||||
private static final ThreadLocal<List<ChunkProgressionTask>> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>();
|
||||
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
|
||||
index 9a4ec0f1fb3bac0e84e6bd3aaeb77f44e248aadb..4d285d7c0cbc0a84a11e0c403dc91a9626757f06 100644
|
||||
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
|
||||
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/NewChunkHolder.java
|
||||
@@ -1747,7 +1747,7 @@ public final class NewChunkHolder {
|
||||
boolean canSavePOI = !(chunk instanceof LevelChunk levelChunk && levelChunk.mustNotSave) && (poi != null && poi.isDirty());
|
||||
boolean canSaveEntities = entities != null;
|
||||
|
||||
try {
|
||||
@@ -54,7 +54,7 @@ public final class ChunkSaveTask extends ChunkTask {
|
||||
}
|
||||
- try (co.aikar.timings.Timing ignored = this.world.timings.chunkSave.startTiming()) { // Paper
|
||||
+ //try (co.aikar.timings.Timing ignored = this.world.timings.chunkSave.startTiming()) { // Paper // Purpur
|
||||
if (canSaveChunk) {
|
||||
canSaveChunk = this.saveChunk(chunk, unloading);
|
||||
}
|
||||
@@ -1761,7 +1761,7 @@ public final class NewChunkHolder {
|
||||
this.lastEntityUnload = null;
|
||||
}
|
||||
}
|
||||
- }
|
||||
+ //} // Purpur
|
||||
|
||||
ChunkSaveTask.this.complete(data);
|
||||
- }
|
||||
+ // } // Purpur
|
||||
});
|
||||
|
||||
return; // the main thread will now complete the data
|
||||
return executedUnloadTask | canSaveChunk | canSaveEntities | canSavePOI;
|
||||
}
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
index 2eb30c6c6f1354a559a7b8c14c36a9970bdf2a42..d9f5f48fbb67d7f8dbfc0b7fa8fe0c294a7e8f0d 100644
|
||||
index 54bca103347e89f116fb7fbf37449a32ac094286..a7f4b791894c5d8b7af4b0c067cf167b29272a27 100644
|
||||
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
||||
@@ -68,14 +68,14 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||
@@ -67,14 +67,14 @@ public class GlobalConfiguration extends ConfigurationPart {
|
||||
|
||||
@Override
|
||||
public void postProcess() {
|
||||
@@ -103,10 +88,10 @@ index 8bc0cb9ad5bb4e76d962ff54305e2c08e279a17b..e8efbbeece7e866c6c4d7489677d2d9e
|
||||
PacketUtils.LOGGER.debug("Ignoring packet due to disconnection: {}", packet);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d72f253cc 100644
|
||||
index bc80783d36d46fb138bfa6f2e5e84679db0a68c1..7063ef7d547714d6647290e36da3a07b3b946871 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1428,15 +1428,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1408,15 +1408,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public void onServerExit() {}
|
||||
|
||||
public void tickServer(BooleanSupplier shouldKeepTicking) {
|
||||
@@ -125,7 +110,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
// Paper end
|
||||
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper
|
||||
|
||||
@@ -1488,9 +1488,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1468,9 +1468,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Paper end
|
||||
io.papermc.paper.util.CachedLists.reset(); // Paper
|
||||
// Paper start - move executeAll() into full server tick timing
|
||||
@@ -137,7 +122,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
// Paper end
|
||||
// Paper start
|
||||
long endTime = System.nanoTime();
|
||||
@@ -1512,29 +1512,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1492,29 +1492,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.frameTimer.logFrameDuration(i1 - i);
|
||||
this.profiler.pop();
|
||||
org.spigotmc.WatchdogThread.tick(); // Spigot
|
||||
@@ -175,7 +160,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
// Send time updates to everyone, it will get the right time from the world the player is in.
|
||||
// Paper start - optimize time updates
|
||||
for (final ServerLevel world : this.getAllLevels()) {
|
||||
@@ -1554,7 +1554,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1534,7 +1534,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
// Paper end
|
||||
@@ -184,7 +169,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
|
||||
this.isIteratingOverLevels = true; // Paper
|
||||
Iterator iterator = this.getAllLevels().iterator(); // Paper - move down
|
||||
@@ -1579,14 +1579,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1559,14 +1559,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.profiler.push("tick");
|
||||
|
||||
try {
|
||||
@@ -201,7 +186,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
} catch (Throwable throwable) {
|
||||
// Spigot Start
|
||||
CrashReport crashreport;
|
||||
@@ -1609,24 +1609,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1589,24 +1589,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.isIteratingOverLevels = false; // Paper
|
||||
|
||||
this.profiler.popPush("connection");
|
||||
@@ -232,7 +217,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
|
||||
this.profiler.pop();
|
||||
}
|
||||
@@ -2785,7 +2785,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2765,7 +2765,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -241,7 +226,7 @@ index f018d4bec5e09118b99933b58efe24da995fde75..d1987cfa0b1bd60cb6d3145d9522216d
|
||||
try {
|
||||
for (;;) {
|
||||
boolean moreTasks = this.tickMidTickTasks();
|
||||
@@ -2812,7 +2812,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2792,7 +2792,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
} finally {
|
||||
@@ -264,10 +249,10 @@ index 00a50196f6a4768d84acfbbeec79a0753308f091..30093cd8bd35f0bbc8f26eca370622ee
|
||||
i = this.context.runTopCommand(function, source);
|
||||
} finally {
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 5de95ba778e4a0cd1467e7392aa80eda1bd21a03..0bfdc4247a651f6c1caf7a95114be68bc7d77d7b 100644
|
||||
index 96c51b1f5103567c29d7da93f654cc5ddfea6a4d..c8b068ab73c8997fbd07e27ccd2dff77fef6bfe1 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -496,7 +496,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -523,7 +523,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
}
|
||||
|
||||
public void handleConsoleInputs() {
|
||||
@@ -276,7 +261,7 @@ index 5de95ba778e4a0cd1467e7392aa80eda1bd21a03..0bfdc4247a651f6c1caf7a95114be68b
|
||||
// Paper start - use proper queue
|
||||
ConsoleInput servercommand;
|
||||
while ((servercommand = this.serverCommandQueue.poll()) != null) {
|
||||
@@ -513,7 +513,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -540,7 +540,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
@@ -286,10 +271,10 @@ index 5de95ba778e4a0cd1467e7392aa80eda1bd21a03..0bfdc4247a651f6c1caf7a95114be68b
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index cec58f0d7ac6bf73a0f7b418a595704b8b807425..56ec684bac1c29c99bac117e38d82db2b4dc20e8 100644
|
||||
index 4748828f84f7d5f2dd79945dd65f3fa55cd43010..a57567679e01ae9a636d51fe53cda4abbca69f13 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -1000,15 +1000,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -608,15 +608,15 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
protected void tick(BooleanSupplier shouldKeepTicking) {
|
||||
ProfilerFiller gameprofilerfiller = this.level.getProfiler();
|
||||
|
||||
@@ -309,91 +294,10 @@ index cec58f0d7ac6bf73a0f7b418a595704b8b807425..56ec684bac1c29c99bac117e38d82db2
|
||||
}
|
||||
|
||||
gameprofilerfiller.pop();
|
||||
@@ -1161,7 +1161,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
private CompletableFuture<Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> scheduleChunkLoad(ChunkPos pos) {
|
||||
// Paper start - Async chunk io
|
||||
final java.util.function.BiFunction<ChunkSerializer.InProgressChunkHolder, Throwable, Either<ChunkAccess, ChunkHolder.ChunkLoadingFailure>> syncLoadComplete = (chunkHolder, ioThrowable) -> {
|
||||
- try (Timing ignored = this.level.timings.chunkLoad.startTimingIfSync()) { // Paper
|
||||
+ try /*(Timing ignored = this.level.timings.chunkLoad.startTimingIfSync())*/ { // Paper // Purpur
|
||||
this.level.getProfiler().incrementCounter("chunkLoad");
|
||||
if (ioThrowable != null) {
|
||||
return this.handleChunkLoadFailure(ioThrowable, pos);
|
||||
@@ -1352,7 +1352,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
ChunkStatus chunkstatus = ChunkHolder.getStatus(chunkHolder.getTicketLevel());
|
||||
|
||||
return !chunkstatus.isOrAfter(ChunkStatus.FULL) ? ChunkHolder.UNLOADED_CHUNK : either.mapLeft((ichunkaccess) -> {
|
||||
- try (Timing ignored = level.timings.chunkPostLoad.startTimingIfSync()) { // Paper
|
||||
+ //try (Timing ignored = level.timings.chunkPostLoad.startTimingIfSync()) { // Paper // Purpur
|
||||
ChunkPos chunkcoordintpair = chunkHolder.getPos();
|
||||
ProtoChunk protochunk = (ProtoChunk) ichunkaccess;
|
||||
LevelChunk chunk;
|
||||
@@ -1377,7 +1377,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
|
||||
return chunk;
|
||||
- } // Paper
|
||||
+ //} // Paper // Purpur
|
||||
});
|
||||
}, (runnable) -> {
|
||||
ProcessorHandle mailbox = this.mainThreadMailbox;
|
||||
@@ -1509,9 +1509,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
private void asyncSave(ChunkAccess chunk) {
|
||||
ChunkPos chunkPos = chunk.getPos();
|
||||
CompoundTag poiData;
|
||||
- try (Timing ignored = this.level.timings.chunkUnloadPOISerialization.startTiming()) {
|
||||
+ //try (Timing ignored = this.level.timings.chunkUnloadPOISerialization.startTiming()) { // Purpur
|
||||
poiData = this.poiManager.getData(chunk.getPos());
|
||||
- }
|
||||
+ //} // Purpur
|
||||
|
||||
com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.level, chunkPos.x, chunkPos.z,
|
||||
poiData, null, com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY);
|
||||
@@ -1531,9 +1531,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
|
||||
ChunkSerializer.AsyncSaveData asyncSaveData;
|
||||
- try (Timing ignored = this.level.timings.chunkUnloadPrepareSave.startTiming()) {
|
||||
+ //try (Timing ignored = this.level.timings.chunkUnloadPrepareSave.startTiming()) { // Purpur
|
||||
asyncSaveData = ChunkSerializer.getAsyncSaveData(this.level, chunk);
|
||||
- }
|
||||
+ //} // Purpur
|
||||
|
||||
this.level.asyncChunkTaskManager.scheduleChunkSave(chunkPos.x, chunkPos.z, com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY,
|
||||
asyncSaveData, chunk);
|
||||
@@ -1544,7 +1544,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
// Paper end
|
||||
|
||||
public boolean save(ChunkAccess chunk) {
|
||||
- try (co.aikar.timings.Timing ignored = this.level.timings.chunkSave.startTiming()) { // Paper
|
||||
+ //try (co.aikar.timings.Timing ignored = this.level.timings.chunkSave.startTiming()) { // Paper // Purpur
|
||||
this.poiManager.flush(chunk.getPos());
|
||||
if (!chunk.isUnsaved()) {
|
||||
return false;
|
||||
@@ -1568,9 +1568,9 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
|
||||
this.level.getProfiler().incrementCounter("chunkSave");
|
||||
CompoundTag nbttagcompound;
|
||||
- try (co.aikar.timings.Timing ignored1 = this.level.timings.chunkSaveDataSerialization.startTiming()) { // Paper
|
||||
+ //try (co.aikar.timings.Timing ignored1 = this.level.timings.chunkSaveDataSerialization.startTiming()) { // Paper // Purpur
|
||||
nbttagcompound = ChunkSerializer.write(this.level, chunk);
|
||||
- } // Paper
|
||||
+ //} // Paper // Purpur
|
||||
|
||||
// Paper start - async chunk io
|
||||
com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.level, chunkcoordintpair.x, chunkcoordintpair.z,
|
||||
@@ -1584,7 +1584,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
return false;
|
||||
}
|
||||
}
|
||||
- } // Paper
|
||||
+ //} // Paper // Purpur
|
||||
}
|
||||
|
||||
private boolean isExistingChunkFull(ChunkPos pos) {
|
||||
@@ -2107,24 +2107,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
// Pufferfish end
|
||||
@@ -1241,24 +1241,24 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
|
||||
// Paper start - optimised tracker
|
||||
private final void processTrackQueue() {
|
||||
- this.level.timings.tracker1.startTiming();
|
||||
+ //this.level.timings.tracker1.startTiming(); // Purpur
|
||||
try {
|
||||
@@ -419,7 +323,7 @@ index cec58f0d7ac6bf73a0f7b418a595704b8b807425..56ec684bac1c29c99bac117e38d82db2
|
||||
}
|
||||
}
|
||||
// Paper end - optimised tracker
|
||||
@@ -2139,7 +2139,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1273,7 +1273,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
List<ServerPlayer> list = Lists.newArrayList();
|
||||
List<ServerPlayer> list1 = this.level.players();
|
||||
ObjectIterator objectiterator = this.entityMap.values().iterator();
|
||||
@@ -428,7 +332,7 @@ index cec58f0d7ac6bf73a0f7b418a595704b8b807425..56ec684bac1c29c99bac117e38d82db2
|
||||
|
||||
ChunkMap.TrackedEntity playerchunkmap_entitytracker;
|
||||
|
||||
@@ -2164,17 +2164,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1298,17 +1298,17 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
playerchunkmap_entitytracker.serverEntity.sendChanges();
|
||||
}
|
||||
}
|
||||
@@ -450,41 +354,23 @@ index cec58f0d7ac6bf73a0f7b418a595704b8b807425..56ec684bac1c29c99bac117e38d82db2
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c2689ae00ab 100644
|
||||
index 7266e6703d5cd0fea90ec88c74a7d4567f2420ae..157efbbc57f1b5d92f296a70823c75b6d01ac065 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -483,10 +483,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
com.destroystokyo.paper.io.chunk.ChunkTaskManager.pushChunkWait(this.level, x1, z1);
|
||||
@@ -449,10 +449,10 @@ public class ServerChunkCache extends ChunkSource {
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.pushChunkWait(this.level, x1, z1); // Paper - rewrite chunk system
|
||||
// Paper end
|
||||
com.destroystokyo.paper.io.SyncLoadFinder.logSyncLoad(this.level, x1, z1); // Paper - sync load info
|
||||
- this.level.timings.syncChunkLoad.startTiming(); // Paper
|
||||
+ //this.level.timings.syncChunkLoad.startTiming(); // Paper // Purpur
|
||||
chunkproviderserver_b.managedBlock(completablefuture::isDone);
|
||||
com.destroystokyo.paper.io.chunk.ChunkTaskManager.popChunkWait(); // Paper - async chunk debug
|
||||
io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.popChunkWait(); // Paper - async chunk debug // Paper - rewrite chunk system
|
||||
- this.level.timings.syncChunkLoad.stopTiming(); // Paper
|
||||
+ //this.level.timings.syncChunkLoad.stopTiming(); // Paper // Purpur
|
||||
this.distanceManager.clearPriorityTickets(pair); // Paper - Chunk priority
|
||||
this.distanceManager.clearUrgent(pair); // Paper - Chunk priority
|
||||
} // Paper
|
||||
@@ -650,7 +650,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
public boolean runDistanceManagerUpdates() {
|
||||
if (distanceManager.delayDistanceManagerTick) return false; // Paper - Chunk priority
|
||||
if (this.chunkMap.unloadingPlayerChunk) { LOGGER.error("Cannot tick distance manager while unloading playerchunks", new Throwable()); throw new IllegalStateException("Cannot tick distance manager while unloading playerchunks"); } // Paper
|
||||
- co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager
|
||||
+ //co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager // Purpur
|
||||
boolean flag = this.distanceManager.runAllUpdates(this.chunkMap);
|
||||
boolean flag1 = this.chunkMap.promoteChunkMap();
|
||||
|
||||
@@ -660,7 +660,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
this.clearCache();
|
||||
return true;
|
||||
}
|
||||
- } finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager
|
||||
+ //} finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager // Purpur
|
||||
}
|
||||
|
||||
// Paper start
|
||||
@@ -678,17 +678,17 @@ public class ServerChunkCache extends ChunkSource {
|
||||
ichunkaccess = (ChunkAccess) ((Either) completablefuture.join()).map((ichunkaccess1) -> {
|
||||
return ichunkaccess1;
|
||||
@@ -600,17 +600,17 @@ public class ServerChunkCache extends ChunkSource {
|
||||
|
||||
public void save(boolean flush) {
|
||||
this.runDistanceManagerUpdates();
|
||||
@@ -506,7 +392,7 @@ index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c26
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -723,22 +723,22 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -640,22 +640,22 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@Override
|
||||
public void tick(BooleanSupplier shouldKeepTicking, boolean tickChunks) {
|
||||
this.level.getProfiler().push("purge");
|
||||
@@ -535,7 +421,7 @@ index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c26
|
||||
this.level.getProfiler().pop();
|
||||
this.clearCache();
|
||||
}
|
||||
@@ -793,7 +793,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -710,7 +710,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
boolean flag1 = level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && worlddata.getGameTime() % level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
|
||||
|
||||
gameprofilerfiller.push("naturalSpawnCount");
|
||||
@@ -544,7 +430,7 @@ index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c26
|
||||
int l = this.distanceManager.getNaturalSpawnChunkCount();
|
||||
// Paper start - per player mob spawning
|
||||
NaturalSpawner.SpawnState spawnercreature_d; // moved down
|
||||
@@ -814,12 +814,12 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -731,12 +731,12 @@ public class ServerChunkCache extends ChunkSource {
|
||||
// Pufferfish end
|
||||
}
|
||||
// Paper end
|
||||
@@ -559,7 +445,7 @@ index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c26
|
||||
|
||||
// Paper - moved down
|
||||
|
||||
@@ -873,17 +873,17 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -790,17 +790,17 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
}
|
||||
// Paper end - optimise chunk tick iteration
|
||||
@@ -581,7 +467,7 @@ index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c26
|
||||
if (!this.chunkMap.needsChangeBroadcasting.isEmpty()) {
|
||||
ReferenceOpenHashSet<ChunkHolder> copy = this.chunkMap.needsChangeBroadcasting.clone();
|
||||
this.chunkMap.needsChangeBroadcasting.clear();
|
||||
@@ -895,7 +895,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
@@ -812,7 +812,7 @@ public class ServerChunkCache extends ChunkSource {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -591,10 +477,10 @@ index 795691bcb61a7c2b4f903d8db3b6714908c78ac2..9e796ab10152d630fe78ec247d6b0c26
|
||||
// Paper end - use set of chunks requiring updates, rather than iterating every single one loaded
|
||||
// Paper start - controlled flush for entity tracker packets
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069ca184123 100644
|
||||
index 682a29b24b986c832ce5c6f708fc78c0515aa824..d3b93712cd999d61f66a8ffefd9122ffc1596ba1 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -654,7 +654,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -684,7 +684,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.updateSkyBrightness();
|
||||
this.tickTime();
|
||||
gameprofilerfiller.popPush("tickPending");
|
||||
@@ -603,7 +489,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
if (!this.isDebug()) {
|
||||
j = this.getGameTime();
|
||||
gameprofilerfiller.push("blockTicks");
|
||||
@@ -663,20 +663,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -693,20 +693,20 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.fluidTicks.tick(j, 65536, this::tickFluid);
|
||||
gameprofilerfiller.pop();
|
||||
}
|
||||
@@ -631,7 +517,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
this.handlingTick = false;
|
||||
gameprofilerfiller.pop();
|
||||
boolean flag = true || !this.players.isEmpty() || !this.getForcedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
|
||||
@@ -687,7 +687,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -717,7 +717,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
if (flag || this.emptyTime++ < 300) {
|
||||
gameprofilerfiller.push("entities");
|
||||
@@ -640,7 +526,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
if (this.dragonFight != null) {
|
||||
gameprofilerfiller.push("dragonFight");
|
||||
this.dragonFight.tick();
|
||||
@@ -695,7 +695,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -725,7 +725,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
|
||||
org.spigotmc.ActivationRange.activateEntities(this); // Spigot
|
||||
@@ -649,7 +535,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
this.entityTickList.forEach((entity) -> {
|
||||
if (!entity.isRemoved()) {
|
||||
if (false && this.shouldDiscardEntity(entity)) { // CraftBukkit - We prevent spawning in general, so this butchering is not needed
|
||||
@@ -735,8 +735,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -765,8 +765,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -660,7 +546,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
gameprofilerfiller.pop();
|
||||
this.tickBlockEntities();
|
||||
}
|
||||
@@ -898,7 +898,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -928,7 +928,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
// Paper start - optimise random block ticking
|
||||
gameprofilerfiller.popPush("randomTick");
|
||||
@@ -669,7 +555,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
if (randomTickSpeed > 0) {
|
||||
LevelChunkSection[] sections = chunk.getSections();
|
||||
int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this);
|
||||
@@ -932,7 +932,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -962,7 +962,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
}
|
||||
}
|
||||
// Paper end - optimise random block ticking
|
||||
@@ -678,7 +564,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
gameprofilerfiller.pop();
|
||||
}
|
||||
|
||||
@@ -1226,8 +1226,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1255,8 +1255,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
// Spigot end
|
||||
// Paper start- timings
|
||||
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(entity);
|
||||
@@ -689,7 +575,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
// Paper end - timings
|
||||
entity.setOldPosAndRot();
|
||||
ProfilerFiller gameprofilerfiller = this.getProfiler();
|
||||
@@ -1243,7 +1243,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1272,7 +1272,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
entity.postTick(); // CraftBukkit
|
||||
} else { entity.inactiveTick(); } // Paper - EAR 2
|
||||
this.getProfiler().pop();
|
||||
@@ -698,7 +584,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
Iterator iterator = entity.getPassengers().iterator();
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
@@ -1266,8 +1266,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1295,8 +1295,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
if (passenger instanceof Player || this.entityTickList.contains(passenger)) {
|
||||
// Paper - EAR 2
|
||||
final boolean isActive = org.spigotmc.ActivationRange.checkIfActive(passenger);
|
||||
@@ -709,7 +595,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
// Paper end
|
||||
passenger.setOldPosAndRot();
|
||||
++passenger.tickCount;
|
||||
@@ -1297,7 +1297,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1326,7 +1326,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.tickPassenger(passenger, entity2);
|
||||
}
|
||||
|
||||
@@ -718,7 +604,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
}
|
||||
} else {
|
||||
passenger.stopRiding();
|
||||
@@ -1317,14 +1317,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1346,14 +1346,14 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld()));
|
||||
}
|
||||
|
||||
@@ -736,7 +622,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
|
||||
// Copied from save()
|
||||
// CraftBukkit start - moved from MinecraftServer.saveChunks
|
||||
@@ -1336,7 +1336,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1365,7 +1365,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
this.convertable.saveDataTag(this.server.registryHolder, this.serverLevelData, this.server.getPlayerList().getSingleplayerData());
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -745,7 +631,7 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -1345,7 +1345,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1379,7 +1379,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
|
||||
if (!savingDisabled) {
|
||||
org.bukkit.Bukkit.getPluginManager().callEvent(new org.bukkit.event.world.WorldSaveEvent(getWorld())); // CraftBukkit
|
||||
@@ -754,20 +640,21 @@ index 0df97cf932f8bd315e3ae645368ae8df6c51fc25..207f07dfd0d2fd0ff5fdb3952966d069
|
||||
if (progressListener != null) {
|
||||
progressListener.progressStartNoAbort(Component.translatable("menu.savingLevel"));
|
||||
}
|
||||
@@ -1355,10 +1355,10 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1389,11 +1389,11 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
progressListener.progressStage(Component.translatable("menu.savingChunks"));
|
||||
}
|
||||
|
||||
- timings.worldSaveChunks.startTiming(); // Paper
|
||||
+ //timings.worldSaveChunks.startTiming(); // Paper // Purpur
|
||||
chunkproviderserver.save(flush);
|
||||
if (!close) chunkproviderserver.save(flush); // Paper - rewrite chunk system
|
||||
if (close) chunkproviderserver.close(true); // Paper - rewrite chunk system
|
||||
- timings.worldSaveChunks.stopTiming(); // Paper
|
||||
- }// Paper
|
||||
+ //timings.worldSaveChunks.stopTiming(); // Paper // Purpur
|
||||
+ //}// Paper // Purpur
|
||||
if (flush) {
|
||||
this.entityManager.saveAll();
|
||||
} else {
|
||||
// Paper - rewrite chunk system - entity saving moved into ChunkHolder
|
||||
|
||||
} else if (close) { chunkproviderserver.close(false); } // Paper - rewrite chunk system
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 9519e11fef244eb1b286b43b857d3f41865784c4..7a0adbdcadd20269e92cb698b569f04b169dade4 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -800,7 +687,7 @@ index 9519e11fef244eb1b286b43b857d3f41865784c4..7a0adbdcadd20269e92cb698b569f04b
|
||||
}
|
||||
// CraftBukkit end
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 9ed964da70a17afbe26c513f67b2d911f2c9e7c5..138b2c1a21b9ceb60030d10e24c78e09533937a0 100644
|
||||
index ae888c565e39fab22224cba96a0d8836a747738a..3fb2323c89d04f1a545897a1e67f6f637f5ab9c1 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1287,7 +1287,7 @@ public abstract class PlayerList {
|
||||
@@ -870,27 +757,11 @@ index fcdb9bde8e1605e30dde3e580491522d4b62cdc0..7094701d213c73ba47ace806962244c1
|
||||
}
|
||||
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java
|
||||
index 210b0cdd4831421c8f43c3d823ac8e962b56bbbc..de99946f5215ff2c78d6df5b8b7d5b6abaece907 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/village/poi/PoiManager.java
|
||||
@@ -351,9 +351,9 @@ public class PoiManager extends SectionStorage<PoiSection> {
|
||||
ChunkPos chunkcoordintpair = SectionPos.of(this.dirty.firstLong()).chunk();
|
||||
|
||||
net.minecraft.nbt.CompoundTag data;
|
||||
- try (co.aikar.timings.Timing ignored1 = this.world.timings.poiSaveDataSerialization.startTiming()) {
|
||||
+ //try (co.aikar.timings.Timing ignored1 = this.world.timings.poiSaveDataSerialization.startTiming()) { // Purpur
|
||||
data = this.getData(chunkcoordintpair);
|
||||
- }
|
||||
+ //} // Purpur
|
||||
com.destroystokyo.paper.io.PaperFileIOThread.Holder.INSTANCE.scheduleSave(this.world,
|
||||
chunkcoordintpair.x, chunkcoordintpair.z, data, null, com.destroystokyo.paper.io.PrioritizedTaskQueue.NORMAL_PRIORITY);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index c5dac52a23d9df26cacb869fd841da9bf518c313..bd89e00f707b6ba297081c9aacb3c5463e80063e 100644
|
||||
index 0c9f7f9ed3e24ddc6b963063723feb56422843c5..93711ef7df591ab0f50b8f0f7798f938eeb0f3b3 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -995,15 +995,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -994,15 +994,15 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
ProfilerFiller gameprofilerfiller = this.getProfiler();
|
||||
|
||||
gameprofilerfiller.push("blockEntities");
|
||||
@@ -909,7 +780,7 @@ index c5dac52a23d9df26cacb869fd841da9bf518c313..bd89e00f707b6ba297081c9aacb3c546
|
||||
// Spigot start
|
||||
// Iterator iterator = this.blockEntityTickers.iterator();
|
||||
int tilesThisCycle = 0;
|
||||
@@ -1036,7 +1036,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -1035,7 +1035,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
}
|
||||
this.blockEntityTickers.removeAll(toRemove);
|
||||
|
||||
@@ -941,11 +812,11 @@ index 1f4acc1a2605f1e9051126fc811a5479351fc61a..5c6fde4baf27e7d8f027c138d843da39
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
index 6fbf26eb7da8df2f0a4158ff9f12022518ada8e3..ab024c5315c0a7cb2f80d5d7b251f6a3531879b3 100644
|
||||
index df2786516fe641edff7bbe9fe0665bf07502d830..b4460ed16ba30173ad4a5fe8e405e1c34251912f 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunk.java
|
||||
@@ -875,7 +875,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(this.bukkitChunk, this.needsDecoration));
|
||||
@@ -927,7 +927,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
this.chunkHolder.getEntityChunk().callEntitiesLoadEvent(); // Paper - rewrite chunk system
|
||||
|
||||
if (this.needsDecoration) {
|
||||
- try (co.aikar.timings.Timing ignored = this.level.timings.chunkLoadPopulate.startTiming()) { // Paper
|
||||
@@ -953,7 +824,7 @@ index 6fbf26eb7da8df2f0a4158ff9f12022518ada8e3..ab024c5315c0a7cb2f80d5d7b251f6a3
|
||||
this.needsDecoration = false;
|
||||
java.util.Random random = new java.util.Random();
|
||||
random.setSeed(this.level.getSeed());
|
||||
@@ -895,7 +895,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -947,7 +947,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
}
|
||||
}
|
||||
server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(this.bukkitChunk));
|
||||
@@ -962,7 +833,7 @@ index 6fbf26eb7da8df2f0a4158ff9f12022518ada8e3..ab024c5315c0a7cb2f80d5d7b251f6a3
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1239,7 +1239,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -1292,7 +1292,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
ProfilerFiller gameprofilerfiller = LevelChunk.this.level.getProfiler();
|
||||
|
||||
gameprofilerfiller.push(this::getType);
|
||||
@@ -971,7 +842,7 @@ index 6fbf26eb7da8df2f0a4158ff9f12022518ada8e3..ab024c5315c0a7cb2f80d5d7b251f6a3
|
||||
BlockState iblockdata = LevelChunk.this.getBlockState(blockposition);
|
||||
|
||||
if (this.blockEntity.getType().isValid(iblockdata)) {
|
||||
@@ -1261,7 +1261,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
@@ -1314,7 +1314,7 @@ public class LevelChunk extends ChunkAccess {
|
||||
// Paper end
|
||||
// Spigot start
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user