mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-29 07:48:53 +01:00
Forgot to rebuild patches after I fixed things in upstream update
This commit is contained in:
parent
6d41af029c
commit
7c11dbee6d
8 changed files with 61 additions and 39 deletions
|
@ -1,4 +1,4 @@
|
|||
From 47272a40d066580e0b7d14486215f020684e8bad Mon Sep 17 00:00:00 2001
|
||||
From c7b9d824fc6f8304e7d1e82fccaf1b0fc2a0233d Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Fri, 4 Mar 2016 18:18:37 -0600
|
||||
Subject: [PATCH] Chunk save queue improvements
|
||||
|
@ -41,7 +41,7 @@ index 0d68ffd75a..fd00c320ce 100644
|
|||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 2e9bd0949a..3166d4b1ad 100644
|
||||
index 2e9bd0949a..1dbcedbf94 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -22,6 +22,7 @@ import java.util.function.Consumer;
|
||||
|
@ -52,7 +52,7 @@ index 2e9bd0949a..3166d4b1ad 100644
|
|||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
// Spigot start
|
||||
@@ -31,6 +32,19 @@ import org.spigotmc.SupplierUtils;
|
||||
@@ -31,6 +32,26 @@ import org.spigotmc.SupplierUtils;
|
||||
|
||||
public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
||||
|
@ -60,6 +60,13 @@ index 2e9bd0949a..3166d4b1ad 100644
|
|||
+ private static class QueuedChunk {
|
||||
+ public ChunkCoordIntPair coords;
|
||||
+ public Supplier<NBTTagCompound> compoundSupplier;
|
||||
+ public Runnable onSave;
|
||||
+
|
||||
+ public QueuedChunk(Runnable run) {
|
||||
+ this.coords = null;
|
||||
+ this.compoundSupplier = null;
|
||||
+ this.onSave = run;
|
||||
+ }
|
||||
+
|
||||
+ public QueuedChunk(ChunkCoordIntPair coords, Supplier<NBTTagCompound> compoundSupplier) {
|
||||
+ this.coords = coords;
|
||||
|
@ -72,7 +79,7 @@ index 2e9bd0949a..3166d4b1ad 100644
|
|||
private static final Logger a = LogManager.getLogger();
|
||||
private final Map<ChunkCoordIntPair, Supplier<NBTTagCompound>> b = java.util.Collections.synchronizedMap(Maps.newHashMap()); // CraftBukkit // Spigot
|
||||
private final File c;
|
||||
@@ -305,8 +319,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -305,8 +326,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
@ -83,19 +90,19 @@ index 2e9bd0949a..3166d4b1ad 100644
|
|||
// Spigot end
|
||||
} catch (Exception exception) {
|
||||
ChunkRegionLoader.a.error("Failed to save chunk", exception);
|
||||
@@ -315,7 +329,10 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -315,7 +336,10 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
|
||||
protected void a(ChunkCoordIntPair chunkcoordintpair, Supplier<NBTTagCompound> nbttagcompound) { // Spigot
|
||||
- this.b.put(chunkcoordintpair, nbttagcompound);
|
||||
+ synchronized (this.queue) { // Paper - synchronize while modifying the map
|
||||
+ synchronized (this.b) { // Paper - synchronize while modifying the map
|
||||
+ queue.add(new QueuedChunk(chunkcoordintpair, nbttagcompound)); // Paper - Chunk queue improvements
|
||||
+ this.b.put(chunkcoordintpair, nbttagcompound);
|
||||
+ }
|
||||
FileIOThread.a().a(this);
|
||||
}
|
||||
|
||||
@@ -325,20 +342,18 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -325,20 +349,24 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
|
||||
private boolean processSaveQueueEntry(boolean logCompletion) {
|
||||
|
@ -117,17 +124,23 @@ index 2e9bd0949a..3166d4b1ad 100644
|
|||
- iterator.remove();
|
||||
- ChunkCoordIntPair chunkcoordintpair = (ChunkCoordIntPair) entry.getKey();
|
||||
- Supplier<NBTTagCompound> nbttagcompound = (Supplier<NBTTagCompound>) entry.getValue(); // Spigot
|
||||
+ // Paper start
|
||||
+ if (chunk.onSave != null) {
|
||||
+ chunk.onSave.run();
|
||||
+ return true;
|
||||
+ }
|
||||
+ // Paper end
|
||||
+ ChunkCoordIntPair chunkcoordintpair = chunk.coords; // Paper - Chunk queue improvements
|
||||
+ Supplier<NBTTagCompound> nbttagcompound = chunk.compoundSupplier; // Spigot // Paper
|
||||
|
||||
if (nbttagcompound == null) {
|
||||
return true;
|
||||
@@ -347,6 +362,14 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -347,6 +375,14 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
// CraftBukkit start
|
||||
RegionFileCache.write(this.c, chunkcoordintpair.x, chunkcoordintpair.z, SupplierUtils.getIfExists(nbttagcompound)); // Spigot
|
||||
|
||||
+ // Paper start remove from map only if this was the latest version of the chunk
|
||||
+ synchronized (this.queue) {
|
||||
+ synchronized (this.b) {
|
||||
+ // This will not equal if a newer version is still pending - wait until newest is saved to remove
|
||||
+ if (this.b.get(chunkcoordintpair) == chunk.compoundSupplier) {
|
||||
+ this.b.remove(chunkcoordintpair);
|
||||
|
@ -137,6 +150,15 @@ index 2e9bd0949a..3166d4b1ad 100644
|
|||
/*
|
||||
NBTCompressedStreamTools.a(nbttagcompound, (DataOutput) dataoutputstream);
|
||||
dataoutputstream.close();
|
||||
@@ -362,7 +398,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
- } // CraftBukkit
|
||||
+ // } // CraftBukkit // Paper
|
||||
}
|
||||
|
||||
private ChunkStatus.Type a(@Nullable NBTTagCompound nbttagcompound) {
|
||||
diff --git a/src/main/java/net/minecraft/server/FileIOThread.java b/src/main/java/net/minecraft/server/FileIOThread.java
|
||||
index a3aba244af..97917551a4 100644
|
||||
--- a/src/main/java/net/minecraft/server/FileIOThread.java
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From be4d1a2e8b0408ab2496995a4b67bd819360bbd6 Mon Sep 17 00:00:00 2001
|
||||
From 9f6e2aa26857b197da5b8790ace6a8ffbe49c21e Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Tue, 21 Jun 2016 22:54:34 -0400
|
||||
Subject: [PATCH] Fix Double World Add issues
|
||||
|
@ -8,10 +8,10 @@ Vanilla will double add Spider Jockeys to the world, so ignore already added.
|
|||
Also add debug if something else tries to, and abort before world gets bad state
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 3166d4b1ad..1c5b7903cc 100644
|
||||
index 1dbcedbf94..8e14f8c56c 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -1037,7 +1037,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -1050,7 +1050,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
|
||||
public static void a(Entity entity, GeneratorAccess generatoraccess, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason reason) {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 5022fe8950e4040dd0ee1bb63706eeec718ccee1 Mon Sep 17 00:00:00 2001
|
||||
From b6fecf06db9aee33bb51e92efde67fd42ae5e0a2 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Thu, 3 Nov 2016 21:52:22 -0400
|
||||
Subject: [PATCH] Prevent Auto Save if Save Queue is full
|
||||
|
@ -41,10 +41,10 @@ index 7a972f4187..87744dcbfc 100644
|
|||
Chunk chunk = (Chunk) objectiterator.next();
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index fde80d1fd3..3283b5047d 100644
|
||||
index 8e14f8c56c..2415404d69 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -141,6 +141,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -148,6 +148,8 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 2ec23d4415fa7cdff14d42f5f46c1b11eea99c63 Mon Sep 17 00:00:00 2001
|
||||
From 2d9b0defd0f78c56f370a94e16e02ea6b6ee6bdc Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Fri, 4 Nov 2016 02:12:10 -0400
|
||||
Subject: [PATCH] Chunk Save Stats Debug Option
|
||||
|
@ -54,10 +54,10 @@ index 87744dcbfc..355186c111 100644
|
|||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 3283b5047d..110c9ef520 100644
|
||||
index 2415404d69..f099b91f7a 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -141,7 +141,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -148,7 +148,13 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
||||
}
|
||||
|
||||
|
@ -72,16 +72,16 @@ index 3283b5047d..110c9ef520 100644
|
|||
|
||||
// CraftBukkit start - Add async variant, provide compatibility
|
||||
@Nullable
|
||||
@@ -331,6 +337,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -338,6 +344,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
|
||||
protected void a(ChunkCoordIntPair chunkcoordintpair, Supplier<NBTTagCompound> nbttagcompound) { // Spigot
|
||||
+ queuedSaves++; // Paper
|
||||
synchronized (this.queue) { // Paper - synchronize while modifying the map
|
||||
synchronized (this.b) { // Paper - synchronize while modifying the map
|
||||
queue.add(new QueuedChunk(chunkcoordintpair, nbttagcompound)); // Paper - Chunk queue improvements
|
||||
this.b.put(chunkcoordintpair, nbttagcompound);
|
||||
@@ -356,6 +363,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
} else {
|
||||
@@ -369,6 +376,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
// Paper end
|
||||
ChunkCoordIntPair chunkcoordintpair = chunk.coords; // Paper - Chunk queue improvements
|
||||
Supplier<NBTTagCompound> nbttagcompound = chunk.compoundSupplier; // Spigot // Paper
|
||||
+ processedSaves.incrementAndGet(); // Paper
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 8bd54fac08b3ade04b63583ce9d8cc2173fa851f Mon Sep 17 00:00:00 2001
|
||||
From d15c2067a5b8cb216de1effc12c85f838d1d7cf6 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sun, 22 Jul 2018 21:21:41 -0400
|
||||
Subject: [PATCH] Don't save Proto Chunks
|
||||
|
@ -8,10 +8,10 @@ the loadChunk method refuses to acknoledge they exists, and will restart
|
|||
a new chunk generation process to begin with, so saving them serves no benefit.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 110c9ef520..3074aa50e8 100644
|
||||
index f099b91f7a..ec94b9fe57 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -289,6 +289,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -296,6 +296,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
|
||||
public void saveChunk(World world, IChunkAccess ichunkaccess, boolean unloaded) throws IOException, ExceptionWorldConflict {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From cd080ccdb7fb13e2b2458e8d97a64575a61fbec3 Mon Sep 17 00:00:00 2001
|
||||
From c107796d25c4e33e47ab6c832793f350c9ebbad0 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Thu, 26 Jul 2018 00:11:12 -0400
|
||||
Subject: [PATCH] Prevent Saving Bad entities to chunks
|
||||
|
@ -18,10 +18,10 @@ an invalid entity.
|
|||
This should reduce log occurrences of dupe uuid messages.
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 4f0571ae26..b0fa23db5e 100644
|
||||
index ec94b9fe57..e6ede2cc25 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -548,11 +548,22 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -561,11 +561,22 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
||||
Iterator iterator;
|
||||
|
||||
|
@ -44,7 +44,7 @@ index 4f0571ae26..b0fa23db5e 100644
|
|||
NBTTagCompound nbttagcompound1 = new NBTTagCompound();
|
||||
|
||||
if (entity.d(nbttagcompound1)) {
|
||||
@@ -561,6 +572,11 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -574,6 +585,11 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 418328efab0770b7cbfe3eff814e54a7314731d1 Mon Sep 17 00:00:00 2001
|
||||
From 132c87e612eeb913dc0a57cde399bf0519c66a04 Mon Sep 17 00:00:00 2001
|
||||
From: Aikar <aikar@aikar.co>
|
||||
Date: Sun, 29 Jul 2018 15:48:50 -0400
|
||||
Subject: [PATCH] Provide option to use a versioned world folder for testing
|
||||
|
@ -59,10 +59,10 @@ index bcdf4f91d8..c457d07110 100644
|
|||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index ffa94ea674..68a3169c31 100644
|
||||
index e6ede2cc25..93bc613958 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -52,8 +52,52 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -59,8 +59,52 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
private PersistentStructureLegacy e;
|
||||
// private boolean f; // CraftBukkit
|
||||
private static final double SAVE_QUEUE_TARGET_SIZE = 625; // Spigot
|
||||
|
@ -115,7 +115,7 @@ index ffa94ea674..68a3169c31 100644
|
|||
this.c = file;
|
||||
this.d = datafixer;
|
||||
}
|
||||
@@ -72,7 +116,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -79,7 +123,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ index ffa94ea674..68a3169c31 100644
|
|||
NBTTagCompound nbt = RegionFileCache.read(this.c, x, z);
|
||||
if (nbt != null) {
|
||||
NBTTagCompound level = nbt.getCompound("Level");
|
||||
@@ -92,6 +136,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -99,6 +143,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
|
||||
@Nullable
|
||||
private NBTTagCompound a(DimensionManager dimensionmanager, @Nullable PersistentCollection persistentcollection, int i, int j, @Nullable GeneratorAccess generatoraccess) throws IOException {
|
||||
|
@ -132,7 +132,7 @@ index ffa94ea674..68a3169c31 100644
|
|||
NBTTagCompound nbttagcompound = SupplierUtils.getIfExists(this.b.get(new ChunkCoordIntPair(i, j))); // Spigot
|
||||
|
||||
if (nbttagcompound != null) {
|
||||
@@ -215,6 +260,15 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -222,6 +267,15 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
From 5b3c1c01e0892270eff2bcea0209bf5e5c0fd39d Mon Sep 17 00:00:00 2001
|
||||
From 4ebd487261fd788fcb42a4d09d156e5acdf50ccd Mon Sep 17 00:00:00 2001
|
||||
From: stonar96 <minecraft.stonar96@gmail.com>
|
||||
Date: Mon, 20 Aug 2018 03:03:58 +0200
|
||||
Subject: [PATCH] Anti-Xray
|
||||
|
@ -1071,10 +1071,10 @@ index 56c3783412..f3d9211baa 100644
|
|||
this.initLighting();
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
index 90e6de419e..538e4b04d9 100644
|
||||
index 93bc613958..31faeb43f6 100644
|
||||
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
||||
@@ -844,7 +844,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -857,7 +857,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
}
|
||||
|
||||
ChunkConverter chunkconverter = nbttagcompound.hasKeyOfType("UpgradeData", 10) ? new ChunkConverter(nbttagcompound.getCompound("UpgradeData")) : ChunkConverter.a;
|
||||
|
@ -1083,7 +1083,7 @@ index 90e6de419e..538e4b04d9 100644
|
|||
|
||||
protochunk.a(abiomebase);
|
||||
protochunk.b(nbttagcompound.getLong("InhabitedTime"));
|
||||
@@ -950,7 +950,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
@@ -963,7 +963,7 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
||||
for (int i = 0; i < nbttaglist.size(); ++i) {
|
||||
NBTTagCompound nbttagcompound = nbttaglist.getCompound(i);
|
||||
byte b0 = nbttagcompound.getByte("Y");
|
||||
|
|
Loading…
Reference in a new issue