From bb141a530b65b441d96dd918f1e723b77611a840 Mon Sep 17 00:00:00 2001 From: Adubbz Date: Sun, 12 Jan 2014 19:40:44 +1100 Subject: [PATCH] Fixed Reflection in eclipse, it now works both ways! Yay! --- .../entity/TemptEventHandler.java | 6 ++-- .../common/helpers/BOPReflectionHelper.java | 28 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java diff --git a/src/main/java/biomesoplenty/common/eventhandler/entity/TemptEventHandler.java b/src/main/java/biomesoplenty/common/eventhandler/entity/TemptEventHandler.java index a8730bf70..79ac1bb06 100644 --- a/src/main/java/biomesoplenty/common/eventhandler/entity/TemptEventHandler.java +++ b/src/main/java/biomesoplenty/common/eventhandler/entity/TemptEventHandler.java @@ -11,7 +11,7 @@ import net.minecraft.entity.passive.EntitySheep; import net.minecraftforge.event.entity.EntityJoinWorldEvent; import biomesoplenty.api.BOPItemHelper; import biomesoplenty.common.entities.ai.EntityAITemptArmor; -import cpw.mods.fml.common.ObfuscationReflectionHelper; +import biomesoplenty.common.helpers.BOPReflectionHelper; import cpw.mods.fml.common.eventhandler.SubscribeEvent; public class TemptEventHandler @@ -24,8 +24,8 @@ public class TemptEventHandler if (!(entity instanceof EntityLiving)) return; - //TODO: FEATURE Remove Reflection tasks - EntityAITasks tasks = ObfuscationReflectionHelper.getPrivateValue(EntityLiving.class, ((EntityLiving)entity), new String[] { "field_70714_bg" }); + //TODO: FEATURE Remove Reflection + EntityAITasks tasks = BOPReflectionHelper.getPrivateValue(EntityLiving.class, ((EntityLiving)entity), "tasks", "field_70714_bg"); if (entity instanceof EntityChicken) { diff --git a/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java b/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java new file mode 100644 index 000000000..7ebec54ed --- /dev/null +++ b/src/main/java/biomesoplenty/common/helpers/BOPReflectionHelper.java @@ -0,0 +1,28 @@ +package biomesoplenty.common.helpers; + +import java.util.Arrays; +import java.util.Map; +import java.util.Map.Entry; + +import com.google.common.collect.BiMap; + +import cpw.mods.fml.common.ObfuscationReflectionHelper; +import cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper; +import cpw.mods.fml.relauncher.ReflectionHelper; + +public class BOPReflectionHelper +{ + public static T getPrivateValue(Class classToAccess, E instance, String fieldName, String obfFieldName) + { + try + { + Class.forName("net.minecraft.world.World"); + + return ReflectionHelper.getPrivateValue(classToAccess, instance, fieldName); + } + catch (ClassNotFoundException e) + { + return ObfuscationReflectionHelper.getPrivateValue(classToAccess, instance, obfFieldName); + } + } +}