diff options
author | Alexdoru <57050655+Alexdoru@users.noreply.github.com> | 2024-09-21 01:38:28 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-21 01:38:28 +0200 |
commit | c10272e0e358a233ed0ce7d591e9e43ca7ffa26c (patch) | |
tree | a097f2307d43a5c3d77a698b3c01eae801d35c6c /src/main/java/gregtech/api | |
parent | e567c18792be9fe623ec777b40f3cbc36572b78e (diff) | |
download | GT5-Unofficial-c10272e0e358a233ed0ce7d591e9e43ca7ffa26c.tar.gz GT5-Unofficial-c10272e0e358a233ed0ce7d591e9e43ca7ffa26c.tar.bz2 GT5-Unofficial-c10272e0e358a233ed0ce7d591e9e43ca7ffa26c.zip |
Delete more reflection (#3233)
Diffstat (limited to 'src/main/java/gregtech/api')
6 files changed, 61 insertions, 140 deletions
diff --git a/src/main/java/gregtech/api/enums/TAE.java b/src/main/java/gregtech/api/enums/TAE.java index 48a39da036..edc0e5123c 100644 --- a/src/main/java/gregtech/api/enums/TAE.java +++ b/src/main/java/gregtech/api/enums/TAE.java @@ -1,6 +1,5 @@ package gregtech.api.enums; -import java.lang.reflect.Field; import java.util.HashMap; import java.util.HashSet; @@ -8,7 +7,6 @@ import gregtech.api.interfaces.ITexture; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.block.ModBlocks; import gtPlusPlus.core.lib.GTPPCore; -import gtPlusPlus.core.util.reflect.ReflectionUtils; import gtPlusPlus.xmod.gregtech.api.objects.GTPPCopiedBlockTexture; public class TAE { @@ -77,38 +75,6 @@ public class TAE { Logger.INFO("Finalised TAE."); } - private static boolean registerTextures(GTPPCopiedBlockTexture GTPPCopiedBlockTexture) { - try { - // Handle page 2. - Logger.INFO("[TAE} Registering Texture, Last used casing ID is " + gtPPLastUsedIndex + "."); - if (gtPPLastUsedIndex >= 128) { - Field x = ReflectionUtils.getField(Textures.BlockIcons.class, "casingTexturePages"); - if (x != null) { - ITexture[][] h = (ITexture[][]) x.get(null); - if (h != null) { - h[64][secondaryIndex++] = GTPPCopiedBlockTexture; - x.set(null, h); - Logger - .INFO("[TAE} Registered Texture with ID " + (secondaryIndex - 1) + " in secondary index."); - return true; - } - } - } - - // set to page 1. - else { - Textures.BlockIcons.setCasingTextureForId(gtPPLastUsedIndex, GTPPCopiedBlockTexture); - Logger.INFO("[TAE} Registered Texture with ID " + (gtPPLastUsedIndex) + " in main index."); - gtPPLastUsedIndex++; - return true; - } - } catch (Throwable t) { - t.printStackTrace(); - } - Logger.INFO("[TAE} Failed to register texture, Last used casing ID is " + gtPPLastUsedIndex + "."); - return false; - } - public static ITexture getTexture(int index) { if (gtPPLastUsedIndex >= 128) { return Textures.BlockIcons.getCasingTextureForId(((64 * 128) + index)); diff --git a/src/main/java/gregtech/api/items/ItemEnergyArmor.java b/src/main/java/gregtech/api/items/ItemEnergyArmor.java index 77c8d0991a..257059e963 100644 --- a/src/main/java/gregtech/api/items/ItemEnergyArmor.java +++ b/src/main/java/gregtech/api/items/ItemEnergyArmor.java @@ -28,7 +28,6 @@ import cpw.mods.fml.relauncher.SideOnly; import gregtech.api.GregTechAPI; import gregtech.api.util.GTLanguageManager; import gregtech.api.util.GTModHandler; -import gregtech.api.util.GTUtility; public class ItemEnergyArmor extends ItemArmor implements ISpecialArmor { @@ -126,11 +125,11 @@ public class ItemEnergyArmor extends ItemArmor implements ISpecialArmor { if ((mSpecials & 8) != 0) { if (GTModHandler.canUseElectricItem(aStack, 10000) && aPlayer.isPotionActive(Potion.poison)) { - GTUtility.removePotion(aPlayer, Potion.poison.id); + aPlayer.removePotionEffect(Potion.poison.id); GTModHandler.useElectricItem(aStack, 10000, aPlayer); } if (GTModHandler.canUseElectricItem(aStack, 100000) && aPlayer.isPotionActive(Potion.wither)) { - GTUtility.removePotion(aPlayer, Potion.wither.id); + aPlayer.removePotionEffect(Potion.wither.id); GTModHandler.useElectricItem(aStack, 100000, aPlayer); } } diff --git a/src/main/java/gregtech/api/util/FishPondFakeRecipe.java b/src/main/java/gregtech/api/util/FishPondFakeRecipe.java index 2deb38dccf..385af4ffef 100644 --- a/src/main/java/gregtech/api/util/FishPondFakeRecipe.java +++ b/src/main/java/gregtech/api/util/FishPondFakeRecipe.java @@ -1,8 +1,8 @@ package gregtech.api.util; import static gregtech.api.util.GTRecipeBuilder.SECONDS; -import static gtPlusPlus.api.recipe.GTPPRecipeMaps.fishPondRecipes; +import java.lang.reflect.Field; import java.util.ArrayList; import net.minecraft.item.ItemStack; @@ -11,61 +11,55 @@ import net.minecraftforge.common.FishingHooks; import gregtech.api.enums.GTValues; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.util.minecraft.ItemUtils; -import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.api.recipe.GTPPRecipeMaps; +import gtPlusPlus.xmod.gregtech.common.tileentities.machines.multi.production.MTEIndustrialFishingPond; public class FishPondFakeRecipe { - public static ArrayList<WeightedRandomFishable> fish = new ArrayList<>(); - public static ArrayList<WeightedRandomFishable> junk = new ArrayList<>(); - public static ArrayList<WeightedRandomFishable> treasure = new ArrayList<>(); + public static final ArrayList<ItemStack> fish = new ArrayList<>(); + public static final ArrayList<ItemStack> junk = new ArrayList<>(); + public static final ArrayList<ItemStack> treasure = new ArrayList<>(); @SuppressWarnings("unchecked") - public static boolean generateFishPondRecipes() { - + public static void generateFishPondRecipes() { try { - fish = (ArrayList<WeightedRandomFishable>) ReflectionUtils.getField(FishingHooks.class, "fish") + ArrayList<WeightedRandomFishable> fishList = (ArrayList<WeightedRandomFishable>) GTUtility + .getField(FishingHooks.class, "fish") .get(null); - junk = (ArrayList<WeightedRandomFishable>) ReflectionUtils.getField(FishingHooks.class, "junk") + ArrayList<WeightedRandomFishable> junkList = (ArrayList<WeightedRandomFishable>) GTUtility + .getField(FishingHooks.class, "junk") .get(null); - treasure = (ArrayList<WeightedRandomFishable>) ReflectionUtils.getField(FishingHooks.class, "treasure") + ArrayList<WeightedRandomFishable> treasureList = (ArrayList<WeightedRandomFishable>) GTUtility + .getField(FishingHooks.class, "treasure") .get(null); - } catch (IllegalArgumentException | IllegalAccessException e) { - Logger.INFO("Error generating Fish Pond Recipes. [1]"); + final Field stackField = GTUtility.getField(WeightedRandomFishable.class, "field_150711_b"); + generateRecipesFor(MTEIndustrialFishingPond.FISH_MODE, fish, fishList, stackField); + generateRecipesFor(MTEIndustrialFishingPond.JUNK_MODE, junk, junkList, stackField); + generateRecipesFor(MTEIndustrialFishingPond.TREASURE_MODE, treasure, treasureList, stackField); + } catch (Exception e) { + Logger.INFO("Error reading the vanilla fishing loot table."); e.printStackTrace(); } + } - ArrayList<ArrayList<WeightedRandomFishable>> mega = new ArrayList<>(); - mega.add(fish); - mega.add(junk); - mega.add(treasure); - - int mType = 14; - for (ArrayList<WeightedRandomFishable> f : mega) { - for (WeightedRandomFishable weightedRandomFishable : f) { - if (weightedRandomFishable != null) { - WeightedRandomFishable u = weightedRandomFishable; - try { - ItemStack t = (ItemStack) ReflectionUtils - .getField(WeightedRandomFishable.class, "field_150711_b") - .get(u); - GTValues.RA.stdBuilder() - .itemInputs(GTUtility.getIntegratedCircuit(mType)) - .itemOutputs(t) - .duration(5 * SECONDS) - .eut(0) - .ignoreCollision() - .addTo(fishPondRecipes); - Logger.INFO("Fishing [" + mType + "]: " + ItemUtils.getArrayStackNames(new ItemStack[] { t })); - } catch (IllegalArgumentException | IllegalAccessException e1) { - Logger.INFO("Error generating Fish Pond Recipes. [2]"); - e1.printStackTrace(); - } - } + private static void generateRecipesFor(int circuitType, ArrayList<ItemStack> listToFill, + ArrayList<WeightedRandomFishable> lootTable, Field stackField) { + for (WeightedRandomFishable fishable : lootTable) { + try { + ItemStack stack = (ItemStack) stackField.get(fishable); + listToFill.add(stack.copy()); + GTValues.RA.stdBuilder() + .itemInputs(GTUtility.getIntegratedCircuit(circuitType)) + .itemOutputs(stack) + .duration(5 * SECONDS) + .eut(0) + .ignoreCollision() + .addTo(GTPPRecipeMaps.fishPondRecipes); + } catch (IllegalArgumentException | IllegalAccessException e1) { + Logger.INFO("Error generating Fish Pond Recipes"); + e1.printStackTrace(); } - mType++; } - - return true; + listToFill.trimToSize(); } } diff --git a/src/main/java/gregtech/api/util/GTOreDictUnificator.java b/src/main/java/gregtech/api/util/GTOreDictUnificator.java index 2a7ee08537..af7f249cec 100644 --- a/src/main/java/gregtech/api/util/GTOreDictUnificator.java +++ b/src/main/java/gregtech/api/util/GTOreDictUnificator.java @@ -583,4 +583,8 @@ public class GTOreDictUnificator { return GTUtility.isStringValid(aName) ? Collections.unmodifiableList(OreDictionary.getOres(aName)) : Collections.emptyList(); } + + public static Map<String, ItemStack> getName2StackMap() { + return sName2StackMap; + } } diff --git a/src/main/java/gregtech/api/util/GTUtility.java b/src/main/java/gregtech/api/util/GTUtility.java index 442ba2a562..3294b0523d 100644 --- a/src/main/java/gregtech/api/util/GTUtility.java +++ b/src/main/java/gregtech/api/util/GTUtility.java @@ -62,7 +62,6 @@ import net.minecraft.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityList; -import net.minecraft.entity.EntityLiving; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EnumCreatureAttribute; import net.minecraft.entity.item.EntityItem; @@ -364,21 +363,6 @@ public class GTUtility { return null; } - public static Object callConstructor(String aClass, int aConstructorIndex, Object aReplacementObject, - boolean aLogErrors, Object... aParameters) { - try { - return callConstructor( - Class.forName(aClass), - aConstructorIndex, - aReplacementObject, - aLogErrors, - aParameters); - } catch (Throwable e) { - if (aLogErrors) e.printStackTrace(GTLog.err); - } - return aReplacementObject; - } - public static Object callConstructor(Class<?> aClass, int aConstructorIndex, Object aReplacementObject, boolean aLogErrors, Object... aParameters) { if (aConstructorIndex < 0) { @@ -401,31 +385,12 @@ public class GTUtility { return aReplacementObject; } - public static String capitalizeString(String aString) { - if (aString != null && aString.length() > 0) return aString.substring(0, 1) - .toUpperCase() + aString.substring(1); - return E; - } - - public static boolean getPotion(EntityLivingBase aPlayer, int aPotionIndex) { - try { - Field tPotionHashmap = null; - - Field[] fields = EntityLiving.class.getDeclaredFields(); - - for (Field field : fields) { - if (field.getType() == HashMap.class) { - tPotionHashmap = field; - tPotionHashmap.setAccessible(true); - break; - } - } - - if (tPotionHashmap != null) return ((HashMap<?, ?>) tPotionHashmap.get(aPlayer)).get(aPotionIndex) != null; - } catch (Throwable e) { - if (D1) e.printStackTrace(GTLog.err); + public static String capitalizeString(String s) { + if (s != null && !s.isEmpty()) { + return s.substring(0, 1) + .toUpperCase() + s.substring(1); } - return false; + return ""; } public static String getClassName(Object aObject) { @@ -438,26 +403,6 @@ public class GTUtility { .lastIndexOf(".") + 1); } - public static void removePotion(EntityLivingBase aPlayer, int aPotionIndex) { - try { - Field tPotionHashmap = null; - - Field[] fields = EntityLiving.class.getDeclaredFields(); - - for (Field field : fields) { - if (field.getType() == HashMap.class) { - tPotionHashmap = field; - tPotionHashmap.setAccessible(true); - break; - } - } - - if (tPotionHashmap != null) ((HashMap<?, ?>) tPotionHashmap.get(aPlayer)).remove(aPotionIndex); - } catch (Throwable e) { - if (D1) e.printStackTrace(GTLog.err); - } - } - public static boolean getFullInvisibility(EntityPlayer aPlayer) { try { if (aPlayer.isInvisible()) { diff --git a/src/main/java/gregtech/api/util/ReflectionUtil.java b/src/main/java/gregtech/api/util/ReflectionUtil.java new file mode 100644 index 0000000000..60abae8199 --- /dev/null +++ b/src/main/java/gregtech/api/util/ReflectionUtil.java @@ -0,0 +1,13 @@ +package gregtech.api.util; + +public class ReflectionUtil { + + public static Class<?> getClass(String classname) { + try { + return Class.forName(classname); + } catch (ClassNotFoundException e) { + return null; + } + } + +} |