Fix for the player inadvertently being removed from the Entity Tracker when the chunk they were in unloads after they teleport out of it. (#4784)

This commit is contained in:
Mordenkainen 2018-04-01 03:15:37 -04:00 committed by LexManos
parent 557b41056f
commit 14a8e099ca

View file

@ -174,7 +174,7 @@
{ {
if (this.field_150816_i.containsKey(p_177426_1_)) if (this.field_150816_i.containsKey(p_177426_1_))
{ {
@@ -854,8 +855,9 @@ @@ -854,12 +855,14 @@
for (ClassInheritanceMultiMap<Entity> classinheritancemultimap : this.field_76645_j) for (ClassInheritanceMultiMap<Entity> classinheritancemultimap : this.field_76645_j)
{ {
@ -185,7 +185,12 @@
} }
public void func_76623_d() public void func_76623_d()
@@ -871,6 +873,7 @@ {
+ java.util.Arrays.stream(field_76645_j).forEach(multimap -> com.google.common.collect.Lists.newArrayList(multimap.func_180215_b(net.minecraft.entity.player.EntityPlayer.class)).forEach(player -> field_76637_e.func_72866_a(player, false))); // FORGE - Fix for MC-92916
this.field_76636_d = false;
for (TileEntity tileentity : this.field_150816_i.values())
@@ -871,6 +874,7 @@
{ {
this.field_76637_e.func_175681_c(classinheritancemultimap); this.field_76637_e.func_175681_c(classinheritancemultimap);
} }
@ -193,7 +198,7 @@
} }
public void func_76630_e() public void func_76630_e()
@@ -880,8 +883,8 @@ @@ -880,8 +884,8 @@
public void func_177414_a(@Nullable Entity p_177414_1_, AxisAlignedBB p_177414_2_, List<Entity> p_177414_3_, Predicate <? super Entity > p_177414_4_) public void func_177414_a(@Nullable Entity p_177414_1_, AxisAlignedBB p_177414_2_, List<Entity> p_177414_3_, Predicate <? super Entity > p_177414_4_)
{ {
@ -204,7 +209,7 @@
i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1); i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1);
j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1); j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1);
@@ -918,8 +921,8 @@ @@ -918,8 +922,8 @@
public <T extends Entity> void func_177430_a(Class <? extends T > p_177430_1_, AxisAlignedBB p_177430_2_, List<T> p_177430_3_, Predicate <? super T > p_177430_4_) public <T extends Entity> void func_177430_a(Class <? extends T > p_177430_1_, AxisAlignedBB p_177430_2_, List<T> p_177430_3_, Predicate <? super T > p_177430_4_)
{ {
@ -215,7 +220,7 @@
i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1); i = MathHelper.func_76125_a(i, 0, this.field_76645_j.length - 1);
j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1); j = MathHelper.func_76125_a(j, 0, this.field_76645_j.length - 1);
@@ -997,6 +1000,8 @@ @@ -997,6 +1001,8 @@
protected void func_186034_a(IChunkGenerator p_186034_1_) protected void func_186034_a(IChunkGenerator p_186034_1_)
{ {
@ -224,7 +229,7 @@
if (this.func_177419_t()) if (this.func_177419_t())
{ {
if (p_186034_1_.func_185933_a(this, this.field_76635_g, this.field_76647_h)) if (p_186034_1_.func_185933_a(this, this.field_76635_g, this.field_76647_h))
@@ -1008,8 +1013,10 @@ @@ -1008,8 +1014,10 @@
{ {
this.func_150809_p(); this.func_150809_p();
p_186034_1_.func_185931_b(this.field_76635_g, this.field_76647_h); p_186034_1_.func_185931_b(this.field_76635_g, this.field_76647_h);
@ -235,7 +240,7 @@
} }
public BlockPos func_177440_h(BlockPos p_177440_1_) public BlockPos func_177440_h(BlockPos p_177440_1_)
@@ -1064,7 +1071,7 @@ @@ -1064,7 +1072,7 @@
{ {
BlockPos blockpos = this.field_177447_w.poll(); BlockPos blockpos = this.field_177447_w.poll();
@ -244,7 +249,7 @@
{ {
TileEntity tileentity = this.func_177422_i(blockpos); TileEntity tileentity = this.func_177422_i(blockpos);
this.field_76637_e.func_175690_a(blockpos, tileentity); this.field_76637_e.func_175690_a(blockpos, tileentity);
@@ -1128,6 +1135,13 @@ @@ -1128,6 +1136,13 @@
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public void func_186033_a(PacketBuffer p_186033_1_, int p_186033_2_, boolean p_186033_3_) public void func_186033_a(PacketBuffer p_186033_1_, int p_186033_2_, boolean p_186033_3_)
{ {
@ -258,7 +263,7 @@
boolean flag = this.field_76637_e.field_73011_w.func_191066_m(); boolean flag = this.field_76637_e.field_73011_w.func_191066_m();
for (int i = 0; i < this.field_76652_q.length; ++i) for (int i = 0; i < this.field_76652_q.length; ++i)
@@ -1176,10 +1190,16 @@ @@ -1176,10 +1191,16 @@
this.field_76646_k = true; this.field_76646_k = true;
this.func_76590_a(); this.func_76590_a();
@ -275,7 +280,7 @@
} }
public Biome func_177411_a(BlockPos p_177411_1_, BiomeProvider p_177411_2_) public Biome func_177411_a(BlockPos p_177411_1_, BiomeProvider p_177411_2_)
@@ -1244,13 +1264,13 @@ @@ -1244,13 +1265,13 @@
BlockPos blockpos1 = blockpos.func_177982_a(k, (j << 4) + i1, l); BlockPos blockpos1 = blockpos.func_177982_a(k, (j << 4) + i1, l);
boolean flag = i1 == 0 || i1 == 15 || k == 0 || k == 15 || l == 0 || l == 15; boolean flag = i1 == 0 || i1 == 15 || k == 0 || k == 15 || l == 0 || l == 15;
@ -291,7 +296,7 @@
{ {
this.field_76637_e.func_175664_x(blockpos2); this.field_76637_e.func_175664_x(blockpos2);
} }
@@ -1381,7 +1401,7 @@ @@ -1381,7 +1402,7 @@
{ {
blockpos$mutableblockpos.func_181079_c(blockpos$mutableblockpos.func_177958_n(), l, blockpos$mutableblockpos.func_177952_p()); blockpos$mutableblockpos.func_181079_c(blockpos$mutableblockpos.func_177958_n(), l, blockpos$mutableblockpos.func_177952_p());
@ -300,7 +305,7 @@
{ {
this.field_76637_e.func_175664_x(blockpos$mutableblockpos); this.field_76637_e.func_175664_x(blockpos$mutableblockpos);
} }
@@ -1420,6 +1440,7 @@ @@ -1420,6 +1441,7 @@
else else
{ {
System.arraycopy(p_177420_1_, 0, this.field_76634_f, 0, this.field_76634_f.length); System.arraycopy(p_177420_1_, 0, this.field_76634_f, 0, this.field_76634_f.length);
@ -308,7 +313,7 @@
} }
} }
@@ -1489,4 +1510,52 @@ @@ -1489,4 +1511,52 @@
QUEUED, QUEUED,
CHECK; CHECK;
} }