From 98f42923316e468a3b26887a92671a0ed16df073 Mon Sep 17 00:00:00 2001 From: md_5 Date: Mon, 30 Jul 2018 13:09:04 +1000 Subject: [PATCH] SPIGOT-4190: Move ChunkLoadEvent call --- nms-patches/Chunk.patch | 26 ++++++++++++++++++++++---- nms-patches/ChunkMap.patch | 16 ++++------------ 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/nms-patches/Chunk.patch b/nms-patches/Chunk.patch index cc5917d3fe..c98d9aa4ab 100644 --- a/nms-patches/Chunk.patch +++ b/nms-patches/Chunk.patch @@ -118,7 +118,25 @@ } } -@@ -735,9 +788,21 @@ +@@ -719,6 +772,17 @@ + this.world.a((Collection) entityslice); + } + ++ // CraftBukkit start ++ org.bukkit.Server server = this.world.getServer(); ++ if (server != null) { ++ /* ++ * If it's a new world, the first few chunks are generated inside ++ * the World constructor. We can't reliably alter that, so we have ++ * no way of creating a CraftWorld/CraftServer at that point. ++ */ ++ server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(this.bukkitChunk, this.newChunk)); ++ } ++ // CraftBukkit end + } + + public void removeEntities() { +@@ -735,9 +799,21 @@ int i = aentityslice.length; for (int j = 0; j < i; ++j) { @@ -142,7 +160,7 @@ } } -@@ -799,8 +864,8 @@ +@@ -799,8 +875,8 @@ while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); @@ -153,7 +171,7 @@ } } } -@@ -1006,13 +1071,13 @@ +@@ -1006,13 +1082,13 @@ @Nullable public LongSet b(String s) { @@ -169,7 +187,7 @@ return new LongOpenHashSet(); })).add(i); } -@@ -1061,14 +1126,14 @@ +@@ -1061,14 +1137,14 @@ } if (this.t instanceof ProtoChunkTickList) { diff --git a/nms-patches/ChunkMap.patch b/nms-patches/ChunkMap.patch index 8007134eff..203c693dda 100644 --- a/nms-patches/ChunkMap.patch +++ b/nms-patches/ChunkMap.patch @@ -1,19 +1,10 @@ --- a/net/minecraft/server/ChunkMap.java +++ b/net/minecraft/server/ChunkMap.java -@@ -31,6 +31,54 @@ +@@ -31,6 +31,46 @@ } } -+ org.bukkit.Server server = chunk.world.getServer(); -+ if (server != null) { -+ /* -+ * If it's a new world, the first few chunks are generated inside -+ * the World constructor. We can't reliably alter that, so we have -+ * no way of creating a CraftWorld/CraftServer at that point. -+ */ -+ server.getPluginManager().callEvent(new org.bukkit.event.world.ChunkLoadEvent(chunk.bukkitChunk, chunk.newChunk)); -+ } -+ ++ // CraftBukkit start + // Update neighbor counts + for (int x = -2; x < 3; x++) { + for (int z = -2; z < 3; z++) { @@ -51,11 +42,12 @@ + BlockSand.instaFall = false; + chunk.world.getServer().getPluginManager().callEvent(new org.bukkit.event.world.ChunkPopulateEvent(chunk.bukkitChunk)); + } ++ // CraftBukkit end + return chunk1; } -@@ -69,23 +117,25 @@ +@@ -69,23 +109,25 @@ throw new RuntimeException("Not yet implemented"); }