aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util
diff options
context:
space:
mode:
authorAlkalus <Draknyte1@hotmail.com>2020-05-27 13:45:04 +0100
committerAlkalus <Draknyte1@hotmail.com>2020-05-27 13:45:04 +0100
commitc66ed4cb8ba64a2fc6132cd7c039738922d0bb23 (patch)
treed3b23671e5d8409b196e3d1d14b40210c2b8fc49 /src/Java/gtPlusPlus/core/util
parent527f3c0e675ed99b82f36108b29884711b3e1a55 (diff)
downloadGT5-Unofficial-c66ed4cb8ba64a2fc6132cd7c039738922d0bb23.tar.gz
GT5-Unofficial-c66ed4cb8ba64a2fc6132cd7c039738922d0bb23.tar.bz2
GT5-Unofficial-c66ed4cb8ba64a2fc6132cd7c039738922d0bb23.zip
$ Fixed TC dependency within the Fake Player checker.
+ Added basic TC transformer to try debug the StackOverflowError caused by TC/ExU/GT.
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java
index 110b2baf25..24ffa295b7 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java
@@ -4,8 +4,8 @@ import java.util.*;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-import gtPlusPlus.core.handler.events.BlockEventHandler;
import gtPlusPlus.core.util.Utils;
+import gtPlusPlus.core.util.reflect.ReflectionUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
@@ -16,11 +16,20 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChunkCoordinates;
import net.minecraft.world.World;
import net.minecraftforge.common.util.FakePlayer;
-import thaumcraft.common.lib.FakeThaumcraftPlayer;
public class PlayerUtils {
public static final Map<String, EntityPlayer> mCachedFakePlayers = new WeakHashMap<String, EntityPlayer>();
+ private static final Class mThaumcraftFakePlayer;
+
+ static {
+ if (ReflectionUtils.doesClassExist("thaumcraft.common.lib.FakeThaumcraftPlayer")) {
+ mThaumcraftFakePlayer = ReflectionUtils.getClass("thaumcraft.common.lib.FakeThaumcraftPlayer");
+ }
+ else {
+ mThaumcraftFakePlayer = null;
+ }
+ }
public static void messagePlayer(final EntityPlayer P, final String S){
gregtech.api.util.GT_Utility.sendChatToPlayer(P, S);
@@ -203,7 +212,7 @@ public class PlayerUtils {
public static void cacheFakePlayer(EntityPlayer aPlayer) {
ChunkCoordinates aChunkLocation = aPlayer.getPlayerCoordinates();
// Cache Fake Player
- if (aPlayer instanceof FakePlayer || aPlayer instanceof FakeThaumcraftPlayer
+ if (aPlayer instanceof FakePlayer || (mThaumcraftFakePlayer != null && mThaumcraftFakePlayer.isInstance(aPlayer))
|| (aPlayer.getCommandSenderName() == null
|| aPlayer.getCommandSenderName().length() <= 0)
|| (aPlayer.isEntityInvulnerable() && !aPlayer.canCommandSenderUseCommand(0, "")
@@ -225,7 +234,7 @@ public class PlayerUtils {
cacheFakePlayer(p);
return false;
}
- if (p instanceof FakeThaumcraftPlayer) {
+ if (mThaumcraftFakePlayer != null && mThaumcraftFakePlayer.isInstance(p) ) {
cacheFakePlayer(p);
return false;
}