diff --git a/Spigot-Server-Patches/0321-Entity-add-to-world-fixes.patch b/Spigot-Server-Patches/0321-Entity-add-to-world-fixes.patch index 99e3999a8e..d5baf26034 100644 --- a/Spigot-Server-Patches/0321-Entity-add-to-world-fixes.patch +++ b/Spigot-Server-Patches/0321-Entity-add-to-world-fixes.patch @@ -1,4 +1,4 @@ -From 9371f9dbc894ceb59d0a7fc7ac0df987c8c8b520 Mon Sep 17 00:00:00 2001 +From 3ad5ebde68a9a0a224d8c458cbf491555ecb120e Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 3 Aug 2018 22:47:46 -0400 Subject: [PATCH] Entity add to world fixes @@ -14,10 +14,19 @@ Fix this by differing entity add to world for all entities at the same time the original entity is dead, overwrite it as the logic does for unloaod queued entities. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 37bb6f40c..ee4332eda 100644 +index 37bb6f40c..414c27516 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -916,6 +916,7 @@ public class Chunk implements IChunkAccess { +@@ -2,6 +2,8 @@ package net.minecraft.server; + + // Paper start + import com.destroystokyo.paper.PaperWorldConfig.DuplicateUUIDMode; ++ ++import java.util.Arrays; + import java.util.HashMap; + import java.util.UUID; + // Paper end +@@ -916,6 +918,7 @@ public class Chunk implements IChunkAccess { this.world.a(this.tileEntities.values()); List[] aentityslice = this.entitySlices; // Spigot int i = aentityslice.length; @@ -25,7 +34,7 @@ index 37bb6f40c..ee4332eda 100644 for (int j = 0; j < i; ++j) { // CraftBukkit start -@@ -964,18 +965,18 @@ public class Chunk implements IChunkAccess { +@@ -964,17 +967,17 @@ public class Chunk implements IChunkAccess { } } // Paper end @@ -40,20 +49,19 @@ index 37bb6f40c..ee4332eda 100644 - })); - entityslice.removeAll(toRemove); // CraftBukkit end ++ this.world.addChunkEntities(entityslice.stream() // Paper - add all at same time to avoid entities adding to world modifying slice state, skip already added entities (not normal, but can happen) ++ // Paper start - Inline event into stream ++ .filter((entity) -> { ++ if (!this.needsDecoration) { ++ return true; ++ } ++ return CraftEventFactory.doEntityAddEventCalling(this.world, entity, CreatureSpawnEvent.SpawnReason.CHUNK_GEN); ++ }) ++ // Paper end - Inline event into stream ++ .filter((entity) -> !(entity instanceof EntityHuman || entity.valid))); // Paper - add all at same time to avoid entities adding to world modifying slice state, skip already added entities (not normal, but can happen) } -+ this.world.addChunkEntities(toAdd.stream() // Paper - add all at same time to avoid entities adding to world modifying slice state, skip already added entities (not normal, but can happen) -+ // Paper start - Inline event into stream -+ .filter((entity) -> { -+ if (!this.needsDecoration) { -+ return true; -+ } -+ return CraftEventFactory.doEntityAddEventCalling(this.world, entity, CreatureSpawnEvent.SpawnReason.CHUNK_GEN); -+ }) -+ // Paper end - Inline event into stream -+ .filter((entity) -> !(entity instanceof EntityHuman || entity.valid))); // Paper - add all at same time to avoid entities adding to world modifying slice state, skip already added entities (not normal, but can happen) // CraftBukkit start - org.bukkit.Server server = this.world.getServer(); diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 5e61826f6..bd6f64e52 100644 --- a/src/main/java/net/minecraft/server/World.java diff --git a/Spigot-Server-Patches/0339-Anti-Xray.patch b/Spigot-Server-Patches/0339-Anti-Xray.patch index a15f5dc40b..b34e0ce874 100644 --- a/Spigot-Server-Patches/0339-Anti-Xray.patch +++ b/Spigot-Server-Patches/0339-Anti-Xray.patch @@ -1,4 +1,4 @@ -From 07ee56ca64a98224dc9b972ba71fd113a7964298 Mon Sep 17 00:00:00 2001 +From 4c5c1c499d8e7425bae655ec362edda3ffdd960a Mon Sep 17 00:00:00 2001 From: stonar96 Date: Mon, 20 Aug 2018 03:03:58 +0200 Subject: [PATCH] Anti-Xray @@ -1049,10 +1049,10 @@ index 000000000..37093419c + } +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 57e35564a..890715ff8 100644 +index 414c27516..c3a54576f 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -540,7 +540,7 @@ public class Chunk implements IChunkAccess { +@@ -542,7 +542,7 @@ public class Chunk implements IChunkAccess { return null; } @@ -1061,7 +1061,7 @@ index 57e35564a..890715ff8 100644 this.sections[j >> 4] = chunksection; flag1 = j >= l; } -@@ -640,7 +640,7 @@ public class Chunk implements IChunkAccess { +@@ -642,7 +642,7 @@ public class Chunk implements IChunkAccess { return; } diff --git a/Spigot-Server-Patches/0369-Async-Chunk-Loading-and-Generation.patch b/Spigot-Server-Patches/0369-Async-Chunk-Loading-and-Generation.patch index 5a08247060..beeffdf3e3 100644 --- a/Spigot-Server-Patches/0369-Async-Chunk-Loading-and-Generation.patch +++ b/Spigot-Server-Patches/0369-Async-Chunk-Loading-and-Generation.patch @@ -1,4 +1,4 @@ -From 21be7e16c4e783411306ef1992f7b39a1f13e04d Mon Sep 17 00:00:00 2001 +From e22e2ee24da923acb3e2ea7eb4389918c5bf8578 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 16:55:04 -0400 Subject: [PATCH] Async Chunk Loading and Generation @@ -458,10 +458,10 @@ index 000000000..8f18c2869 + +} diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 890715ff8..654cf763b 100644 +index c3a54576f..6255aa285 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -189,6 +189,7 @@ public class Chunk implements IChunkAccess { +@@ -191,6 +191,7 @@ public class Chunk implements IChunkAccess { for (k = 0; k < this.sections.length; ++k) { this.sections[k] = protochunk.getSections()[k]; diff --git a/Spigot-Server-Patches/0371-Optimize-Light-Recalculations.patch b/Spigot-Server-Patches/0371-Optimize-Light-Recalculations.patch index 190b8e00c7..c88e3f2189 100644 --- a/Spigot-Server-Patches/0371-Optimize-Light-Recalculations.patch +++ b/Spigot-Server-Patches/0371-Optimize-Light-Recalculations.patch @@ -1,4 +1,4 @@ -From 80fa71f295b4996b15d8bdf2ca9e64a2a6b13419 Mon Sep 17 00:00:00 2001 +From d428c31d895dc94bca5040bb3fba384f4cd3139f Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 28 Sep 2018 20:46:29 -0400 Subject: [PATCH] Optimize Light Recalculations @@ -14,10 +14,10 @@ Also optimizes to not repeatedly look up the same chunk for light lookups. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 654cf763b..516656f8f 100644 +index 6255aa285..9695af028 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -352,7 +352,7 @@ public class Chunk implements IChunkAccess { +@@ -354,7 +354,7 @@ public class Chunk implements IChunkAccess { private void a(int i, int j, int k, int l) { if (l > k && this.areNeighborsLoaded(1)) { // Paper for (int i1 = k; i1 < l; ++i1) { @@ -26,7 +26,7 @@ index 654cf763b..516656f8f 100644 } this.x = true; -@@ -562,7 +562,7 @@ public class Chunk implements IChunkAccess { +@@ -564,7 +564,7 @@ public class Chunk implements IChunkAccess { } else { if (flag1) { this.initLighting(); diff --git a/Spigot-Server-Patches/0373-Don-t-recheck-type-after-setting-a-block.patch b/Spigot-Server-Patches/0373-Don-t-recheck-type-after-setting-a-block.patch index f42413d11b..1e07a000c3 100644 --- a/Spigot-Server-Patches/0373-Don-t-recheck-type-after-setting-a-block.patch +++ b/Spigot-Server-Patches/0373-Don-t-recheck-type-after-setting-a-block.patch @@ -1,4 +1,4 @@ -From c30b895c9c264420b5a9bb8aaa76a21436f66c27 Mon Sep 17 00:00:00 2001 +From f88f14f5616b977e0de4424104e175bc90701c66 Mon Sep 17 00:00:00 2001 From: Aikar Date: Fri, 28 Sep 2018 22:27:33 -0400 Subject: [PATCH] Don't recheck type after setting a block @@ -16,10 +16,10 @@ be having data corruption issues anyways. This provides a small boost to all setType calls. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 516656f8f..aa7f01f19 100644 +index 9695af028..ccdc171d4 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -557,7 +557,7 @@ public class Chunk implements IChunkAccess { +@@ -559,7 +559,7 @@ public class Chunk implements IChunkAccess { this.world.n(blockposition); } diff --git a/Spigot-Server-Patches/0374-Fix-Sending-Chunks-to-Client.patch b/Spigot-Server-Patches/0374-Fix-Sending-Chunks-to-Client.patch index fee45d72a3..04129d4822 100644 --- a/Spigot-Server-Patches/0374-Fix-Sending-Chunks-to-Client.patch +++ b/Spigot-Server-Patches/0374-Fix-Sending-Chunks-to-Client.patch @@ -1,4 +1,4 @@ -From 10a0113e0c7b2dfccbe5c385b2e9d76b7cf06786 Mon Sep 17 00:00:00 2001 +From aa5ba3307b20dc28bb7487fac1fb9624ab18501e Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 29 Sep 2018 01:18:16 -0400 Subject: [PATCH] Fix Sending Chunks to Client @@ -14,10 +14,10 @@ This fix always sends chunks to the client, and simply updates the client anytime post processing is triggered with the new chunk data. diff --git a/src/main/java/net/minecraft/server/Chunk.java b/src/main/java/net/minecraft/server/Chunk.java -index 7972e6955..7851ede7a 100644 +index ccdc171d4..7751ae444 100644 --- a/src/main/java/net/minecraft/server/Chunk.java +++ b/src/main/java/net/minecraft/server/Chunk.java -@@ -1198,7 +1198,7 @@ public class Chunk implements IChunkAccess { +@@ -1200,7 +1200,7 @@ public class Chunk implements IChunkAccess { } public boolean isReady() { @@ -26,7 +26,7 @@ index 7972e6955..7851ede7a 100644 } public boolean v() { -@@ -1436,6 +1436,13 @@ public class Chunk implements IChunkAccess { +@@ -1438,6 +1438,13 @@ public class Chunk implements IChunkAccess { this.h.clear(); this.a(ChunkStatus.POSTPROCESSED); this.m.a(this);