diff --git a/src/main/java/net/minecraftforge/common/util/FakePlayer.java b/src/main/java/net/minecraftforge/common/util/FakePlayer.java index 53669c2535..3601d7179c 100644 --- a/src/main/java/net/minecraftforge/common/util/FakePlayer.java +++ b/src/main/java/net/minecraftforge/common/util/FakePlayer.java @@ -19,6 +19,8 @@ package net.minecraftforge.common.util; +import javax.annotation.Nullable; + import com.mojang.authlib.GameProfile; import net.minecraft.entity.Entity; @@ -26,6 +28,7 @@ import net.minecraftforge.fml.common.FMLCommonHandler; 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.StatBase; import net.minecraft.util.DamageSource; @@ -54,4 +57,5 @@ public class FakePlayer extends EntityPlayerMP @Override public void onUpdate(){ return; } @Override public Entity changeDimension(int 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 6964a09e79..0c0d68d2fb 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; + } + } } }