Fixes a server crash caused by a player joining that is in a non existent dimension
This commit is contained in:
parent
a905fe578b
commit
a21ad8fa9d
|
@ -32,7 +32,26 @@
|
|||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
|
||||
@@ -244,6 +250,7 @@
|
||||
@@ -93,7 +99,17 @@
|
||||
public void func_72355_a(NetworkManager p_72355_1_, EntityPlayerMP p_72355_2_, NetHandlerPlayServer nethandlerplayserver)
|
||||
{
|
||||
NBTTagCompound nbttagcompound = this.func_72380_a(p_72355_2_);
|
||||
- p_72355_2_.func_70029_a(this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK));
|
||||
+
|
||||
+ World playerWorld = this.field_72400_f.func_71218_a(p_72355_2_.field_71093_bK);
|
||||
+ if (playerWorld==null)
|
||||
+ {
|
||||
+ p_72355_2_.field_71093_bK=0;
|
||||
+ playerWorld=this.field_72400_f.func_71218_a(0);
|
||||
+ ChunkCoordinates spawnPoint = playerWorld.field_73011_w.getRandomizedSpawnPoint();
|
||||
+ p_72355_2_.func_70107_b(spawnPoint.field_71574_a, spawnPoint.field_71572_b, spawnPoint.field_71573_c);
|
||||
+ }
|
||||
+
|
||||
+ p_72355_2_.func_70029_a(playerWorld);
|
||||
p_72355_2_.field_71134_c.func_73080_a((WorldServer)p_72355_2_.field_70170_p);
|
||||
String s = "local";
|
||||
|
||||
@@ -244,6 +260,7 @@
|
||||
this.func_148540_a(new S38PacketPlayerListItem(p_72377_1_.func_70005_c_(), true, 1000));
|
||||
this.field_72404_b.add(p_72377_1_);
|
||||
WorldServer worldserver = this.field_72400_f.func_71218_a(p_72377_1_.field_71093_bK);
|
||||
|
@ -40,7 +59,7 @@
|
|||
worldserver.func_72838_d(p_72377_1_);
|
||||
this.func_72375_a(p_72377_1_, (WorldServer)null);
|
||||
|
||||
@@ -276,6 +283,7 @@
|
||||
@@ -276,6 +293,7 @@
|
||||
worldserver.func_73040_p().func_72695_c(p_72367_1_);
|
||||
this.field_72404_b.remove(p_72367_1_);
|
||||
this.field_148547_k.remove(p_72367_1_.func_70005_c_());
|
||||
|
@ -48,7 +67,7 @@
|
|||
this.func_148540_a(new S38PacketPlayerListItem(p_72367_1_.func_70005_c_(), false, 9999));
|
||||
}
|
||||
|
||||
@@ -361,13 +369,23 @@
|
||||
@@ -361,13 +379,23 @@
|
||||
|
||||
public EntityPlayerMP func_72368_a(EntityPlayerMP p_72368_1_, int p_72368_2_, boolean p_72368_3_)
|
||||
{
|
||||
|
@ -74,7 +93,7 @@
|
|||
p_72368_1_.field_71093_bK = p_72368_2_;
|
||||
Object object;
|
||||
|
||||
@@ -383,6 +401,7 @@
|
||||
@@ -383,6 +411,7 @@
|
||||
EntityPlayerMP entityplayermp1 = new EntityPlayerMP(this.field_72400_f, this.field_72400_f.func_71218_a(p_72368_1_.field_71093_bK), p_72368_1_.func_146103_bH(), (ItemInWorldManager)object);
|
||||
entityplayermp1.field_71135_a = p_72368_1_.field_71135_a;
|
||||
entityplayermp1.func_71049_a(p_72368_1_, p_72368_3_);
|
||||
|
@ -82,7 +101,7 @@
|
|||
entityplayermp1.func_145769_d(p_72368_1_.func_145782_y());
|
||||
WorldServer worldserver = this.field_72400_f.func_71218_a(p_72368_1_.field_71093_bK);
|
||||
this.func_72381_a(entityplayermp1, p_72368_1_, worldserver);
|
||||
@@ -427,6 +446,11 @@
|
||||
@@ -427,6 +456,11 @@
|
||||
|
||||
public void func_72356_a(EntityPlayerMP p_72356_1_, int p_72356_2_)
|
||||
{
|
||||
|
@ -94,7 +113,7 @@
|
|||
int j = p_72356_1_.field_71093_bK;
|
||||
WorldServer worldserver = this.field_72400_f.func_71218_a(p_72356_1_.field_71093_bK);
|
||||
p_72356_1_.field_71093_bK = p_72356_2_;
|
||||
@@ -434,7 +458,7 @@
|
||||
@@ -434,7 +468,7 @@
|
||||
p_72356_1_.field_71135_a.func_147359_a(new S07PacketRespawn(p_72356_1_.field_71093_bK, p_72356_1_.field_70170_p.field_73013_u, p_72356_1_.field_70170_p.func_72912_H().func_76067_t(), p_72356_1_.field_71134_c.func_73081_b()));
|
||||
worldserver.func_72973_f(p_72356_1_);
|
||||
p_72356_1_.field_70128_L = false;
|
||||
|
@ -103,7 +122,7 @@
|
|||
this.func_72375_a(p_72356_1_, worldserver);
|
||||
p_72356_1_.field_71135_a.func_147364_a(p_72356_1_.field_70165_t, p_72356_1_.field_70163_u, p_72356_1_.field_70161_v, p_72356_1_.field_70177_z, p_72356_1_.field_70125_A);
|
||||
p_72356_1_.field_71134_c.func_73080_a(worldserver1);
|
||||
@@ -452,38 +476,47 @@
|
||||
@@ -452,38 +486,47 @@
|
||||
|
||||
public void func_82448_a(Entity p_82448_1_, int p_82448_2_, WorldServer p_82448_3_, WorldServer p_82448_4_)
|
||||
{
|
||||
|
@ -163,7 +182,7 @@
|
|||
{
|
||||
ChunkCoordinates chunkcoordinates;
|
||||
|
||||
@@ -518,7 +551,7 @@
|
||||
@@ -518,7 +561,7 @@
|
||||
if (p_82448_1_.func_70089_S())
|
||||
{
|
||||
p_82448_1_.func_70012_b(d0, p_82448_1_.field_70163_u, d1, p_82448_1_.field_70177_z, p_82448_1_.field_70125_A);
|
||||
|
|
Loading…
Reference in New Issue