summaryrefslogtreecommitdiffstats
path: root/nms-patches
diff options
context:
space:
mode:
authormd_5 <git@md-5.net>2018-07-25 19:32:06 +1000
committermd_5 <git@md-5.net>2018-07-25 19:32:06 +1000
commit1ef1ffd664b55d9dc9800023182c779daff2594a (patch)
treea2940c1415873b59f1e0898e217cf05a14830097 /nms-patches
parent3599dbe3c27ad950700b9a76d198951e15f882ba (diff)
downloadcraftbukkit-1ef1ffd664b55d9dc9800023182c779daff2594a.tar
craftbukkit-1ef1ffd664b55d9dc9800023182c779daff2594a.tar.gz
craftbukkit-1ef1ffd664b55d9dc9800023182c779daff2594a.tar.lz
craftbukkit-1ef1ffd664b55d9dc9800023182c779daff2594a.tar.xz
craftbukkit-1ef1ffd664b55d9dc9800023182c779daff2594a.zip
SPIGOT-4137: Fix World.regenerateChunk
Diffstat (limited to 'nms-patches')
-rw-r--r--nms-patches/ChunkProviderServer.patch23
-rw-r--r--nms-patches/ChunkTaskScheduler.patch15
2 files changed, 34 insertions, 4 deletions
diff --git a/nms-patches/ChunkProviderServer.patch b/nms-patches/ChunkProviderServer.patch
index 008a069b..aad3ec49 100644
--- a/nms-patches/ChunkProviderServer.patch
+++ b/nms-patches/ChunkProviderServer.patch
@@ -57,16 +57,31 @@
}
}
-@@ -150,7 +162,7 @@
+@@ -147,10 +159,21 @@
+ return this.g.c();
+ }
+
++ // CraftBukkit start
public CompletableFuture<Chunk> generateChunk(int i, int j) {
++ return this.generateChunk(i, j, false);
++ }
++
++ public CompletableFuture<Chunk> generateChunk(int i, int j, boolean force) {
this.g.b();
- this.g.a(new ChunkCoordIntPair(i, j));
+- this.g.a(new ChunkCoordIntPair(i, j));
- CompletableFuture completablefuture = this.g.c();
++
++ ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i, j);
++ if (force) {
++ this.f.forcePolluteCache(chunkcoordintpair);
++ }
++ this.g.a(chunkcoordintpair);
++ // CraftBukkit end
+ CompletableFuture<ProtoChunk> completablefuture = this.g.c(); // CraftBukkit - decompile error
return completablefuture.thenApply(this::a);
}
-@@ -268,10 +280,12 @@
+@@ -268,10 +291,12 @@
Chunk chunk = (Chunk) this.chunks.get(olong);
if (chunk != null && chunk.d) {
@@ -83,7 +98,7 @@
++i;
}
}
-@@ -284,6 +298,40 @@
+@@ -284,6 +309,40 @@
return false;
}
diff --git a/nms-patches/ChunkTaskScheduler.patch b/nms-patches/ChunkTaskScheduler.patch
new file mode 100644
index 00000000..dc448358
--- /dev/null
+++ b/nms-patches/ChunkTaskScheduler.patch
@@ -0,0 +1,15 @@
+--- a/net/minecraft/server/ChunkTaskScheduler.java
++++ b/net/minecraft/server/ChunkTaskScheduler.java
+@@ -39,6 +39,12 @@
+ this.f = iasynctaskhandler;
+ }
+
++ // CraftBukkit start
++ public void forcePolluteCache(ChunkCoordIntPair chunkcoordintpair) {
++ this.g.put(chunkcoordintpair.a(), new Scheduler.a(chunkcoordintpair, new ProtoChunk(chunkcoordintpair, ChunkConverter.a), ChunkStatus.EMPTY));
++ }
++ // CraftBukkit end
++
+ protected Scheduler.a a(ChunkCoordIntPair chunkcoordintpair) {
+ return (Scheduler.a) this.g.computeIfAbsent(Long.valueOf(chunkcoordintpair.a()), (olong) -> {
+ ProtoChunk protochunk = this.a(chunkcoordintpair.x, chunkcoordintpair.z);