Restructure lighting queue runnable handling

Instead of overriding add within the queue, never add runnables to the
queue if the light queue is disabled.

This change is made to make timings reports and stacktraces less
confusing for administrators, who prior to this change, would have seen
the lighting queue referenced in both, regardless of whether or not it
was enabled.

This change should not affect performance, nor is it made with the
intent to.
This commit is contained in:
Zach Brown 2017-12-22 15:25:01 -06:00
parent fc194dfaae
commit 34731dd04e
No known key found for this signature in database
GPG key ID: CC9DA35FC5450B76
13 changed files with 106 additions and 99 deletions

View file

@ -1,4 +1,4 @@
From 91e45fcf2bf47bd1fedb7a09c7e0e1f14a1230bf Mon Sep 17 00:00:00 2001
From 1564084393d4718d099082ea434dd8f2b1a0b53a Mon Sep 17 00:00:00 2001
From: Byteflux <byte@byteflux.net>
Date: Wed, 2 Mar 2016 00:52:31 -0600
Subject: [PATCH] Lighting Queue
@ -6,7 +6,7 @@ Subject: [PATCH] Lighting Queue
This provides option to queue lighting updates to ensure they do not cause the server lag
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
index e0ad559b7..4eebd9fae 100644
index e0ad559b..4eebd9fa 100644
--- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java
+++ b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
@@ -49,6 +49,8 @@ public class WorldTimingsHandler {
@ -27,7 +27,7 @@ index e0ad559b7..4eebd9fae 100644
}
}
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index e524a464f..fd606ee14 100644
index e524a464..fd606ee1 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -143,4 +143,10 @@ public class PaperWorldConfig {
@ -42,7 +42,7 @@ index e524a464f..fd606ee14 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index a4b7d0176..6def9debe 100644
index 66c78083..c1f25e8d 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -33,6 +33,7 @@ public class Chunk {
@ -57,7 +57,7 @@ index a4b7d0176..6def9debe 100644
private void h(boolean flag) {
this.world.methodProfiler.a("recheckGaps");
if (this.world.areChunksLoaded(new BlockPosition(this.locX * 16 + 8, 0, this.locZ * 16 + 8), 16)) {
+ lightingQueue.add(() -> recheckGaps(flag)); // Paper - Queue light update
+ this.runOrQueueLightUpdate(() -> recheckGaps(flag)); // Paper - Queue light update
+ }
+ }
+
@ -67,16 +67,15 @@ index a4b7d0176..6def9debe 100644
for (int i = 0; i < 16; ++i) {
for (int j = 0; j < 16; ++j) {
if (this.i[i + j * 16]) {
@@ -481,7 +489,7 @@ public class Chunk {
} else {
@@ -482,6 +490,7 @@ public class Chunk {
if (flag) {
this.initLighting();
- } else {
+ } else { lightingQueue.add(() -> { // Paper - Queue light update
} else {
+ this.runOrQueueLightUpdate(() -> { // Paper - Queue light update
int j1 = iblockdata.c();
int k1 = iblockdata1.c();
@@ -496,6 +504,7 @@ public class Chunk {
@@ -496,6 +505,7 @@ public class Chunk {
if (j1 != k1 && (j1 < k1 || this.getBrightness(EnumSkyBlock.SKY, blockposition) > 0 || this.getBrightness(EnumSkyBlock.BLOCK, blockposition) > 0)) {
this.d(i, k);
}
@ -84,8 +83,25 @@ index a4b7d0176..6def9debe 100644
}
TileEntity tileentity;
@@ -1340,6 +1350,16 @@ public class Chunk {
this.w = i;
}
+ // Paper start
+ public void runOrQueueLightUpdate(Runnable runnable) {
+ if (this.world.paperConfig.queueLightUpdates) {
+ lightingQueue.add(runnable);
+ } else {
+ runnable.run();
+ }
+ }
+ // Paper end
+
public static enum EnumTileEntityState {
IMMEDIATE, QUEUED, CHECK;
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index 024ea5912..ae527d527 100644
index 69ded6aa..e9bc23a6 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -295,6 +295,7 @@ public class ChunkProviderServer implements IChunkProvider {
@ -97,7 +113,7 @@ index 024ea5912..ae527d527 100644
// Update neighbor counts
for (int x = -2; x < 3; x++) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index f4d0e2678..5b0431c57 100644
index 47fe9262..d63a243f 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -722,7 +722,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
@ -119,10 +135,10 @@ index f4d0e2678..5b0431c57 100644
}
diff --git a/src/main/java/net/minecraft/server/PaperLightingQueue.java b/src/main/java/net/minecraft/server/PaperLightingQueue.java
new file mode 100644
index 000000000..d8d3e1efd
index 00000000..345cd582
--- /dev/null
+++ b/src/main/java/net/minecraft/server/PaperLightingQueue.java
@@ -0,0 +1,101 @@
@@ -0,0 +1,92 @@
+package net.minecraft.server;
+
+import co.aikar.timings.Timing;
@ -164,15 +180,6 @@ index 000000000..d8d3e1efd
+ this.chunk = chunk;
+ }
+
+ @Override
+ public boolean add(Runnable runnable) {
+ if (chunk.world.paperConfig.queueLightUpdates) {
+ return super.add(runnable);
+ }
+ runnable.run();
+ return true;
+ }
+
+ /**
+ * Processes the lighting queue for this chunk
+ *
@ -225,7 +232,7 @@ index 000000000..d8d3e1efd
+ }
+}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index c25e65428..763f21570 100644
index fd5f8102..77ed2d24 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -391,7 +391,7 @@ public abstract class World implements IBlockAccess {
@ -233,10 +240,10 @@ index c25e65428..763f21570 100644
if (iblockdata.c() != iblockdata1.c() || iblockdata.d() != iblockdata1.d()) {
this.methodProfiler.a("checkLight");
- this.w(blockposition);
+ chunk.lightingQueue.add(() -> this.w(blockposition)); // Paper - Queue light update
+ chunk.runOrQueueLightUpdate(() -> this.w(blockposition)); // Paper - Queue light update
this.methodProfiler.b();
}
--
2.13.4
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 0c1ce95af25b8c95b34c255e9c0a440d64a100d7 Mon Sep 17 00:00:00 2001
From 629064b222df6125fa3e161bdafa5746ba9b467e Mon Sep 17 00:00:00 2001
From: CullanP <cullanpage@gmail.com>
Date: Thu, 3 Mar 2016 02:13:38 -0600
Subject: [PATCH] Avoid hopper searches if there are no items
@ -14,7 +14,7 @@ And since minecart hoppers are used _very_ rarely near we can avoid alot of sear
Combined, this adds up a lot.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index b80f95159..e1fc4ea6c 100644
index c1f25e8d..2a1c11a0 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -47,6 +47,13 @@ public class Chunk {
@ -31,7 +31,7 @@ index b80f95159..e1fc4ea6c 100644
// CraftBukkit start - Neighbor loaded cache for chunk lighting and entity ticking
private int neighbors = 0x1 << 12;
public long chunkKey;
@@ -618,6 +625,13 @@ public class Chunk {
@@ -619,6 +626,13 @@ public class Chunk {
entity.ac = k;
entity.ad = this.locZ;
this.entitySlices[k].add(entity);
@ -45,7 +45,7 @@ index b80f95159..e1fc4ea6c 100644
// Spigot start - increment creature type count
// Keep this synced up with World.a(Class)
if (entity instanceof EntityInsentient) {
@@ -650,6 +664,13 @@ public class Chunk {
@@ -651,6 +665,13 @@ public class Chunk {
}
this.entitySlices[i].remove(entity);
@ -59,7 +59,7 @@ index b80f95159..e1fc4ea6c 100644
// Spigot start - decrement creature type count
// Keep this synced up with World.a(Class)
if (entity instanceof EntityInsentient) {
@@ -841,6 +862,15 @@ public class Chunk {
@@ -842,6 +863,15 @@ public class Chunk {
if (!this.entitySlices[k].isEmpty()) {
Iterator iterator = this.entitySlices[k].iterator();
@ -75,7 +75,7 @@ index b80f95159..e1fc4ea6c 100644
while (iterator.hasNext()) {
Entity entity1 = (Entity) iterator.next();
@@ -877,7 +907,18 @@ public class Chunk {
@@ -878,7 +908,18 @@ public class Chunk {
i = MathHelper.clamp(i, 0, this.entitySlices.length - 1);
j = MathHelper.clamp(j, 0, this.entitySlices.length - 1);
@ -95,5 +95,5 @@ index b80f95159..e1fc4ea6c 100644
while (iterator.hasNext()) {
--
2.12.2.windows.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From b2d4ae07752d89d22e2ccabc3d2aed3990e9dd81 Mon Sep 17 00:00:00 2001
From a9e8dac195aef49744961d9c9edaab6cd1de17b3 Mon Sep 17 00:00:00 2001
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 03:15:41 -0600
Subject: [PATCH] Add exception reporting event
@ -6,7 +6,7 @@ Subject: [PATCH] Add exception reporting event
diff --git a/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java
new file mode 100644
index 000000000..93397188b
index 00000000..93397188
--- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/ServerSchedulerReportingWrapper.java
@@ -0,0 +1,38 @@
@ -50,7 +50,7 @@ index 000000000..93397188b
+}
\ No newline at end of file
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index b815acd3e..2a8393dcb 100644
index 2a1c11a0..cc4a9dbe 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1,5 +1,6 @@
@ -68,7 +68,7 @@ index b815acd3e..2a8393dcb 100644
public class Chunk {
@@ -757,10 +759,15 @@ public class Chunk {
@@ -758,10 +760,15 @@ public class Chunk {
this.tileEntities.remove(blockposition);
// Paper end
} else {
@ -89,7 +89,7 @@ index b815acd3e..2a8393dcb 100644
}
}
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index e9bc23a6f..4e51585a1 100644
index e9bc23a6..4e51585a 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -12,6 +12,7 @@ import java.util.Iterator;
@ -144,7 +144,7 @@ index e9bc23a6f..4e51585a1 100644
}
diff --git a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
index 83322b85b..b943a9b20 100644
index 83322b85..b943a9b2 100644
--- a/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
+++ b/src/main/java/net/minecraft/server/NameReferencingFileConverter.java
@@ -1,5 +1,7 @@
@ -172,7 +172,7 @@ index 83322b85b..b943a9b20 100644
}
// CraftBukkit end
diff --git a/src/main/java/net/minecraft/server/PersistentCollection.java b/src/main/java/net/minecraft/server/PersistentCollection.java
index 936d6c640..50056f49a 100644
index 936d6c64..50056f49 100644
--- a/src/main/java/net/minecraft/server/PersistentCollection.java
+++ b/src/main/java/net/minecraft/server/PersistentCollection.java
@@ -1,5 +1,6 @@
@ -199,7 +199,7 @@ index 936d6c640..50056f49a 100644
}
diff --git a/src/main/java/net/minecraft/server/RegionFile.java b/src/main/java/net/minecraft/server/RegionFile.java
index 1ba26de5c..6a92b5af8 100644
index 1ba26de5..6a92b5af 100644
--- a/src/main/java/net/minecraft/server/RegionFile.java
+++ b/src/main/java/net/minecraft/server/RegionFile.java
@@ -1,5 +1,6 @@
@ -226,7 +226,7 @@ index 1ba26de5c..6a92b5af8 100644
}
diff --git a/src/main/java/net/minecraft/server/RegionFileCache.java b/src/main/java/net/minecraft/server/RegionFileCache.java
index c15a0d1f8..5f9e9ddef 100644
index c15a0d1f..5f9e9dde 100644
--- a/src/main/java/net/minecraft/server/RegionFileCache.java
+++ b/src/main/java/net/minecraft/server/RegionFileCache.java
@@ -1,5 +1,6 @@
@ -245,7 +245,7 @@ index c15a0d1f8..5f9e9ddef 100644
}
diff --git a/src/main/java/net/minecraft/server/SpawnerCreature.java b/src/main/java/net/minecraft/server/SpawnerCreature.java
index 1c7c187c7..68a045323 100644
index 1c7c187c..68a04532 100644
--- a/src/main/java/net/minecraft/server/SpawnerCreature.java
+++ b/src/main/java/net/minecraft/server/SpawnerCreature.java
@@ -7,6 +7,7 @@ import java.util.Random;
@ -273,7 +273,7 @@ index 1c7c187c7..68a045323 100644
}
diff --git a/src/main/java/net/minecraft/server/VillageSiege.java b/src/main/java/net/minecraft/server/VillageSiege.java
index 9ff4f23ab..6fce3015f 100644
index 9ff4f23a..6fce3015 100644
--- a/src/main/java/net/minecraft/server/VillageSiege.java
+++ b/src/main/java/net/minecraft/server/VillageSiege.java
@@ -1,5 +1,7 @@
@ -293,7 +293,7 @@ index 9ff4f23ab..6fce3015f 100644
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index b814d965e..550d916ce 100644
index 89197281..6be9c181 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -1,5 +1,7 @@
@ -329,7 +329,7 @@ index b814d965e..550d916ce 100644
this.tileEntityListTick.remove(tileTickPosition--);
continue;
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
index d50bbd2a6..bce411288 100644
index d50bbd2a..bce41128 100644
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
+++ b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
@@ -15,6 +15,9 @@ import java.util.concurrent.atomic.AtomicReference;
@ -373,5 +373,5 @@ index d50bbd2a6..bce411288 100644
// (async tasks must live with race-conditions if they attempt to cancel between these few lines of code)
}
--
2.15.1
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 514130481f7133c11f95558ccfa0c017558d9770 Mon Sep 17 00:00:00 2001
From 722ea2a8bface335c87958b7c9337c9e96000c81 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Fri, 18 Mar 2016 20:16:03 -0400
Subject: [PATCH] Add World Util Methods
@ -6,10 +6,10 @@ Subject: [PATCH] Add World Util Methods
Methods that can be used for other patches to help improve logic.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 33737af78..1a77dfe4e 100644
index cc4a9dbe..84a88056 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -580,6 +580,7 @@ public class Chunk {
@@ -581,6 +581,7 @@ public class Chunk {
}
@ -18,7 +18,7 @@ index 33737af78..1a77dfe4e 100644
int j = blockposition.getX() & 15;
int k = blockposition.getY();
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index 22497993c..557660163 100644
index 6be9c181..9339bf83 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -77,7 +77,7 @@ public abstract class World implements IBlockAccess {
@ -119,5 +119,5 @@ index 22497993c..557660163 100644
// CraftBukkit start - tree generation
if (captureTreeGeneration) {
--
2.13.3.windows.1
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From f232c0220c8e33143f2c82cb67e8645356e4ab20 Mon Sep 17 00:00:00 2001
From 76a5db0ee94c7fb95adac70a4b0a1716cf7c87a9 Mon Sep 17 00:00:00 2001
From: Gabscap <sonstige.netzwerke@gabriel-paradzik.de>
Date: Sat, 19 Mar 2016 22:25:11 +0100
Subject: [PATCH] Waving banner workaround
@ -34,5 +34,5 @@ index c5c3f40c..6413f76e 100644
public void a(PacketDataSerializer packetdataserializer) throws IOException {
--
2.13.1.windows.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 1875459e0b11e6b9611b7e55e64b4c2508a60072 Mon Sep 17 00:00:00 2001
From 85af59e5efe9dc63852fd38624fae257d95cdc56 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 28 Mar 2016 20:46:14 -0400
Subject: [PATCH] Configurable Chunk Inhabited Timer
@ -23,10 +23,10 @@ index e706efff..2c682ccf 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 7eb8deb2..32166ee8 100644
index 172d00bd..300a5619 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1407,7 +1407,7 @@ public class Chunk {
@@ -1408,7 +1408,7 @@ public class Chunk {
}
public long x() {
@ -36,5 +36,5 @@ index 7eb8deb2..32166ee8 100644
public void c(long i) {
--
2.13.1.windows.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 6451b52e836abb928f24aad8dda1a7fa68f7107e Mon Sep 17 00:00:00 2001
From 36f81b84e0a48db88becd763857034391bce22d9 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 14 Apr 2016 21:01:39 -0400
Subject: [PATCH] Fix Bugs with Spigot Mob Spawn Logic
@ -14,10 +14,10 @@ Specially with servers using smaller mob spawn ranges than view distance, as wel
This patch returns mob counting to use all loaded chunks, and 17x17 division.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 32166ee8..02aeef54 100644
index 300a5619..ecc76a88 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -682,7 +682,7 @@ public class Chunk {
@@ -683,7 +683,7 @@ public class Chunk {
i = this.entitySlices.length - 1;
}
@ -56,5 +56,5 @@ index 45a83ae9..2cd06382 100644
Iterator iterator1 = this.b.iterator();
--
2.13.1.windows.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 5f7b9ff421c563a1006b28c791ad548fdad2f28d Mon Sep 17 00:00:00 2001
From 73859b56033285cbe25838550eea43ef5b6112ea Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Thu, 12 May 2016 01:55:17 -0400
Subject: [PATCH] Do not mark chunks as active for neighbor updates
@ -6,10 +6,10 @@ Subject: [PATCH] Do not mark chunks as active for neighbor updates
Fixes chunk unload issues
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 02aeef54..d662a5a2 100644
index ecc76a88..f1bcdef5 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -1006,25 +1006,25 @@ public class Chunk {
@@ -1007,25 +1007,25 @@ public class Chunk {
// CraftBukkit end
world.timings.syncChunkLoadPostTimer.stopTiming(); // Paper
world.timings.syncChunkLoadPopulateNeighbors.startTiming(); // Paper
@ -44,5 +44,5 @@ index 02aeef54..d662a5a2 100644
if (chunk4 != null) {
chunk4.a(chunkgenerator);
--
2.13.1.windows.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From c71fcf67f2672505bcdba3ec19a1e51421b00e70 Mon Sep 17 00:00:00 2001
From e4a5cc333ba15d9aecec76562062dfa20617fa61 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Mon, 19 Sep 2016 23:16:39 -0400
Subject: [PATCH] Auto Save Improvements
@ -12,7 +12,7 @@ Re-introduce a cap per tick for auto save (Spigot disabled the vanilla cap) and
Adds incremental player auto saving too
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
index 621c585e7..da0984a35 100644
index 621c585e..da0984a3 100644
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
@@ -251,4 +251,9 @@ public class PaperConfig {
@ -26,7 +26,7 @@ index 621c585e7..da0984a35 100644
+ }
}
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
index cec9ea74c..39f8a0a2c 100644
index cec9ea74..39f8a0a2 100644
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -2,6 +2,7 @@ package com.destroystokyo.paper;
@ -58,10 +58,10 @@ index cec9ea74c..39f8a0a2c 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index a0b5cd56b..f98d380f6 100644
index 8ec26b97..87730aec 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -962,11 +962,9 @@ public class Chunk {
@@ -963,11 +963,9 @@ public class Chunk {
if (this.t && this.world.getTime() != this.lastSaved || this.s) {
return true;
}
@ -76,7 +76,7 @@ index a0b5cd56b..f98d380f6 100644
public Random a(long i) {
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
index a01356ccc..08bc8c928 100644
index 0adfcaa8..9e8f67ff 100644
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
@@ -1,5 +1,6 @@
@ -96,7 +96,7 @@ index a01356ccc..08bc8c928 100644
}
}
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
index ed4fc3096..299b1df9e 100644
index b937b6d0..ef081a57 100644
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
@@ -32,6 +32,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
@ -108,7 +108,7 @@ index ed4fc3096..299b1df9e 100644
public final MinecraftServer server;
public final PlayerInteractManager playerInteractManager;
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 9e43646eb..86eac80a1 100644
index ab793307..5c09c6ff 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -119,6 +119,7 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IAs
@ -155,7 +155,7 @@ index 9e43646eb..86eac80a1 100644
this.methodProfiler.a("tallying");
// Spigot start
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index 30ca137e6..953e5f901 100644
index 30ca137e..953e5f90 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -343,6 +343,7 @@ public abstract class PlayerList {
@ -192,7 +192,7 @@ index 30ca137e6..953e5f901 100644
public void addWhitelist(GameProfile gameprofile) {
this.whitelist.add(new WhiteListEntry(gameprofile));
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
index 3865b31cb..87a95857c 100644
index f2ddc22d..8493dcce 100644
--- a/src/main/java/net/minecraft/server/WorldServer.java
+++ b/src/main/java/net/minecraft/server/WorldServer.java
@@ -1050,8 +1050,9 @@ public class WorldServer extends World implements IAsyncTaskHandler {
@ -215,5 +215,5 @@ index 3865b31cb..87a95857c 100644
timings.worldSaveChunks.startTiming(); // Paper
chunkproviderserver.a(flag);
--
2.13.4
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From ab2977d788287170bd54ff9394882fef9816fab5 Mon Sep 17 00:00:00 2001
From 0935daa9352d7d6e412b3033ad61566161dae70d Mon Sep 17 00:00:00 2001
From: Zach Brown <zach.brown@destroystokyo.com>
Date: Wed, 5 Oct 2016 16:27:36 -0500
Subject: [PATCH] Option to remove corrupt tile entities
@ -19,10 +19,10 @@ index 39f8a0a2..efae01b1 100644
+ }
}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index f98d380f..ed595955 100644
index 87730aec..1d056031 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -785,11 +785,17 @@ public class Chunk {
@@ -786,11 +786,17 @@ public class Chunk {
"Chunk coordinates: " + (this.locX * 16) + "," + (this.locZ * 16));
e.printStackTrace();
ServerInternalException.reportInternalException(e);
@ -41,5 +41,5 @@ index f98d380f..ed595955 100644
if (this.j) {
TileEntity tileentity = (TileEntity) this.tileEntities.remove(blockposition);
--
2.13.1.windows.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 33f96c9d29daf8d704163555175bceb3bddb6d69 Mon Sep 17 00:00:00 2001
From 3271414d04333646dc6cb277c20b6db84ee420f6 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co>
Date: Tue, 27 Dec 2016 22:38:06 -0500
Subject: [PATCH] Activation Range Improvements
@ -6,7 +6,7 @@ Subject: [PATCH] Activation Range Improvements
Fixes and adds new Immunities to improve gameplay behavior
diff --git a/src/main/java/net/minecraft/server/EntityCreature.java b/src/main/java/net/minecraft/server/EntityCreature.java
index 0c82c6f5b..9659a45ef 100644
index 0c82c6f5..9659a45e 100644
--- a/src/main/java/net/minecraft/server/EntityCreature.java
+++ b/src/main/java/net/minecraft/server/EntityCreature.java
@@ -10,6 +10,7 @@ public abstract class EntityCreature extends EntityInsentient {
@ -18,7 +18,7 @@ index 0c82c6f5b..9659a45ef 100644
private float b;
private final float c;
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index 3086a36f9..b437ebf26 100644
index 20aac1f3..650e549b 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -73,7 +73,7 @@ public abstract class EntityLiving extends Entity {
@ -31,7 +31,7 @@ index 3086a36f9..b437ebf26 100644
protected int ticksFarFromPlayer;
protected float aW;
diff --git a/src/main/java/net/minecraft/server/EntityLlama.java b/src/main/java/net/minecraft/server/EntityLlama.java
index dbda68dd0..af49b7273 100644
index dbda68dd..af49b727 100644
--- a/src/main/java/net/minecraft/server/EntityLlama.java
+++ b/src/main/java/net/minecraft/server/EntityLlama.java
@@ -363,6 +363,7 @@ public class EntityLlama extends EntityHorseChestedAbstract implements IRangedEn
@ -43,7 +43,7 @@ index dbda68dd0..af49b7273 100644
return this.bL != null;
}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoal.java b/src/main/java/net/minecraft/server/PathfinderGoal.java
index 83d9c43f3..1cb6652c2 100644
index 83d9c43f..1cb6652c 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoal.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoal.java
@@ -18,7 +18,10 @@ public abstract class PathfinderGoal {
@ -59,7 +59,7 @@ index 83d9c43f3..1cb6652c2 100644
public void e() {}
diff --git a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
index e5b5e9887..e3781f3a8 100644
index e5b5e988..e3781f3a 100644
--- a/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
+++ b/src/main/java/net/minecraft/server/PathfinderGoalGotoTarget.java
@@ -2,12 +2,21 @@ package net.minecraft.server;
@ -96,7 +96,7 @@ index e5b5e9887..e3781f3a8 100644
}
}
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
index 47865c027..b08564618 100644
index 47865c02..b0856461 100644
--- a/src/main/java/org/spigotmc/ActivationRange.java
+++ b/src/main/java/org/spigotmc/ActivationRange.java
@@ -20,6 +20,7 @@ import net.minecraft.server.EntityFireball;
@ -141,5 +141,5 @@ index 47865c027..b08564618 100644
{
EntityAnimal animal = (EntityAnimal) entity;
--
2.14.2
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 12b129d5b07628e21299a3ed82829426c2c34c92 Mon Sep 17 00:00:00 2001
From 7414470453c5c5cf82c7d966a4ffa2ceabe7d5e2 Mon Sep 17 00:00:00 2001
From: stonar96 <minecraft.stonar96@gmail.com>
Date: Thu, 21 Sep 2017 00:38:47 +0200
Subject: [PATCH] Anti-Xray
@ -993,7 +993,7 @@ index 00000000..8ea2beb5
+ }
+}
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index e6e54965..33018fa3 100644
index 1d056031..d1066d82 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -129,7 +129,7 @@ public class Chunk {
@ -1014,7 +1014,7 @@ index e6e54965..33018fa3 100644
this.sections[j >> 4] = chunksection;
flag = j >= i1;
}
@@ -581,7 +581,7 @@ public class Chunk {
@@ -582,7 +582,7 @@ public class Chunk {
ChunkSection chunksection = this.sections[k >> 4];
if (chunksection == Chunk.a) {
@ -1477,7 +1477,7 @@ index 48a008e0..045adbd3 100644
} else {
this.a((Packet) (new PacketPlayOutMultiBlockChange(this.dirtyCount, this.dirtyBlocks, this.chunk)));
diff --git a/src/main/java/net/minecraft/server/PlayerInteractManager.java b/src/main/java/net/minecraft/server/PlayerInteractManager.java
index a1689c06..b1826332 100644
index a49b5c81..5ec7f581 100644
--- a/src/main/java/net/minecraft/server/PlayerInteractManager.java
+++ b/src/main/java/net/minecraft/server/PlayerInteractManager.java
@@ -200,6 +200,8 @@ public class PlayerInteractManager {
@ -1502,7 +1502,7 @@ index 8860a012..fa0d66d6 100644
return this.a.size();
}
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
index f690aaa1..e193f86f 100644
index 00513d02..592e5b3b 100644
--- a/src/main/java/net/minecraft/server/World.java
+++ b/src/main/java/net/minecraft/server/World.java
@@ -35,6 +35,8 @@ import org.bukkit.generator.ChunkGenerator;
@ -1579,5 +1579,5 @@ index 9942f0c7..2da6edc6 100644
}
}
--
2.14.1.windows.1
2.15.1.windows.2

View file

@ -1,4 +1,4 @@
From 055189fd7e43d4c4bec00f501fb3d66fcc192e0c Mon Sep 17 00:00:00 2001
From 2153af4f9929cba896d12b8c3561f75ca8f7ea5d Mon Sep 17 00:00:00 2001
From: Shane Freeder <theboyetronic@gmail.com>
Date: Mon, 18 Dec 2017 07:26:56 +0000
Subject: [PATCH] Don't blindly send unlit chunks when lighting updates are
@ -18,7 +18,7 @@ only send chunks which are actually ready to be sent, otherwise, we
will always send chunks.
diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java
index 33018fa3d..4b1b236a7 100644
index d1066d82..001fca42 100644
--- a/src/main/java/net/minecraft/server/Chunk.java
+++ b/src/main/java/net/minecraft/server/Chunk.java
@@ -39,7 +39,7 @@ public class Chunk {
@ -30,7 +30,7 @@ index 33018fa3d..4b1b236a7 100644
private boolean s;
private boolean t;
private long lastSaved;
@@ -1135,7 +1135,11 @@ public class Chunk {
@@ -1136,7 +1136,11 @@ public class Chunk {
* We cannot unfortunately do this lighting stage during chunk gen as it appears to put a lot more noticeable load on the server, than when it is done at play time.
* For now at least we will simply send all chunks, in accordance with pre 1.7 behaviour.
*/
@ -44,5 +44,5 @@ index 33018fa3d..4b1b236a7 100644
}
--
2.15.1
2.15.1.windows.2