From 189652175c47b2d65e80ccde1233bdd773320d3f Mon Sep 17 00:00:00 2001 From: Thinkofdeath Date: Wed, 2 Mar 2016 22:57:53 +0000 Subject: [PATCH] SPIGOT-1632: Save secondary data for nether/end --- nms-patches/WorldServer.patch | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/nms-patches/WorldServer.patch b/nms-patches/WorldServer.patch index 4789cf2e69..00f61664d2 100644 --- a/nms-patches/WorldServer.patch +++ b/nms-patches/WorldServer.patch @@ -502,7 +502,20 @@ Iterator iterator = arraylist.iterator(); while (iterator.hasNext()) { -@@ -822,8 +1036,12 @@ +@@ -813,6 +1027,12 @@ + } + } + ++ // CraftBukkit start - Save secondary data for nether/end ++ if (this instanceof SecondaryWorldServer) { ++ ((SecondaryWorldServer) this).c(); ++ } ++ // CraftBukkit end ++ + this.worldData.a(this.getWorldBorder().getSize()); + this.worldData.d(this.getWorldBorder().getCenterX()); + this.worldData.c(this.getWorldBorder().getCenterZ()); +@@ -822,8 +1042,12 @@ this.worldData.k(this.getWorldBorder().getWarningTime()); this.worldData.b(this.getWorldBorder().j()); this.worldData.e(this.getWorldBorder().i()); @@ -516,7 +529,7 @@ } public boolean addEntity(Entity entity) { -@@ -847,7 +1065,7 @@ +@@ -847,7 +1071,7 @@ private boolean i(Entity entity) { if (entity.dead) { @@ -525,7 +538,7 @@ return false; } else { UUID uuid = entity.getUniqueID(); -@@ -859,7 +1077,7 @@ +@@ -859,7 +1083,7 @@ this.f.remove(entity1); } else { if (!(entity instanceof EntityHuman)) { @@ -534,7 +547,7 @@ return false; } -@@ -902,6 +1120,14 @@ +@@ -902,6 +1126,14 @@ } public boolean strikeLightning(Entity entity) { @@ -549,7 +562,7 @@ if (super.strikeLightning(entity)) { this.server.getPlayerList().sendPacketNearby((EntityHuman) null, entity.locX, entity.locY, entity.locZ, 512.0D, this.worldProvider.getDimensionManager().getDimensionID(), new PacketPlayOutSpawnEntityWeather(entity)); return true; -@@ -919,10 +1145,20 @@ +@@ -919,10 +1151,20 @@ } public Explosion createExplosion(Entity entity, double d0, double d1, double d2, float f, boolean flag, boolean flag1) { @@ -570,7 +583,7 @@ if (!flag1) { explosion.clearBlocks(); } -@@ -968,7 +1204,8 @@ +@@ -968,7 +1210,8 @@ BlockActionData blockactiondata = (BlockActionData) iterator.next(); if (this.a(blockactiondata)) { @@ -580,7 +593,7 @@ } } -@@ -991,6 +1228,7 @@ +@@ -991,6 +1234,7 @@ boolean flag = this.W(); super.t(); @@ -588,7 +601,7 @@ if (this.n != this.o) { this.server.getPlayerList().a((Packet) (new PacketPlayOutGameStateChange(7, this.o)), this.worldProvider.getDimensionManager().getDimensionID()); } -@@ -1009,6 +1247,21 @@ +@@ -1009,6 +1253,21 @@ this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(7, this.o)); this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(8, this.q)); } @@ -610,7 +623,7 @@ } -@@ -1037,10 +1290,20 @@ +@@ -1037,10 +1296,20 @@ } public void a(EnumParticle enumparticle, boolean flag, double d0, double d1, double d2, int i, double d3, double d4, double d5, double d6, int... aint) {