mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-17 06:48:23 +01:00
c204872eb4
An oversight in this patch may be to blame for several issues in certain cases, we'll opt to using a queue as this will fall in line with what is expected and may help some issues where chunks remain loaded or fail to load
45 lines
No EOL
1.8 KiB
Diff
45 lines
No EOL
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Wed, 29 May 2019 04:01:22 +0100
|
|
Subject: [PATCH] ChunkMapDistance CME
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
|
index ed4e8d69ca..f72843119a 100644
|
|
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
|
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
|
|
@@ -0,0 +0,0 @@ import it.unimi.dsi.fastutil.objects.ObjectSortedSet;
|
|
import java.util.Set;
|
|
import java.util.concurrent.CompletableFuture;
|
|
import java.util.concurrent.Executor;
|
|
+
|
|
import javax.annotation.Nullable;
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
@@ -0,0 +0,0 @@ public abstract class ChunkMapDistance {
|
|
private final ChunkMapDistance.a e = new ChunkMapDistance.a();
|
|
private final ChunkMapDistance.b f = new ChunkMapDistance.b(8);
|
|
private final ChunkMapDistance.c g = new ChunkMapDistance.c(33);
|
|
- private final Set<PlayerChunk> h = Sets.newHashSet();
|
|
+ private java.util.Queue<PlayerChunk> h = new java.util.LinkedList<>(); // Paper - -final
|
|
private final PlayerChunk.c i;
|
|
private final Mailbox<ChunkTaskQueueSorter.a<Runnable>> j;
|
|
private final Mailbox<ChunkTaskQueueSorter.b> k;
|
|
@@ -0,0 +0,0 @@ public abstract class ChunkMapDistance {
|
|
;
|
|
}
|
|
|
|
+ // Paper start
|
|
if (!this.h.isEmpty()) {
|
|
- this.h.forEach((playerchunk) -> {
|
|
- playerchunk.a(playerchunkmap);
|
|
- });
|
|
- this.h.clear();
|
|
+ while(!this.h.isEmpty()) {
|
|
+ this.h.remove().a(playerchunkmap);
|
|
+ }
|
|
+ // Paper end
|
|
return true;
|
|
} else {
|
|
if (!this.l.isEmpty()) {
|
|
--
|