diff --git a/src/main/java/net/minecraftforge/common/util/FakePlayer.java b/src/main/java/net/minecraftforge/common/util/FakePlayer.java index e46f7d3ba9..ad290eaa52 100644 --- a/src/main/java/net/minecraftforge/common/util/FakePlayer.java +++ b/src/main/java/net/minecraftforge/common/util/FakePlayer.java @@ -19,12 +19,15 @@ package net.minecraftforge.common.util; +import javax.annotation.Nullable; + import com.mojang.authlib.GameProfile; import net.minecraft.entity.Entity; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.network.play.client.CPacketClientSettings; +import net.minecraft.server.MinecraftServer; import net.minecraft.server.management.PlayerInteractionManager; import net.minecraft.stats.Stat; import net.minecraft.util.DamageSource; @@ -52,4 +55,5 @@ public class FakePlayer extends EntityPlayerMP @Override public void tick(){ return; } @Override public Entity changeDimension(DimensionType dim, ITeleporter teleporter){ return this; } @Override public void handleClientSettings(CPacketClientSettings pkt){ return; } + @Override @Nullable public MinecraftServer getServer() { return FMLCommonHandler.instance().getMinecraftServerInstance(); } } diff --git a/src/main/java/net/minecraftforge/common/util/FakePlayerFactory.java b/src/main/java/net/minecraftforge/common/util/FakePlayerFactory.java index 32c810e0e7..e1876e22aa 100644 --- a/src/main/java/net/minecraftforge/common/util/FakePlayerFactory.java +++ b/src/main/java/net/minecraftforge/common/util/FakePlayerFactory.java @@ -68,5 +68,13 @@ public class FakePlayerFactory public static void unloadWorld(WorldServer world) { fakePlayers.entrySet().removeIf(entry -> entry.getValue().world == world); + if (MINECRAFT_PLAYER != null && MINECRAFT_PLAYER.get() != null && MINECRAFT_PLAYER.get().world == world) // This shouldn't be strictly necessary, but lets be aggressive. + { + FakePlayer mc = MINECRAFT_PLAYER.get(); + if (mc != null && mc.world == world) + { + MINECRAFT_PLAYER = null; + } + } } }