|
|
|
@@ -43,7 +43,7 @@ reading or writing to the chunk will be safe, so plugins still
|
|
|
|
should not be touching chunks asynchronously!
|
|
|
|
should not be touching chunks asynchronously!
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
|
|
index b703e0848..77d35ac99 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
|
|
@@ -0,0 +0,0 @@ public class PaperConfig {
|
|
|
|
@@ -0,0 +0,0 @@ public class PaperConfig {
|
|
|
|
@@ -106,7 +106,7 @@ index b703e0848..77d35ac99 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/util/PriorityQueuedExecutor.java b/src/main/java/com/destroystokyo/paper/util/PriorityQueuedExecutor.java
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/util/PriorityQueuedExecutor.java b/src/main/java/com/destroystokyo/paper/util/PriorityQueuedExecutor.java
|
|
|
|
new file mode 100644
|
|
|
|
new file mode 100644
|
|
|
|
index 000000000..5c77b6e8e
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0
|
|
|
|
--- /dev/null
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/util/PriorityQueuedExecutor.java
|
|
|
|
+++ b/src/main/java/com/destroystokyo/paper/util/PriorityQueuedExecutor.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
@@ -392,7 +392,7 @@ index 000000000..5c77b6e8e
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
|
|
|
|
index edfcb107b..cb9988870 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/Chunk.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Chunk.java
|
|
|
|
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
|
|
|
@@ -0,0 +0,0 @@ public class Chunk implements IChunkAccess {
|
|
|
|
@@ -403,12 +403,122 @@ index edfcb107b..cb9988870 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Iterator iterator = protochunk.s().iterator();
|
|
|
|
Iterator iterator = protochunk.s().iterator();
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkMap.java b/src/main/java/net/minecraft/server/ChunkMap.java
|
|
|
|
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkMap.java
|
|
|
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkMap.java
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Chunk a(long i, Chunk chunk) {
|
|
|
|
|
|
|
|
+ org.spigotmc.AsyncCatcher.catchOp("Async Chunk put"); // Paper
|
|
|
|
|
|
|
|
chunk.world.timings.syncChunkLoadPostTimer.startTiming(); // Paper
|
|
|
|
|
|
|
|
lastChunkByPos = chunk; // Paper
|
|
|
|
|
|
|
|
- Chunk chunk1 = (Chunk) super.put(i, chunk);
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
|
|
|
|
+ Chunk chunk1;
|
|
|
|
|
|
|
|
+ synchronized (this) {
|
|
|
|
|
|
|
|
+ // synchronize so any async gets are safe
|
|
|
|
|
|
|
|
+ chunk1 = (Chunk) super.put(i, chunk);
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ if (chunk1 == null) { // Paper - we should never be overwriting chunks
|
|
|
|
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = chunkcoordintpair.x - 1; j <= chunkcoordintpair.x + 1; ++j) {
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
|
|
|
|
|
|
|
|
chunk.setNeighborLoaded(x, z);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
|
|
|
|
+ } } else {
|
|
|
|
|
|
|
|
+ a.error("Overwrote existing chunk! (" + chunk.world.getWorld().getName() + ":" + chunk.locX+"," + chunk.locZ + ")", new IllegalStateException());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
// Paper start - if this is a spare chunk (not part of any players view distance), go ahead and queue it for unload.
|
|
|
|
|
|
|
|
if (!((WorldServer)chunk.world).getPlayerChunkMap().isChunkInUse(chunk.locX, chunk.locZ)) {
|
|
|
|
|
|
|
|
if (chunk.world.paperConfig.delayChunkUnloadsBy > 0) {
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Chunk a(Long olong, Chunk chunk) {
|
|
|
|
|
|
|
|
- return this.a(olong.longValue(), chunk);
|
|
|
|
|
|
|
|
+ return MCUtil.ensureMain("Chunk Put", () -> this.a(olong.longValue(), chunk)); // Paper
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Chunk a(long i) {
|
|
|
|
|
|
|
|
- Chunk chunk = (Chunk) super.remove(i);
|
|
|
|
|
|
|
|
+ // Paper start
|
|
|
|
|
|
|
|
+ org.spigotmc.AsyncCatcher.catchOp("Async Chunk remove");
|
|
|
|
|
|
|
|
+ Chunk chunk;
|
|
|
|
|
|
|
|
+ synchronized (this) {
|
|
|
|
|
|
|
|
+ // synchronize so any async gets are safe
|
|
|
|
|
|
|
|
+ chunk = super.remove(i);
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ if (chunk != null) { // Paper - don't decrement if we didn't remove anything
|
|
|
|
|
|
|
|
+ // Paper end
|
|
|
|
|
|
|
|
ChunkCoordIntPair chunkcoordintpair = new ChunkCoordIntPair(i);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (int j = chunkcoordintpair.x - 1; j <= chunkcoordintpair.x + 1; ++j) {
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Paper start
|
|
|
|
|
|
|
|
+ } // close if (chunk != null)
|
|
|
|
|
|
|
|
if (lastChunkByPos != null && i == lastChunkByPos.chunkKey) {
|
|
|
|
|
|
|
|
lastChunkByPos = null;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
|
|
|
public Chunk get(long l) {
|
|
|
|
|
|
|
|
- if (lastChunkByPos != null && l == lastChunkByPos.chunkKey) {
|
|
|
|
|
|
|
|
- return lastChunkByPos;
|
|
|
|
|
|
|
|
+ if (MCUtil.isMainThread()) {
|
|
|
|
|
|
|
|
+ if (lastChunkByPos != null && l == lastChunkByPos.chunkKey) {
|
|
|
|
|
|
|
|
+ return lastChunkByPos;
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ final Chunk chunk = super.get(l);
|
|
|
|
|
|
|
|
+ return chunk != null ? (lastChunkByPos = chunk) : null;
|
|
|
|
|
|
|
|
+ } else {
|
|
|
|
|
|
|
|
+ synchronized (this) {
|
|
|
|
|
|
|
|
+ return super.get(l);
|
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
- return lastChunkByPos = super.get(l);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// Paper end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Chunk a(Object object) {
|
|
|
|
|
|
|
|
- return this.a(((Long) object).longValue());
|
|
|
|
|
|
|
|
+ return MCUtil.ensureMain("Chunk Remove", () -> this.a(((Long) object).longValue())); // Paper
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void putAll(Map<? extends Long, ? extends Chunk> map) {
|
|
|
|
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkMap extends Long2ObjectOpenHashMap<Chunk> {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CraftBukkit start - decompile errors
|
|
|
|
|
|
|
|
public Chunk remove(long i) {
|
|
|
|
|
|
|
|
- return this.a(i);
|
|
|
|
|
|
|
|
+ return MCUtil.ensureMain("Chunk Remove", () -> this.a(i)); // Paper
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Chunk put(long i, Chunk object) {
|
|
|
|
|
|
|
|
- return this.a(i, (Chunk) object);
|
|
|
|
|
|
|
|
+ return MCUtil.ensureMain("Chunk Put", () -> this.a(i, (Chunk) object)); // Paper
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public Chunk remove(Object object) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
|
|
index 958a4084e..56a76e17e 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkProviderServer implements IChunkProvider {
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkProviderServer implements IChunkProvider {
|
|
|
|
public final Long2ObjectMap<Chunk> chunks = Long2ObjectMaps.synchronize(new ChunkMap(8192));
|
|
|
|
private long lastProcessedSaves = 0L; // Paper
|
|
|
|
|
|
|
|
private long lastSaveStatPrinted = System.currentTimeMillis();
|
|
|
|
|
|
|
|
// Paper end
|
|
|
|
|
|
|
|
- public final Long2ObjectMap<Chunk> chunks = Long2ObjectMaps.synchronize(new ChunkMap(8192));
|
|
|
|
|
|
|
|
+ public final Long2ObjectMap<Chunk> chunks = new ChunkMap(8192); // Paper - remove synchronize - we keep everything on main for manip
|
|
|
|
private Chunk lastChunk;
|
|
|
|
private Chunk lastChunk;
|
|
|
|
private final ChunkTaskScheduler chunkScheduler;
|
|
|
|
private final ChunkTaskScheduler chunkScheduler;
|
|
|
|
- private final SchedulerBatch<ChunkCoordIntPair, ChunkStatus, ProtoChunk> batchScheduler;
|
|
|
|
- private final SchedulerBatch<ChunkCoordIntPair, ChunkStatus, ProtoChunk> batchScheduler;
|
|
|
|
@@ -550,7 +660,7 @@ index 958a4084e..56a76e17e 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkRegionLoader.java b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
|
|
|
index c233b7e90..edd074252 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkRegionLoader.java
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkRegionLoader implements IChunkLoader, IAsyncChunkSaver {
|
|
|
|
@@ -577,7 +687,7 @@ index c233b7e90..edd074252 100644
|
|
|
|
completion = new Supplier<NBTTagCompound>() {
|
|
|
|
completion = new Supplier<NBTTagCompound>() {
|
|
|
|
public NBTTagCompound get() {
|
|
|
|
public NBTTagCompound get() {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkSection.java b/src/main/java/net/minecraft/server/ChunkSection.java
|
|
|
|
index bdfc7d81f..a5c4564d6 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkSection.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkSection.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkSection.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkSection.java
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkSection {
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkSection {
|
|
|
|
@@ -599,7 +709,7 @@ index bdfc7d81f..a5c4564d6 100644
|
|
|
|
public IBlockData getType(int i, int j, int k) {
|
|
|
|
public IBlockData getType(int i, int j, int k) {
|
|
|
|
return this.blockIds.a(i, j, k);
|
|
|
|
return this.blockIds.a(i, j, k);
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
|
|
|
|
index 34019bd1b..fc9091c80 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/ChunkTaskScheduler.java
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkTaskScheduler extends Scheduler<ChunkCoordIntPair, ChunkStatus
|
|
|
|
@@ -0,0 +0,0 @@ public class ChunkTaskScheduler extends Scheduler<ChunkCoordIntPair, ChunkStatus
|
|
|
|
@@ -670,7 +780,7 @@ index 34019bd1b..fc9091c80 100644
|
|
|
|
|
|
|
|
|
|
|
|
protected ProtoChunk a(ChunkCoordIntPair chunkcoordintpair, ChunkStatus chunkstatus, Map<ChunkCoordIntPair, ProtoChunk> map) {
|
|
|
|
protected ProtoChunk a(ChunkCoordIntPair chunkcoordintpair, ChunkStatus chunkstatus, Map<ChunkCoordIntPair, ProtoChunk> map) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DataPaletteBlock.java b/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
|
|
|
index 71a3636be..ff0fe2541 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/DataPaletteBlock.java
|
|
|
|
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
|
|
|
@@ -0,0 +0,0 @@ package net.minecraft.server;
|
|
|
|
@@ -755,7 +865,7 @@ index 71a3636be..ff0fe2541 100644
|
|
|
|
|
|
|
|
|
|
|
|
// Paper start - Anti-Xray - Support default methods
|
|
|
|
// Paper start - Anti-Xray - Support default methods
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DefinedStructureManager.java b/src/main/java/net/minecraft/server/DefinedStructureManager.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/DefinedStructureManager.java b/src/main/java/net/minecraft/server/DefinedStructureManager.java
|
|
|
|
index 271dc41d4..bd15534c2 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/DefinedStructureManager.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/DefinedStructureManager.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/DefinedStructureManager.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/DefinedStructureManager.java
|
|
|
|
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;
|
|
|
|
@@ -0,0 +0,0 @@ import org.apache.logging.log4j.Logger;
|
|
|
|
@@ -768,7 +878,7 @@ index 271dc41d4..bd15534c2 100644
|
|
|
|
private final MinecraftServer d;
|
|
|
|
private final MinecraftServer d;
|
|
|
|
private final java.nio.file.Path e;
|
|
|
|
private final java.nio.file.Path e;
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
index 0237049a4..cd601f29a 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
|
|
@@ -781,7 +891,7 @@ index 0237049a4..cd601f29a 100644
|
|
|
|
this.aJ = Sets.newHashSet();
|
|
|
|
this.aJ = Sets.newHashSet();
|
|
|
|
this.aL = new double[] { 0.0D, 0.0D, 0.0D};
|
|
|
|
this.aL = new double[] { 0.0D, 0.0D, 0.0D};
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/IChunkLoader.java b/src/main/java/net/minecraft/server/IChunkLoader.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/IChunkLoader.java b/src/main/java/net/minecraft/server/IChunkLoader.java
|
|
|
|
index 4698ee99f..dfb45cc4e 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/IChunkLoader.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/IChunkLoader.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/IChunkLoader.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/IChunkLoader.java
|
|
|
|
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
|
|
|
|
@@ -0,0 +0,0 @@ import javax.annotation.Nullable;
|
|
|
|
@@ -794,7 +904,7 @@ index 4698ee99f..dfb45cc4e 100644
|
|
|
|
Chunk a(GeneratorAccess generatoraccess, int i, int j, Consumer<Chunk> consumer) throws IOException;
|
|
|
|
Chunk a(GeneratorAccess generatoraccess, int i, int j, Consumer<Chunk> consumer) throws IOException;
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MathHelper.java b/src/main/java/net/minecraft/server/MathHelper.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MathHelper.java b/src/main/java/net/minecraft/server/MathHelper.java
|
|
|
|
index 49fba0979..9ad646f8d 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/MathHelper.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/MathHelper.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/MathHelper.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/MathHelper.java
|
|
|
|
@@ -0,0 +0,0 @@ public class MathHelper {
|
|
|
|
@@ -0,0 +0,0 @@ public class MathHelper {
|
|
|
|
@@ -806,7 +916,7 @@ index 49fba0979..9ad646f8d 100644
|
|
|
|
fx = fx % 360.0F;
|
|
|
|
fx = fx % 360.0F;
|
|
|
|
if (fx >= 180.0F) {
|
|
|
|
if (fx >= 180.0F) {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
index 98d182fdb..487d98eb1 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class MinecraftServer implements IAsyncTaskHandler, IMojangStati
|
|
|
|
@@ -904,7 +1014,7 @@ index 98d182fdb..487d98eb1 100644
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PaperAsyncChunkProvider.java b/src/main/java/net/minecraft/server/PaperAsyncChunkProvider.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PaperAsyncChunkProvider.java b/src/main/java/net/minecraft/server/PaperAsyncChunkProvider.java
|
|
|
|
new file mode 100644
|
|
|
|
new file mode 100644
|
|
|
|
index 000000000..5823917a6
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0
|
|
|
|
--- /dev/null
|
|
|
|
--- /dev/null
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PaperAsyncChunkProvider.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PaperAsyncChunkProvider.java
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
@@ -0,0 +0,0 @@
|
|
|
|
@@ -1502,7 +1612,7 @@ index 000000000..5823917a6
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java
|
|
|
|
index 2c7c8adf7..aabd107fe 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/PlayerChunk.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PlayerChunk.java
|
|
|
|
@@ -0,0 +0,0 @@ public class PlayerChunk {
|
|
|
|
@@ -0,0 +0,0 @@ public class PlayerChunk {
|
|
|
|
@@ -1607,7 +1717,7 @@ index 2c7c8adf7..aabd107fe 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
|
|
index d1a443ca8..1504bd113 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
|
|
|
@@ -0,0 +0,0 @@ public class PlayerChunkMap {
|
|
|
|
@@ -0,0 +0,0 @@ public class PlayerChunkMap {
|
|
|
|
@@ -1667,7 +1777,7 @@ index d1a443ca8..1504bd113 100644
|
|
|
|
|
|
|
|
|
|
|
|
private void e() {
|
|
|
|
private void e() {
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java b/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java b/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
|
|
|
|
index 3c35c0f48..187ca2813 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/RegionLimitedWorldAccess.java
|
|
|
|
@@ -0,0 +0,0 @@ public class RegionLimitedWorldAccess implements GeneratorAccess {
|
|
|
|
@@ -0,0 +0,0 @@ public class RegionLimitedWorldAccess implements GeneratorAccess {
|
|
|
|
@@ -1680,7 +1790,7 @@ index 3c35c0f48..187ca2813 100644
|
|
|
|
this.m = world.getChunkProvider().getChunkGenerator().getSettings();
|
|
|
|
this.m = world.getChunkProvider().getChunkGenerator().getSettings();
|
|
|
|
this.i = world.getSeaLevel();
|
|
|
|
this.i = world.getSeaLevel();
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/SchedulerBatch.java b/src/main/java/net/minecraft/server/SchedulerBatch.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/SchedulerBatch.java b/src/main/java/net/minecraft/server/SchedulerBatch.java
|
|
|
|
index d868149d1..0d45d933e 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/SchedulerBatch.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/SchedulerBatch.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/SchedulerBatch.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/SchedulerBatch.java
|
|
|
|
@@ -0,0 +0,0 @@ public class SchedulerBatch<K, T extends SchedulerTask<K, T>, R> {
|
|
|
|
@@ -0,0 +0,0 @@ public class SchedulerBatch<K, T extends SchedulerTask<K, T>, R> {
|
|
|
|
@@ -1735,7 +1845,7 @@ index d868149d1..0d45d933e 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/StructurePiece.java b/src/main/java/net/minecraft/server/StructurePiece.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/StructurePiece.java b/src/main/java/net/minecraft/server/StructurePiece.java
|
|
|
|
index a5cf017da..def8730b8 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/StructurePiece.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/StructurePiece.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/StructurePiece.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/StructurePiece.java
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class StructurePiece {
|
|
|
|
@@ -0,0 +0,0 @@ public abstract class StructurePiece {
|
|
|
|
@@ -1762,7 +1872,7 @@ index a5cf017da..def8730b8 100644
|
|
|
|
return null;
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/StructureStart.java b/src/main/java/net/minecraft/server/StructureStart.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/StructureStart.java b/src/main/java/net/minecraft/server/StructureStart.java
|
|
|
|
index f87182b5c..574930f5f 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/StructureStart.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/StructureStart.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/StructureStart.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/StructureStart.java
|
|
|
|
@@ -0,0 +0,0 @@ import java.util.List;
|
|
|
|
@@ -0,0 +0,0 @@ import java.util.List;
|
|
|
|
@@ -1811,7 +1921,7 @@ index f87182b5c..574930f5f 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
|
|
index a2559f0c1..bbcedb8fc 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
|
|
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
|
|
|
@@ -0,0 +0,0 @@ import org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason;
|
|
|
|
@@ -1908,7 +2018,7 @@ index a2559f0c1..bbcedb8fc 100644
|
|
|
|
if (entity == null) return false;
|
|
|
|
if (entity == null) return false;
|
|
|
|
if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); return true; } // Paper
|
|
|
|
if (entity.valid) { MinecraftServer.LOGGER.error("Attempted Double World add on " + entity, new Throwable()); return true; } // Paper
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenStronghold.java b/src/main/java/net/minecraft/server/WorldGenStronghold.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldGenStronghold.java b/src/main/java/net/minecraft/server/WorldGenStronghold.java
|
|
|
|
index fa99fe014..4f49786aa 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/WorldGenStronghold.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/WorldGenStronghold.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenStronghold.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/WorldGenStronghold.java
|
|
|
|
@@ -0,0 +0,0 @@ import java.util.Random;
|
|
|
|
@@ -0,0 +0,0 @@ import java.util.Random;
|
|
|
|
@@ -2055,7 +2165,7 @@ index fa99fe014..4f49786aa 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
index ad3fea9c9..0a7648263 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
|
|
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
|
|
|
@@ -0,0 +0,0 @@ public class WorldServer extends World implements IAsyncTaskHandler {
|
|
|
|
@@ -2068,7 +2178,7 @@ index ad3fea9c9..0a7648263 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
index 9c7b86a55..206cb30f6 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
|
|
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
|
|
|
@@ -0,0 +0,0 @@ public final class CraftServer implements Server {
|
|
|
|
@@ -2096,7 +2206,7 @@ index 9c7b86a55..206cb30f6 100644
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
index d0110070a..02b6bf299 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
|
|
|
@@ -0,0 +0,0 @@ public class CraftWorld implements World {
|
|
|
|
@@ -0,0 +0,0 @@ public class CraftWorld implements World {
|
|
|
|
@@ -2134,7 +2244,7 @@ index d0110070a..02b6bf299 100644
|
|
|
|
if (isChunkLoaded(chunkCoordX + x, chunkCoordZ + z)) {
|
|
|
|
if (isChunkLoaded(chunkCoordX + x, chunkCoordZ + z)) {
|
|
|
|
unloadChunk(chunkCoordX + x, chunkCoordZ + z);
|
|
|
|
unloadChunk(chunkCoordX + x, chunkCoordZ + z);
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
index 9e903159d..4ead18b66 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
|
|
|
|
@@ -0,0 +0,0 @@ public class CraftEventFactory {
|
|
|
|
@@ -0,0 +0,0 @@ public class CraftEventFactory {
|
|
|
|
@@ -2196,7 +2306,7 @@ index 9e903159d..4ead18b66 100644
|
|
|
|
|
|
|
|
|
|
|
|
if (!event.isCancelled()) {
|
|
|
|
if (!event.isCancelled()) {
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
|
|
index 9c2adb235..62c197b80 100644
|
|
|
|
index 7ac07ac07ac0..7ac07ac07ac0 100644
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/generator/CustomChunkGenerator.java
|
|
|
|
@@ -0,0 +0,0 @@ public class CustomChunkGenerator extends InternalChunkGenerator<GeneratorSettin
|
|
|
|
@@ -0,0 +0,0 @@ public class CustomChunkGenerator extends InternalChunkGenerator<GeneratorSettin
|
|
|
|
|