diff --git a/patches/net/minecraft/server/management/ServerConfigurationManager.java.patch b/patches/net/minecraft/server/management/ServerConfigurationManager.java.patch index 3e68e14..a76cb60 100644 --- a/patches/net/minecraft/server/management/ServerConfigurationManager.java.patch +++ b/patches/net/minecraft/server/management/ServerConfigurationManager.java.patch @@ -379,7 +379,7 @@ public EntityPlayerMP createPlayerForUser(GameProfile p_148545_1_) { -@@ -410,80 +619,204 @@ +@@ -410,80 +619,211 @@ return new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(0), p_148545_1_, (ItemInWorldManager)object); } @@ -492,7 +492,7 @@ - this.func_72381_a(entityplayermp1, p_72368_1_, worldserver); + // Phase 3 - remove current player from current dimension + par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removePlayerFromTrackers(par1EntityPlayerMP); -+ // par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(par1EntityPlayerMP); // CraftBukkit ++ par1EntityPlayerMP.getServerForPlayer().getEntityTracker().removeEntityFromAllTrackingPlayers(par1EntityPlayerMP); // CraftBukkit + par1EntityPlayerMP.getServerForPlayer().getPlayerManager().removePlayer(par1EntityPlayerMP); + this.playerEntityList.remove(par1EntityPlayerMP); + this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension).removePlayerEntityDangerously(par1EntityPlayerMP); @@ -501,10 +501,17 @@ + ChunkCoordinates bedSpawnChunkCoords = par1EntityPlayerMP.getBedLocation(targetDimension); + boolean spawnForced = par1EntityPlayerMP.isSpawnForced(targetDimension); + par1EntityPlayerMP.dimension = targetDimension; ++ ++ Object object = new ItemInWorldManager(this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension)); ++ + // CraftBukkit start -+ EntityPlayerMP entityplayermp1 = par1EntityPlayerMP; ++ EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.mcServer, this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension), par1EntityPlayerMP.getGameProfile(), (ItemInWorldManager)object); ++ entityplayermp1.playerNetServerHandler = par1EntityPlayerMP.playerNetServerHandler; + entityplayermp1.clonePlayer(par1EntityPlayerMP, returnFromEnd); // KCauldron - clone player + entityplayermp1.setWorld(this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension)); // make sure to update reference for bed spawn logic ++ // entityplayermp1.dimension = targetDimension; <- ABOVE DOES THIS AUTOMATICALLY ++ entityplayermp1.setEntityId(par1EntityPlayerMP.getEntityId()); ++ + entityplayermp1.playerConqueredTheEnd = false; ChunkCoordinates chunkcoordinates1; + boolean isBedSpawn = false; @@ -624,7 +631,7 @@ return entityplayermp1; } -@@ -492,34 +825,112 @@ +@@ -492,34 +832,112 @@ transferPlayerToDimension(p_72356_1_, p_72356_2_, mcServer.worldServerForDimension(p_72356_2_).getDefaultTeleporter()); } @@ -756,7 +763,7 @@ } public void transferEntityToWorld(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_, Teleporter teleporter) -@@ -605,6 +1016,109 @@ +@@ -605,6 +1023,109 @@ p_82448_1_.setWorld(p_82448_4_); } @@ -866,7 +873,7 @@ public void sendPlayerInfoToAllPlayers() { if (++this.playerPingIndex > 600) -@@ -612,11 +1126,13 @@ +@@ -612,11 +1133,13 @@ this.playerPingIndex = 0; } @@ -880,7 +887,7 @@ } public void sendPacketToAllPlayers(Packet p_148540_1_) -@@ -877,13 +1393,24 @@ +@@ -877,13 +1400,24 @@ for (int j = 0; j < this.playerEntityList.size(); ++j) { EntityPlayerMP entityplayermp = (EntityPlayerMP)this.playerEntityList.get(j); @@ -907,7 +914,7 @@ if (d4 * d4 + d5 * d5 + d6 * d6 < p_148543_8_ * p_148543_8_) { entityplayermp.playerNetServerHandler.sendPacket(p_148543_11_); -@@ -941,13 +1468,16 @@ +@@ -941,13 +1475,16 @@ p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(1, 0.0F)); p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(7, p_72354_2_.getRainStrength(1.0F))); p_72354_1_.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(8, p_72354_2_.getWeightedThunderStrength(1.0F))); @@ -925,7 +932,7 @@ p_72385_1_.playerNetServerHandler.sendPacket(new S09PacketHeldItemChange(p_72385_1_.inventory.currentItem)); } -@@ -961,9 +1491,17 @@ +@@ -961,9 +1498,17 @@ return this.maxPlayers; } @@ -944,7 +951,7 @@ } public void setWhiteListEnabled(boolean p_72371_1_) -@@ -1032,11 +1570,29 @@ +@@ -1032,11 +1577,29 @@ public void removeAllPlayers() { @@ -976,7 +983,7 @@ public void sendChatMsgImpl(IChatComponent p_148544_1_, boolean p_148544_2_) { -@@ -1103,4 +1659,4 @@ +@@ -1103,4 +1666,4 @@ { return this.whiteListEnforced; }