aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Java/gtPlusPlus/GTplusplus.java3
-rw-r--r--src/Java/gtPlusPlus/core/lib/CORE.java4
-rw-r--r--src/Java/gtPlusPlus/core/proxy/ClientProxy.java4
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java21
-rw-r--r--src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java17
-rw-r--r--src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java47
-rw-r--r--src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java78
-rw-r--r--src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java78
8 files changed, 200 insertions, 52 deletions
diff --git a/src/Java/gtPlusPlus/GTplusplus.java b/src/Java/gtPlusPlus/GTplusplus.java
index c989ece8ea..e532071d26 100644
--- a/src/Java/gtPlusPlus/GTplusplus.java
+++ b/src/Java/gtPlusPlus/GTplusplus.java
@@ -37,7 +37,6 @@ import gtPlusPlus.core.util.player.PlayerUtils;
import gtPlusPlus.xmod.gregtech.common.Meta_GT_Proxy;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtBlock;
import gtPlusPlus.xmod.gregtech.common.blocks.textures.TexturesGtTools;
-import net.minecraft.client.Minecraft;
import net.minecraft.item.Item;
import net.minecraft.launchwrapper.Launch;
import net.minecraftforge.oredict.OreDictionary;
@@ -76,8 +75,6 @@ public class GTplusplus implements ActionListener {
if(!Utils.isServer()){
enableCustomCapes = true;
- //Get Graphics Mode.
- CORE.mFancyGraphics = Minecraft.isFancyGraphicsEnabled();
}
//Give this a go mate.
diff --git a/src/Java/gtPlusPlus/core/lib/CORE.java b/src/Java/gtPlusPlus/core/lib/CORE.java
index 11ed154d5a..2fb3dd42b4 100644
--- a/src/Java/gtPlusPlus/core/lib/CORE.java
+++ b/src/Java/gtPlusPlus/core/lib/CORE.java
@@ -10,8 +10,6 @@ import java.util.concurrent.ConcurrentHashMap;
import com.mojang.authlib.GameProfile;
-import cpw.mods.fml.relauncher.Side;
-import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.GregTech_API;
import gtPlusPlus.core.util.Utils;
import gtPlusPlus.core.util.array.Pair;
@@ -46,8 +44,6 @@ public class CORE {
public static boolean DEVENV = false;
public static boolean DEBUG = false;
- @SideOnly(Side.CLIENT)
- public static boolean mFancyGraphics = false;
//Only can be set in Dev, no config or setting elsewhere.
public static final boolean LOAD_ALL_CONTENT = false;;
diff --git a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java
index 448188379a..b7525e2863 100644
--- a/src/Java/gtPlusPlus/core/proxy/ClientProxy.java
+++ b/src/Java/gtPlusPlus/core/proxy/ClientProxy.java
@@ -37,9 +37,13 @@ public class ClientProxy extends CommonProxy implements Runnable{
private final HashSet<String> mCapeList = new HashSet<String>();
private final GTPP_CapeRenderer mCapeRenderer;
+ @SideOnly(Side.CLIENT)
+ public static boolean mFancyGraphics = false;
public ClientProxy(){
mCapeRenderer = new GTPP_CapeRenderer(mCapeList);
+ //Get Graphics Mode.
+ mFancyGraphics = Minecraft.isFancyGraphicsEnabled();
}
@SubscribeEvent
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
index 8873aa6a80..0d15f16964 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/GTPP_Bees.java
@@ -1,23 +1,14 @@
package gtPlusPlus.xmod.forestry.bees.custom;
-import java.lang.reflect.Field;
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
+import java.lang.reflect.*;
import org.apache.commons.lang3.reflect.FieldUtils;
-import com.google.common.collect.ImmutableMap;
-
import cpw.mods.fml.common.Loader;
-import forestry.api.apiculture.IAlleleBeeSpecies;
import forestry.api.genetics.AlleleManager;
import forestry.api.genetics.IAllele;
-import forestry.api.recipes.RecipeManagers;
import gregtech.GT_Mod;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.*;
import gtPlusPlus.core.item.base.ingots.BaseItemIngot_OLD;
import gtPlusPlus.core.item.base.misc.BaseItemMisc;
import gtPlusPlus.core.item.base.misc.BaseItemMisc.MiscTypes;
@@ -68,9 +59,15 @@ public class GTPP_Bees {
setMaterials();
setCustomItems();
+ try {
combs = new ItemCustomComb();
combs.initCombsRecipes();
- GTPP_Bee_Definition.initBees();
+ GTPP_Bee_Definition.initBees();
+ }
+ catch (Throwable t){
+ Utils.LOG_INFO("[Bees] Failed to load bees, probably due to an ancient forestry version");
+ t.printStackTrace();
+ }
}
}
diff --git a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java
index adfa6cbf11..d95993f2d2 100644
--- a/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java
+++ b/src/Java/gtPlusPlus/xmod/forestry/bees/custom/ItemCustomComb.java
@@ -1,16 +1,19 @@
package gtPlusPlus.xmod.forestry.bees.custom;
+import java.lang.reflect.Field;
+import java.util.List;
+
+import org.apache.commons.lang3.reflect.FieldUtils;
+
import com.google.common.collect.ImmutableMap;
+
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import forestry.api.core.Tabs;
import forestry.api.recipes.RecipeManagers;
import gregtech.GT_Mod;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
+import gregtech.api.enums.*;
import gregtech.api.util.GT_OreDictUnificator;
import gregtech.api.util.GT_Utility;
import gtPlusPlus.core.lib.CORE;
@@ -21,11 +24,6 @@ import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon;
-import java.lang.reflect.Field;
-import java.util.List;
-
-import org.apache.commons.lang3.reflect.FieldUtils;
-
public class ItemCustomComb extends Item {
@SideOnly(Side.CLIENT)
private IIcon secondIcon;
@@ -68,6 +66,7 @@ public class ItemCustomComb extends Item {
return 2;
}
+ @Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister par1IconRegister) {
this.itemIcon = par1IconRegister.registerIcon("forestry:beeCombs.0");
diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java
index 687a5afa3b..aaaa0a0dee 100644
--- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java
+++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/FishTrapHandler.java
@@ -1,5 +1,8 @@
package gtPlusPlus.xmod.growthcraft.fishtrap;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_ModHandler;
import gtPlusPlus.core.lib.LoadedMods;
@@ -11,30 +14,62 @@ import net.minecraft.item.ItemStack;
public class FishTrapHandler {
private static final String[] fishTypes = {"fish", "junk", "treasure"};
+ private static Object mFishingRegistry;
+ private static Growthcraft_Old mHandler;
+
+ public static Object getFishingRegistry(){
+ if (mFishingRegistry != null){
+ return mFishingRegistry;
+ }
+ else {
+ return setFishTrapRegistry();
+ }
+ }
+
+ private final static Object setFishTrapRegistry(){
+ Class mFishingRegistryClass;
+ try {
+ mFishingRegistryClass = Class.forName("growthcraft.api.fishtrap.FishTrapRegistry");
+ final Method mFishingRegistryMethod = mFishingRegistryClass.getDeclaredMethod("getInstance", null);
+ mFishingRegistry = mFishingRegistryMethod.invoke(null);
+ if (mFishingRegistry != null){
+ return mFishingRegistry;
+ }
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
+ }
+ return null;
+ }
protected static void addFish(final String lootType, final ItemStack lootStack, final int lootChance){
+ if (mFishingRegistry == null){
+ setFishTrapRegistry();
+ }
+ if (mHandler == null){
+ mHandler = new Growthcraft_Old();
+ }
+
final String GCVersion = LoadedMods.getModVersion("Growthcraft");
-
final String[] versionString = GCVersion.split("//.");
if (LoadedMods.getModVersion("Growthcraft").contains("2.3.1") || versionString[1].equals("3")){
if (lootType.equals(fishTypes[0])){
- Growthcraft_Old.addTrapFish(lootStack, lootChance);
+ mHandler.addTrapFish(lootStack, lootChance);
Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as an extra Fish for Growthcraft Fishtraps.");
}
else if (lootType.equals(fishTypes[1])){
- Growthcraft_Old.addTrapJunk(lootStack, lootChance);
+ mHandler.addTrapJunk(lootStack, lootChance);
Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as extra Junk for Growthcraft Fishtraps.");
}
else if (lootType.equals(fishTypes[2])){
- Growthcraft_Old.addTrapTreasure(lootStack, lootChance);
+ mHandler.addTrapTreasure(lootStack, lootChance);
Utils.LOG_INFO("Added "+lootStack.getDisplayName()+" as extra Treasure for Growthcraft Fishtraps.");
}
else {
return;
}
- }
+ }/*
else if (LoadedMods.getModVersion("Growthcraft").contains("2.7.2")){
if (lootType.equals(fishTypes[0])){
Growthcraft_New.addTrapFish(lootStack, lootChance);
@@ -51,7 +86,7 @@ public class FishTrapHandler {
else {
return;
}
- }
+ }*/
else {
Utils.LOG_INFO("Extra Fish loot for Growthcraft Fishtraps disabled. Found V."+LoadedMods.getModVersion("Growthcraft"));
diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java
index 4405709888..3b6b46d630 100644
--- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java
+++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_New.java
@@ -1,24 +1,84 @@
package gtPlusPlus.xmod.growthcraft.fishtrap;
-import growthcraft.api.fishtrap.FishTrapEntry;
-import growthcraft.api.fishtrap.FishTrapRegistry;
+import java.lang.reflect.*;
+
import net.minecraft.item.ItemStack;
public class Growthcraft_New {
- public static void addTrapJunk(final ItemStack loot, final int lootChance){
- FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance));
-
+ Method addTrapJunk;
+ Method addTrapTreasure;
+ Method addTrapFish;
+ Object FishTrapRegistryO;
+
+ public Growthcraft_New(){
+ setFishTrapRegistry();
+ }
+
+ void setFishTrapRegistry(){
+ try {
+ Class<?> FishTrapRegistryClass = Class.forName("gtPlusPlus.xmod.growthcraft.fishtrap.FishTrapHandler.mFishingRegistry");
+ Class<?> FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry");
+ if (FishTrapRegistryClass.isInstance(FishTrapHandler.getFishingRegistry())){
+ addTrapJunk = FishTrapRegistryClass.getDeclaredMethod("addTrapJunk", FishTrapEntry);
+ addTrapTreasure = FishTrapRegistryClass.getDeclaredMethod("addTrapTreasure", FishTrapEntry);
+ addTrapFish = FishTrapRegistryClass.getDeclaredMethod("addTrapFish", FishTrapEntry);
+ FishTrapRegistryO = FishTrapHandler.getFishingRegistry();
+ }
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private Object createFishTrapEntry(ItemStack loot, int chance){
+ try {
+ Class<?> FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry");
+ Object o = FishTrapEntry.getConstructor(ItemStack.class, int.class);
+ if (FishTrapEntry != null){
+ Constructor[] constructors = FishTrapEntry.getDeclaredConstructors();
+ constructors[0].setAccessible(true);
+ Object x = constructors[0].newInstance(loot, chance);
+ if (x != null){
+ return x;
+ }
+ }
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {}
+
+ return null;
+ }
+
+ private boolean invoke(Method m, ItemStack o, int p){
+ try {
+ Object I = createFishTrapEntry(o, p);
+ m.invoke(FishTrapRegistryO, I);
+ return true;
+ }
+ catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {}
+ return false;
}
- public static void addTrapTreasure(final ItemStack loot, final int lootChance){
- FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance));
+ public void addTrapJunk(final ItemStack loot, final int lootChance){
+ //FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance));
+ if (addTrapJunk != null){
+ invoke(addTrapJunk, loot, lootChance);
+ }
}
- public static void addTrapFish(final ItemStack loot, final int lootChance){
- FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance));
+ public void addTrapTreasure(final ItemStack loot, final int lootChance){
+ //FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance));
+ if (addTrapTreasure != null){
+ invoke(addTrapTreasure, loot, lootChance);
+ }
+ }
+ public void addTrapFish(final ItemStack loot, final int lootChance){
+ //FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance));
+ if (addTrapFish != null){
+ invoke(addTrapFish, loot, lootChance);
+ }
}
}
diff --git a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java
index f988abd53a..62fe2f29cb 100644
--- a/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java
+++ b/src/Java/gtPlusPlus/xmod/growthcraft/fishtrap/Growthcraft_Old.java
@@ -1,24 +1,84 @@
package gtPlusPlus.xmod.growthcraft.fishtrap;
-import growthcraft.api.fishtrap.FishTrapEntry;
-import growthcraft.api.fishtrap.FishTrapRegistry;
+import java.lang.reflect.*;
+
import net.minecraft.item.ItemStack;
public class Growthcraft_Old {
- public static void addTrapJunk(final ItemStack loot, final int lootChance){
- FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance));
-
+ Method addTrapJunk;
+ Method addTrapTreasure;
+ Method addTrapFish;
+ Object FishTrapRegistryO;
+
+ public Growthcraft_Old(){
+ setFishTrapRegistry();
+ }
+
+ void setFishTrapRegistry(){
+ try {
+ Class<?> FishTrapRegistryClass = Class.forName("gtPlusPlus.xmod.growthcraft.fishtrap.FishTrapHandler.mFishingRegistry");
+ Class<?> FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry");
+ if (FishTrapRegistryClass.isInstance(FishTrapHandler.getFishingRegistry())){
+ addTrapJunk = FishTrapRegistryClass.getDeclaredMethod("addTrapJunk", FishTrapEntry);
+ addTrapTreasure = FishTrapRegistryClass.getDeclaredMethod("addTrapTreasure", FishTrapEntry);
+ addTrapFish = FishTrapRegistryClass.getDeclaredMethod("addTrapFish", FishTrapEntry);
+ FishTrapRegistryO = FishTrapHandler.getFishingRegistry();
+ }
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private Object createFishTrapEntry(ItemStack loot, int chance){
+ try {
+ Class<?> FishTrapEntry = Class.forName("growthcraft.api.fishtrap.FishTrapEntry");
+ Object o = FishTrapEntry.getConstructor(ItemStack.class, int.class);
+ if (FishTrapEntry != null){
+ Constructor[] constructors = FishTrapEntry.getDeclaredConstructors();
+ constructors[0].setAccessible(true);
+ Object x = constructors[0].newInstance(loot, chance);
+ if (x != null){
+ return x;
+ }
+ }
+ }
+ catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {}
+
+ return null;
+ }
+
+ private boolean invoke(Method m, ItemStack o, int p){
+ try {
+ Object I = createFishTrapEntry(o, p);
+ m.invoke(FishTrapRegistryO, I);
+ return true;
+ }
+ catch (IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {}
+ return false;
}
- public static void addTrapTreasure(final ItemStack loot, final int lootChance){
- FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance));
+ public void addTrapJunk(final ItemStack loot, final int lootChance){
+ //FishTrapRegistry.instance().addTrapJunk(new FishTrapEntry(loot, lootChance));
+ if (addTrapJunk != null){
+ invoke(addTrapJunk, loot, lootChance);
+ }
}
- public static void addTrapFish(final ItemStack loot, final int lootChance){
- FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance));
+ public void addTrapTreasure(final ItemStack loot, final int lootChance){
+ //FishTrapRegistry.instance().addTrapTreasure(new FishTrapEntry(loot, lootChance));
+ if (addTrapTreasure != null){
+ invoke(addTrapTreasure, loot, lootChance);
+ }
+ }
+ public void addTrapFish(final ItemStack loot, final int lootChance){
+ //FishTrapRegistry.instance().addTrapFish(new FishTrapEntry(loot, lootChance));
+ if (addTrapFish != null){
+ invoke(addTrapFish, loot, lootChance);
+ }
}
}