aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r--src/Java/gtPlusPlus/core/util/Utils.java25
-rw-r--r--src/Java/gtPlusPlus/core/util/data/StringUtils.java100
-rw-r--r--src/Java/gtPlusPlus/core/util/math/MathUtils.java17
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java78
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/FoodUtils.java2
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java116
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java20
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/MiningUtils.java22
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java28
-rw-r--r--src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java26
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java32
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ProxyFinder.java4
-rw-r--r--src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java499
13 files changed, 666 insertions, 303 deletions
diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java
index eef768e799..d032384638 100644
--- a/src/Java/gtPlusPlus/core/util/Utils.java
+++ b/src/Java/gtPlusPlus/core/util/Utils.java
@@ -46,6 +46,7 @@ import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.api.objects.data.Pair;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.CORE;
+import gtPlusPlus.core.lib.LoadedMods;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
@@ -791,7 +792,13 @@ public class Utils {
if (GT_Mod.VERSION == 509){
Class<GT_Mod> clazz;
try {
- clazz = (Class<GT_Mod>) Class.forName("gregtech.GT_Mod");
+
+ if (LoadedMods.BeyondRealityCore) {
+ //Safely assume it's Beyond Reality running .28-pre (If it's not, tough shit really?)
+ return new Pair<Integer, Integer>(9, 28);
+ }
+
+ clazz = (Class<GT_Mod>) ReflectionUtils.getClass("gregtech.GT_Mod");
Field mSubversion = ReflectionUtils.getField(clazz, "SUBVERSION");
if (mSubversion != null){
int mSub = 0;
@@ -802,7 +809,9 @@ public class Utils {
}
}
}
- catch (Throwable t){}
+ catch (Throwable t){
+
+ }
}
//5.08.33
else if (GT_Mod.VERSION == 508){
@@ -939,4 +948,16 @@ public class Utils {
return aOther;
}
+ public static long getMillisSince(long aStartTime, long aCurrentTime) {
+ return (aCurrentTime - aStartTime);
+ }
+
+ public static long getSecondsFromMillis(long aMillis) {
+ return (aMillis/1000);
+ }
+
+ public static long getTicksFromSeconds(long aSeconds) {
+ return (aSeconds*20);
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/util/data/StringUtils.java b/src/Java/gtPlusPlus/core/util/data/StringUtils.java
index e58b68665a..2372d04c15 100644
--- a/src/Java/gtPlusPlus/core/util/data/StringUtils.java
+++ b/src/Java/gtPlusPlus/core/util/data/StringUtils.java
@@ -1,5 +1,9 @@
package gtPlusPlus.core.util.data;
+import gtPlusPlus.api.objects.Logger;
+import gtPlusPlus.api.objects.data.AutoMap;
+import gtPlusPlus.core.util.Utils;
+
public class StringUtils {
public static String superscript(String str) {
@@ -116,4 +120,100 @@ public class StringUtils {
String restLetters = data.substring(1).toLowerCase();
return firstLetter + restLetters;
}
+
+ public static <V> String getDataStringFromArray(V[] parameterTypes) {
+ if (parameterTypes == null || parameterTypes.length == 0) {
+ return "empty/null";
+ }
+ else {
+ String aData = "";
+ for (V y : parameterTypes) {
+ if (y != null) {
+ aData += ", "+y.toString();
+ }
+ }
+ return aData;
+ }
+ }
+
+
+
+ /**
+ * Is this a special regex character for delimination? (.$|()[]{}^?*+\\)
+ * @param aChar - The char to test
+ * @return - Is this a special character?
+ */
+ public static boolean isSpecialCharacter(char aChar) {
+ if (aChar == '"' || aChar == '.' || aChar == '$' || aChar == '|' || aChar == '(' || aChar == ')' || aChar == '['
+ || aChar == ']' || aChar == '{' || aChar == '}' || aChar == '^' || aChar == '?' || aChar == '*'
+ || aChar == '+' || aChar == '\\') {
+ return true;
+ }
+ return false;
+ }
+
+ public static boolean isEscaped(String aString) {
+ return aString.substring(0, 1).equals("\\");
+ }
+
+ public static String splitAndUppercase(String aInput, String aDelim) {
+
+ if (!isEscaped(aDelim)) {
+ boolean isSpecial = false;
+ for (int o=0;o<aInput.length();o++) {
+ if (isSpecialCharacter(aInput.charAt(o))) {
+ isSpecial = true;
+ }
+ }
+ if (isSpecial) {
+ aDelim = "\\"+aDelim;
+ }
+ }
+
+
+ Logger.INFO("Splitting "+aInput);
+ String[] aSplit = aInput.split(aDelim);
+ Logger.INFO("Split into "+aSplit == null ? ""+0 : aSplit.length+" parts.");
+ if (aSplit == null || aSplit.length == 0) {
+ return aInput;
+ }
+ else {
+ AutoMap<String> aTemp = new AutoMap<String>();
+ for (String s : aSplit) {
+ Logger.INFO("Found: "+s);
+ s = s.replace(".", "");
+ s = Utils.sanitizeString(s);
+ s = firstLetterCaps(s);
+ Logger.INFO("Formatted & Captilized: "+s);
+ aTemp.put(s);
+ }
+ Logger.INFO("Rebuilding");
+ String aReturn = "";
+ for (String s : aTemp) {
+ aReturn += s;
+ Logger.INFO("Step: "+aReturn);
+ }
+ return aReturn;
+ }
+ }
+
+ public static int characterCount(String aString, char aChar) {
+ return characterCount(aString, ""+aChar);
+ }
+
+ public static int characterCount(String aString, String aChar) {
+ int aLength = aString.length();
+ int aFound = 0;
+ if (aLength == 0 || !aString.contains(aChar)) {
+ return 0;
+ }
+ else {
+ for (int index = 0; index < aLength; index++) {
+ if (aString.substring(index, index+1).equals(aChar)) {
+ aFound++;
+ }
+ }
+ return aFound;
+ }
+ }
}
diff --git a/src/Java/gtPlusPlus/core/util/math/MathUtils.java b/src/Java/gtPlusPlus/core/util/math/MathUtils.java
index 40ac23a1b8..f9a4d8f548 100644
--- a/src/Java/gtPlusPlus/core/util/math/MathUtils.java
+++ b/src/Java/gtPlusPlus/core/util/math/MathUtils.java
@@ -463,14 +463,14 @@ public class MathUtils {
return 0;
}
int divisor = aDataSet.length;
- Logger.INFO("Calculating Average Short. Divisor: "+divisor);
+ Logger.WARNING("Calculating Average Short. Divisor: "+divisor);
short total = 0;
for (short i : aDataSet) {
- Logger.INFO("Adding "+i);
+ Logger.WARNING("Adding "+i);
total += i;
}
short result = safeShort((total/divisor));
- Logger.INFO("Average: "+result);
+ Logger.WARNING("Average: "+result);
return result;
}
public static int getIntAverage(int[] aDataSet) {
@@ -681,4 +681,15 @@ public class MathUtils {
return i;
}
+ /**
+ * Balances a number within a range.
+ * @param aInput - The number to balance
+ * @param aMin - The minimum bounds
+ * @param aMax - The maximum bounds
+ * @return - An Integer which will be between the bounds, or a boundary value.
+ */
+ public static int balance(int aInput, int aMin, int aMax) {
+ return Math.max(Math.min(aInput, aMax), aMin);
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
index ed1cbe0c64..0ae751a20b 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java
@@ -10,9 +10,7 @@ import gregtech.api.util.GT_LanguageManager;
import gtPlusPlus.api.objects.Logger;
import gtPlusPlus.api.objects.minecraft.FluidGT6;
-import gtPlusPlus.core.fluids.GenericFluid;
import gtPlusPlus.core.item.base.BaseItemComponent;
-import gtPlusPlus.core.item.base.cell.BaseItemCell;
import gtPlusPlus.core.item.base.cell.BaseItemPlasmaCell;
import gtPlusPlus.core.material.Material;
import gtPlusPlus.core.material.MaterialGenerator;
@@ -93,82 +91,6 @@ public class FluidUtils {
}
-
- /**
- * @param String displayName
- * @param String fluidName
- * @param int meltingPointC Temp
- * @param short[] rgba
- * @param byte state
- * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.)
- *
- * @return short[]
- */
- public static Fluid generateFluid(final String displayName, final String fluidName, final int tempK, final short[] rgba ,final int aState){
- Fluid generatedFluid = null;
- switch (aState) {
- case 0: {
- generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 10000, false, rgba);
- break;
- }
- default:
- case 1:
- case 4: {
- generatedFluid = new GenericFluid(displayName, fluidName, 0, 100, tempK, 1000, false, rgba);
- break;
- }
- case 2: {
- generatedFluid = new GenericFluid(displayName, fluidName, 0, -100, tempK, 200, true, rgba);
- break;
- }
- case 3: {
- generatedFluid = new GenericFluid(displayName, fluidName, 15, -10000, tempK, 10, true, rgba);
- break;
- }
- }
- return generatedFluid;
- }
- /**
- *
- * @param String fluidName
- * @param int meltingPointC Temp
- * @param short[] rgba
- * @param byte state
- * States: 0 (Solid), 1 (Fluid), 2(Gas), 3(Plasma) 4(Fuel I think? Don't use.)
- *
- * @return short[]
- */
- public static Fluid generateFluid(final Material material ,final int aState){
- final int tempK = material.getMeltingPointC();
- Fluid generatedFluid = null;
- switch (aState) {
- case 0: {
- generatedFluid = new GenericFluid(material, 0, 100, tempK, 10000, false);
- break;
- }
- default:
- case 1:
- case 4: {
- generatedFluid = new GenericFluid(material, 0, 100, tempK, 1000, false);
- break;
- }
- case 2: {
- generatedFluid = new GenericFluid(material, 0, -100, tempK, 200, true);
- break;
- }
- case 3: {
- generatedFluid = new GenericFluid(material, 15, -10000, tempK, 10, true);
- break;
- }
- }
- return generatedFluid;
- }
-
-
-
-
-
-
public static Fluid addGtFluid(final String aName, final String aLocalized, final GT_Materials aMaterial, final int aState, final long aTemperatureK, final ItemStack aFullContainer, final ItemStack aEmptyContainer, final int aFluidAmount) {
return addGtFluid(aName, aLocalized, aMaterial, aState, aTemperatureK, aFullContainer, aEmptyContainer, aFluidAmount, true);
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/FoodUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FoodUtils.java
index a1c2bf6104..9f5d4f36ca 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/FoodUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/FoodUtils.java
@@ -13,7 +13,7 @@ public class FoodUtils {
public static final Class IEdibleClass;
static {
- IEdibleClass = ReflectionUtils.getClassByName("squeek.applecore.api.food.IEdible");
+ IEdibleClass = ReflectionUtils.getClass("squeek.applecore.api.food.IEdible");
}
public static boolean isFood(ItemStack food) {
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
index a5cf9527a9..d32ff4e160 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java
@@ -35,6 +35,7 @@ import net.minecraft.init.Items;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.Item;
import net.minecraft.item.Item.ToolMaterial;
+import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.item.ItemStack;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
@@ -123,7 +124,7 @@ public class ItemUtils {
final int meta) {
try {
Item em = null;
- final Item em1 = getItem(FQRN);
+ final Item em1 = getItemFromFQRN(FQRN);
// Utils.LOG_WARNING("Found: "+em1.getUnlocalizedName()+":"+meta);
if (em1 != null) {
em = em1;
@@ -157,7 +158,7 @@ public class ItemUtils {
if (MOD) {
try {
Item em = null;
- final Item em1 = getItem(FQRN);
+ final Item em1 = getItemFromFQRN(FQRN);
// Utils.LOG_WARNING("Found: "+em1.getUnlocalizedName()+":"+meta);
if (em1 != null) {
if (null == em) {
@@ -180,7 +181,7 @@ public class ItemUtils {
public static ItemStack simpleMetaStack(final String FQRN, final int meta, final int itemstackSize) {
try {
Item em = null;
- final Item em1 = getItem(FQRN);
+ final Item em1 = getItemFromFQRN(FQRN);
// Utils.LOG_WARNING("Found: "+em1.getUnlocalizedName()+":"+meta);
if (em1 != null) {
if (null == em) {
@@ -232,7 +233,7 @@ public class ItemUtils {
ItemStack temp;
if (fqrn.toLowerCase().contains(oreDict.toLowerCase())) {
final String sanitizedName = fqrn.replace(oreDict, "");
- temp = ItemUtils.getItemStack(sanitizedName, stackSize);
+ temp = ItemUtils.getItemStackFromFQRN(sanitizedName, stackSize);
return temp;
}
final String[] fqrnSplit = fqrn.split(":");
@@ -257,13 +258,13 @@ public class ItemUtils {
return null;
}
- public static Item getItem(final String fqrn) // fqrn = fully qualified resource name
+ public static Item getItemFromFQRN(final String fqrn) // fqrn = fully qualified resource name
{
final String[] fqrnSplit = fqrn.split(":");
return GameRegistry.findItem(fqrnSplit[0], fqrnSplit[1]);
}
- public static ItemStack getItemStack(final String fqrn, final int Size) // fqrn = fully qualified resource name
+ public static ItemStack getItemStackFromFQRN(final String fqrn, final int Size) // fqrn = fully qualified resource name
{
final String[] fqrnSplit = fqrn.split(":");
return GameRegistry.findItemStack(fqrnSplit[0], fqrnSplit[1], Size);
@@ -395,6 +396,61 @@ public class ItemUtils {
new BaseItemDustUnique("itemDust" + unlocalizedName, materialName, mChemForm, Colour, "Dust"),
new BaseItemDustUnique("itemDustSmall" + unlocalizedName, materialName, mChemForm, Colour, "Small"),
new BaseItemDustUnique("itemDustTiny" + unlocalizedName, materialName, mChemForm, Colour, "Tiny") };
+
+ //Generate Shaped/Shapeless Recipes
+
+ final ItemStack normalDust = ItemUtils.getSimpleStack(output[0]);
+ final ItemStack smallDust = ItemUtils.getSimpleStack(output[1]);
+ final ItemStack tinyDust = ItemUtils.getSimpleStack(output[2]);
+
+
+ if (ItemUtils.checkForInvalidItems(tinyDust) && ItemUtils.checkForInvalidItems(normalDust)) {
+ if (RecipeUtils.recipeBuilder(
+ tinyDust, tinyDust, tinyDust,
+ tinyDust, tinyDust, tinyDust,
+ tinyDust, tinyDust, tinyDust,
+ normalDust)){
+ Logger.WARNING("9 Tiny dust to 1 Dust Recipe: "+materialName+" - Success");
+ }
+ else {
+ Logger.WARNING("9 Tiny dust to 1 Dust Recipe: "+materialName+" - Failed");
+ }
+
+ if (RecipeUtils.recipeBuilder(
+ normalDust, null, null,
+ null, null, null,
+ null, null, null,
+ ItemUtils.getSimpleStack(tinyDust, 9))){
+ Logger.WARNING("9 Tiny dust from 1 Recipe: "+materialName+" - Success");
+ }
+ else {
+ Logger.WARNING("9 Tiny dust from 1 Recipe: "+materialName+" - Failed");
+ }
+ }
+
+ if (ItemUtils.checkForInvalidItems(smallDust) && ItemUtils.checkForInvalidItems(normalDust)) {
+ if (RecipeUtils.recipeBuilder(
+ smallDust, smallDust, null,
+ smallDust, smallDust, null,
+ null, null, null,
+ normalDust)){
+ Logger.WARNING("4 Small dust to 1 Dust Recipe: "+materialName+" - Success");
+ }
+ else {
+ Logger.WARNING("4 Small dust to 1 Dust Recipe: "+materialName+" - Failed");
+ }
+ if (RecipeUtils.recipeBuilder(
+ null, normalDust, null,
+ null, null, null,
+ null, null, null,
+ ItemUtils.getSimpleStack(smallDust, 4))){
+ Logger.WARNING("4 Small dust from 1 Dust Recipe: "+materialName+" - Success");
+ }
+ else {
+ Logger.WARNING("4 Small dust from 1 Dust Recipe: "+materialName+" - Failed");
+ }
+ }
+
return output;
}
@@ -607,7 +663,7 @@ public class ItemUtils {
}
public static String getArrayStackNames(final ItemStack[] aStack) {
- String itemNames = "Item Array: ";
+ String itemNames = "";
int aPos = 0;
for (final ItemStack alph : aStack) {
if (alph == null) {
@@ -1012,4 +1068,50 @@ public class ItemUtils {
}
+ public static String getItemName(ItemStack aStack) {
+ if (aStack == null) {
+ return "ERROR - Empty Stack";
+ }
+ String aDisplay = null;
+ try {
+ aDisplay = ("" + StatCollector
+ .translateToLocal(aStack.getItem().getUnlocalizedNameInefficiently(aStack) + ".name"))
+ .trim();
+ if (aStack.hasTagCompound()) {
+ if (aStack.stackTagCompound != null && aStack.stackTagCompound.hasKey("display", 10)) {
+ NBTTagCompound nbttagcompound = aStack.stackTagCompound.getCompoundTag("display");
+
+ if (nbttagcompound.hasKey("Name", 8)) {
+ aDisplay = nbttagcompound.getString("Name");
+ }
+ }
+ }
+ } catch (Throwable t) {
+
+ }
+ if (aDisplay == null || aDisplay.length() <= 0) {
+ aDisplay = aStack.getUnlocalizedName() + ":" + aStack.getItemDamage();
+ } else {
+ aDisplay += " | Meta: " + aStack.getItemDamage();
+ }
+ return aDisplay;
+ }
+
+ public static String getUnlocalizedItemName(ItemStack aStack) {
+ if (aStack == null) {
+ return "ERROR.Empty.Stack";
+ }
+ String aDisplay = null;
+ try {
+ aDisplay = (aStack.getUnlocalizedName()).trim();
+
+ } catch (Throwable t) {
+ aDisplay = aStack.getItem().getUnlocalizedName();
+ }
+ if (aDisplay == null || aDisplay.length() <= 0) {
+ aDisplay = aStack.getItem().getUnlocalizedNameInefficiently(aStack);
+ }
+ return aDisplay;
+ }
+
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
index 45d21a3016..a7fc4507e8 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java
@@ -322,7 +322,7 @@ public class MaterialUtils {
mName = (String) ReflectionUtils.getField(Materials.class, "mName").get(mat);
}
}
- catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+ catch (IllegalArgumentException | IllegalAccessException e) {
}
@@ -348,12 +348,30 @@ public class MaterialUtils {
TextureSet o = (r != null && r.isPresent() && r.get() != null) ? r.get() : null;
return o;*/
}
+
+
+
+ public static Materials getMaterial(String aMaterialName, String aFallbackMaterialName) {
+ Materials g = getMaterial(aMaterialName);
+ if (g == null) {
+ g = getMaterial(aFallbackMaterialName);
+ }
+ if (g == null) {
+ Logger.INFO("Failed finding material '"+aMaterialName+"' & fallback '"+aFallbackMaterialName+"', returning _NULL.");
+ g = Materials._NULL;
+ }
+ return g;
+ }
public static Materials getMaterial(String aMaterialName) {
Materials m = gtPlusPlus.xmod.gregtech.common.StaticFields59.getMaterial(aMaterialName);
if (m == null) {
m = getMaterialByName(aMaterialName);
}
+ if (m == null) {
+ Logger.INFO("Failed finding material '"+aMaterialName+"', returning _NULL.");
+ m = Materials._NULL;
+ }
return m;
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/MiningUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MiningUtils.java
index e7ced98f5a..080b5665a3 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/MiningUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/MiningUtils.java
@@ -152,7 +152,7 @@ public class MiningUtils {
try {
aTextWorldGen = (String) ReflectionUtils.getField(GT_Worldgen_GT_Ore_Layer.class, "aTextWorldgen").get(h);
- } catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+ } catch (IllegalArgumentException | IllegalAccessException e) {
aTextWorldGen = h.mWorldGenName;
}
@@ -180,27 +180,27 @@ public class MiningUtils {
boolean aEndAsteroids;
try {
- if (Class.forName("micdoodle8.mods.galacticraft.core.util.ConfigManagerCore") != null && mMoonID == -99) {
- mMoonID = ReflectionUtils.getField(Class.forName("micdoodle8.mods.galacticraft.core.util.ConfigManagerCore"), "idDimensionMoon").getInt(null);
+ if (ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.util.ConfigManagerCore") != null && mMoonID == -99) {
+ mMoonID = ReflectionUtils.getField(ReflectionUtils.getClass("micdoodle8.mods.galacticraft.core.util.ConfigManagerCore"), "idDimensionMoon").getInt(null);
}
}
- catch (ClassNotFoundException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {}
+ catch (IllegalArgumentException | IllegalAccessException e) {}
//Gets Mars ID
try {
- if (Class.forName("micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars") != null && mMarsID == -99) {
- mMarsID = ReflectionUtils.getField(Class.forName("micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars"), "dimensionIDMars").getInt(null);
+ if (ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars") != null && mMarsID == -99) {
+ mMarsID = ReflectionUtils.getField(ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.mars.ConfigManagerMars"), "dimensionIDMars").getInt(null);
}
}
- catch (ClassNotFoundException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {}
+ catch (IllegalArgumentException | IllegalAccessException e) {}
//Get Comets ID
try {
- if (Class.forName("micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids") != null && mCometsID == -99) {
- mCometsID = ReflectionUtils.getField(Class.forName("micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids"), "dimensionIDAsteroids").getInt(null);
+ if (ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids") != null && mCometsID == -99) {
+ mCometsID = ReflectionUtils.getField(ReflectionUtils.getClass("micdoodle8.mods.galacticraft.planets.asteroids.ConfigManagerAsteroids"), "dimensionIDAsteroids").getInt(null);
}
}
- catch (ClassNotFoundException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {}
+ catch (IllegalArgumentException | IllegalAccessException e) {}
//Clear Cache
Ores_Overworld.clear();
@@ -215,7 +215,7 @@ public class MiningUtils {
try {
aEndAsteroids = ReflectionUtils.getField(GT_Worldgen_GT_Ore_Layer.class, "mEndAsteroid").getBoolean(x);
}
- catch (IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+ catch (IllegalArgumentException | IllegalAccessException e) {
aEndAsteroids = false;
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
index a5f5c778bf..774c8b6f13 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java
@@ -5,15 +5,10 @@ import java.util.Iterator;
import java.util.List;
import cpw.mods.fml.common.registry.GameRegistry;
-
-import net.minecraft.item.Item;
-import net.minecraft.item.ItemStack;
-import net.minecraft.item.crafting.CraftingManager;
-import net.minecraft.item.crafting.IRecipe;
-
import gregtech.api.enums.Materials;
import gregtech.api.util.GT_ModHandler;
import gregtech.api.util.GT_Recipe;
+import gregtech.api.util.GT_Recipe.GT_Recipe_Map;
import gtPlusPlus.GTplusplus;
import gtPlusPlus.api.interfaces.RunnableWithInfo;
import gtPlusPlus.api.objects.Logger;
@@ -22,9 +17,12 @@ import gtPlusPlus.api.objects.minecraft.ShapedRecipe;
import gtPlusPlus.core.handler.COMPAT_HANDLER;
import gtPlusPlus.core.handler.Recipes.LateRegistrationHandler;
import gtPlusPlus.core.handler.Recipes.RegistrationHandler;
-import gtPlusPlus.core.lib.CORE;
import gtPlusPlus.core.recipe.common.CI;
import gtPlusPlus.core.util.reflect.ReflectionUtils;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.crafting.CraftingManager;
+import net.minecraft.item.crafting.IRecipe;
import net.minecraftforge.oredict.OreDictionary;
import net.minecraftforge.oredict.ShapedOreRecipe;
import net.minecraftforge.oredict.ShapelessOreRecipe;
@@ -33,7 +31,8 @@ public class RecipeUtils {
public static int mInvalidID = 1;
public static boolean recipeBuilder(final Object slot_1, final Object slot_2, final Object slot_3, final Object slot_4, final Object slot_5, final Object slot_6, final Object slot_7, final Object slot_8, final Object slot_9, ItemStack resultItem){
- if (gtPlusPlus.GTplusplus.CURRENT_LOAD_PHASE != GTplusplus.INIT_PHASE.POST_INIT) {
+ //Old Debug Code, useful for finding recipes loading too early.
+ /*if (gtPlusPlus.GTplusplus.CURRENT_LOAD_PHASE != GTplusplus.INIT_PHASE.POST_INIT) {
Logger.INFO(ReflectionUtils.getMethodName(1));
Logger.INFO(ReflectionUtils.getMethodName(2));
Logger.INFO(ReflectionUtils.getMethodName(3));
@@ -44,7 +43,7 @@ public static int mInvalidID = 1;
Logger.INFO(ReflectionUtils.getMethodName(8));
Logger.INFO(ReflectionUtils.getMethodName(9));
System.exit(1);
- }
+ }*/
if (resultItem == null){
Logger.RECIPE("[Fix] Found a recipe with an invalid output, yet had a valid inputs. Using Dummy output so recipe can be found..");
@@ -212,7 +211,7 @@ public static int mInvalidID = 1;
public static boolean removeCraftingRecipe(Object x){
if (null == x){return false;}
if (x instanceof String){
- final Item R = ItemUtils.getItem((String) x);
+ final Item R = ItemUtils.getItemFromFQRN((String) x);
if (R != null){
x = R;
}
@@ -395,6 +394,7 @@ public static int mInvalidID = 1;
else {
Logger.RECIPE("[Fix] Output is Null for a recipe. Report to Alkalus.");
output = ItemUtils.getItemStackOfAmountFromOreDict("sadibasdkjnad", 1);
+ RegistrationHandler.recipesFailed++;
}
}
}
@@ -574,5 +574,13 @@ public static int mInvalidID = 1;
}
+ public static boolean removeGtRecipe(GT_Recipe aRecipeToRemove, GT_Recipe_Map aRecipeMap) {
+ if (aRecipeMap.mRecipeList.contains(aRecipeToRemove)) {
+ return aRecipeMap.mRecipeList.remove(aRecipeToRemove);
+ }
+ return false;
+ }
+
+
}
diff --git a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
index dde785cee6..aeeb4ae5be 100644
--- a/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
+++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java
@@ -39,7 +39,7 @@ public class PollutionUtils {
return mPollution.getBoolean(GT_Pollution);
}
}
- } catch (SecurityException | IllegalArgumentException | IllegalAccessException | NoSuchFieldException e) {
+ } catch (SecurityException | IllegalArgumentException | IllegalAccessException e) {
}
return false;
}
@@ -53,16 +53,16 @@ public class PollutionUtils {
if (mAddPollution != null) {
mAddPollution.invoke(null, te, pollutionValue);
}
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ Class<?> GT_Pollution = ReflectionUtils.getClass("gregtech.common.GT_Pollution");
if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("addPollution", IGregTechTileEntity.class, int.class);
+ Method addPollution = ReflectionUtils.getMethod(GT_Pollution, "addPollution", IGregTechTileEntity.class, int.class);
if (addPollution != null) {
mAddPollution = addPollution;
addPollution.invoke(null, te, pollutionValue);
return true;
}
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ } catch (SecurityException | IllegalAccessException
| IllegalArgumentException | InvocationTargetException e) {
}
return false;
@@ -92,16 +92,16 @@ public class PollutionUtils {
mAddPollution2.invoke(null, aChunk, pollutionValue);
return true;
}
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ Class<?> GT_Pollution = ReflectionUtils.getClass("gregtech.common.GT_Pollution");
if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("addPollution", Chunk.class, int.class);
+ Method addPollution = ReflectionUtils.getMethod(GT_Pollution, "addPollution", Chunk.class, int.class);
if (addPollution != null) {
mAddPollution2 = addPollution;
mAddPollution2.invoke(null, aChunk, pollutionValue);
return true;
}
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ } catch (SecurityException | IllegalAccessException
| IllegalArgumentException | InvocationTargetException e) {
}
return false;
@@ -128,15 +128,15 @@ public class PollutionUtils {
if (mGetPollution != null) {
mGetPollution.invoke(null, te);
}
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ Class<?> GT_Pollution = ReflectionUtils.getClass("gregtech.common.GT_Pollution");
if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("getPollution", IGregTechTileEntity.class);
+ Method addPollution = ReflectionUtils.getMethod(GT_Pollution, "getPollution", IGregTechTileEntity.class);
if (addPollution != null) {
mGetPollution = addPollution;
return (int) addPollution.invoke(null, te);
}
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ } catch (SecurityException | IllegalAccessException
| IllegalArgumentException | InvocationTargetException e) {
}
return 0;
@@ -151,15 +151,15 @@ public class PollutionUtils {
if (mGetPollution2 != null) {
mGetPollution2.invoke(null, te);
}
- Class<?> GT_Pollution = Class.forName("gregtech.common.GT_Pollution");
+ Class<?> GT_Pollution = ReflectionUtils.getClass("gregtech.common.GT_Pollution");
if (GT_Pollution != null) {
- Method addPollution = GT_Pollution.getMethod("getPollution", Chunk.class);
+ Method addPollution = ReflectionUtils.getMethod(GT_Pollution, "getPollution", Chunk.class);
if (addPollution != null) {
mGetPollution2 = addPollution;
return (int) addPollution.invoke(null, te);
}
}
- } catch (ClassNotFoundException | SecurityException | NoSuchMethodException | IllegalAccessException
+ } catch (SecurityException | IllegalAccessException
| IllegalArgumentException | InvocationTargetException e) {
}
return 0;
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java b/src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java
deleted file mode 100644
index 99a9bf2fa9..0000000000
--- a/src/Java/gtPlusPlus/core/util/reflect/ClientProxyFinder.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package gtPlusPlus.core.util.reflect;
-
-import java.lang.reflect.Field;
-
-import cpw.mods.fml.common.SidedProxy;
-
-public class ClientProxyFinder {
-
- public static Object getInstance(final Object modInstance) throws ReflectiveOperationException {
- for(final Field field : modInstance.getClass().getDeclaredFields()) {
- if(field.isAnnotationPresent(SidedProxy.class)) {
- final SidedProxy sidedProxy = field.getAnnotation(SidedProxy.class);
- final Object fieldValue = field.get(modInstance);
- try {
- final Class<?> clientSideClass = Class.forName(sidedProxy.clientSide());
- if(clientSideClass.isAssignableFrom(fieldValue.getClass())) {
- final Object clientProxy = clientSideClass.cast(fieldValue);
- //do what you want with client proxy instance
- return clientProxy;
- }
-
- } catch (final NoClassDefFoundError err) {
- //its server side
- return null;
- }
- break;
- }
- }
- return null;
- }
-
-} \ No newline at end of file
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ProxyFinder.java b/src/Java/gtPlusPlus/core/util/reflect/ProxyFinder.java
index 85599e4695..d22fafb37b 100644
--- a/src/Java/gtPlusPlus/core/util/reflect/ProxyFinder.java
+++ b/src/Java/gtPlusPlus/core/util/reflect/ProxyFinder.java
@@ -12,7 +12,7 @@ public class ProxyFinder {
final SidedProxy sidedProxy = field.getAnnotation(SidedProxy.class);
final Object fieldValue = field.get(modInstance);
try {
- final Class<?> serverSideClass = Class.forName(sidedProxy.serverSide());
+ final Class<?> serverSideClass = ReflectionUtils.getClass(sidedProxy.serverSide());
if(serverSideClass.isAssignableFrom(fieldValue.getClass())) {
final Object serverProxy = serverSideClass.cast(fieldValue);
//do what you want with server proxy instance
@@ -35,7 +35,7 @@ public class ProxyFinder {
final SidedProxy sidedProxy = field.getAnnotation(SidedProxy.class);
final Object fieldValue = field.get(modInstance);
try {
- final Class<?> clientSideClass = Class.forName(sidedProxy.clientSide());
+ final Class<?> clientSideClass = ReflectionUtils.getClass(sidedProxy.clientSide());
if(clientSideClass.isAssignableFrom(fieldValue.getClass())) {
final Object clientProxy = clientSideClass.cast(fieldValue);
//do what you want with client proxy instance
diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java
index dee9d76a4c..722a4f3ff7 100644
--- a/