diff options
Diffstat (limited to 'src/Java/gtPlusPlus/core/util')
-rw-r--r-- | src/Java/gtPlusPlus/core/util/BaseHandler.java | 11 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/ClassUtils.java | 76 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/Quality.java | 61 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/Utils.java | 7 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/UtilsChatFormatting.java | 129 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/UtilsRarity.java | 18 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/UtilsText.java | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/ArrayUtils.java (renamed from src/Java/gtPlusPlus/core/util/array/ArrayUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/EnumUtils.java | 41 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/LocaleUtils.java (renamed from src/Java/gtPlusPlus/core/util/locale/LocaleUtils.java) | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/LoggingUtils.java (renamed from src/Java/gtPlusPlus/core/util/LoggingUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/StringUtils.java (renamed from src/Java/gtPlusPlus/core/util/StringUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/UUIDGenerator.java (renamed from src/Java/gtPlusPlus/core/util/uuid/UUIDGenerator.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/data/UUIDUtils.java (renamed from src/Java/gtPlusPlus/core/util/uuid/UUIDUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java | 30 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/EnchantingUtils.java (renamed from src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java (renamed from src/Java/gtPlusPlus/core/util/entity/EntityUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java (renamed from src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java) | 5 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/InventoryUtils.java (renamed from src/Java/gtPlusPlus/core/util/inventory/InventoryUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java (renamed from src/Java/gtPlusPlus/core/util/item/ItemUtils.java) | 7 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java (renamed from src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java) | 64 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/ModularArmourUtils.java (renamed from src/Java/gtPlusPlus/core/util/nbt/ModularArmourUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java (renamed from src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java) | 3 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java (renamed from src/Java/gtPlusPlus/core/util/player/PlayerUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java (renamed from src/Java/gtPlusPlus/core/util/recipe/RecipeUtils.java) | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/ShapelessUtils.java (renamed from src/Java/gtPlusPlus/core/util/recipe/shapeless/ShapelessUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/UtilsMining.java (renamed from src/Java/gtPlusPlus/core/util/player/UtilsMining.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java (renamed from src/Java/gtPlusPlus/core/util/PollutionUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/gregtech/material/MaterialBuilder.java (renamed from src/Java/gtPlusPlus/core/util/gregtech/material/MaterialBuilder.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java (renamed from src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/particles/BlockBreakParticles.java (renamed from src/Java/gtPlusPlus/core/util/particles/BlockBreakParticles.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/minecraft/particles/EntityParticleFXMysterious.java (renamed from src/Java/gtPlusPlus/core/util/particles/EntityParticleFXMysterious.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java | 4 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java | 74 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/sys/GeoUtils.java (renamed from src/Java/gtPlusPlus/core/util/geo/GeoUtils.java) | 3 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/sys/KeyboardUtils.java (renamed from src/Java/gtPlusPlus/core/util/input/KeyboardUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/sys/Log.java (renamed from src/Java/gtPlusPlus/core/util/Log.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java (renamed from src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/sys/SystemUtils.java (renamed from src/Java/gtPlusPlus/core/util/SystemUtils.java) | 2 | ||||
-rw-r--r-- | src/Java/gtPlusPlus/core/util/wrapper/var.java | 67 |
40 files changed, 156 insertions, 496 deletions
diff --git a/src/Java/gtPlusPlus/core/util/BaseHandler.java b/src/Java/gtPlusPlus/core/util/BaseHandler.java deleted file mode 100644 index 9457dc363f..0000000000 --- a/src/Java/gtPlusPlus/core/util/BaseHandler.java +++ /dev/null @@ -1,11 +0,0 @@ -package gtPlusPlus.core.util; - -public abstract class BaseHandler { - - public abstract void preInit(); - - public abstract void init(); - - public abstract void postInit(); - -} diff --git a/src/Java/gtPlusPlus/core/util/ClassUtils.java b/src/Java/gtPlusPlus/core/util/ClassUtils.java deleted file mode 100644 index 8f55fca299..0000000000 --- a/src/Java/gtPlusPlus/core/util/ClassUtils.java +++ /dev/null @@ -1,76 +0,0 @@ -package gtPlusPlus.core.util; - -import java.lang.reflect.*; - -public class ClassUtils { - - /* - * @ if (isPresent("com.optionaldependency.DependencyClass")) { // This - * block will never execute when the dependency is not present // There is - * therefore no more risk of code throwing NoClassDefFoundException. - * executeCodeLinkingToDependency(); } - */ - public static boolean isPresent(final String className) { - try { - Class.forName(className); - return true; - } catch (final Throwable ex) { - // Class or one of its dependencies is not present... - return false; - } - } - - @SuppressWarnings("rawtypes") - public static Method getMethodViaReflection(final Class<?> lookupClass, final String methodName, - final boolean invoke) throws Exception { - final Class<? extends Class> lookup = lookupClass.getClass(); - final Method m = lookup.getDeclaredMethod(methodName); - m.setAccessible(true);// Abracadabra - if (invoke) { - m.invoke(lookup);// now its OK - } - return m; - } - - public static Class<?> getNonPublicClass(final String className) { - Class<?> c = null; - try { - c = Class.forName(className); - } catch (final ClassNotFoundException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - // full package name --------^^^^^^^^^^ - // or simpler without Class.forName: - // Class<package1.A> c = package1.A.class; - - if (null != c) { - // In our case we need to use - Constructor<?> constructor = null; - try { - constructor = c.getDeclaredConstructor(); - } catch (NoSuchMethodException | SecurityException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - // note: getConstructor() can return only public constructors - // so we needed to search for any Declared constructor - - // now we need to make this constructor accessible - if (null != constructor) { - constructor.setAccessible(true);// ABRACADABRA! - - try { - final Object o = constructor.newInstance(); - return (Class<?>) o; - } catch (InstantiationException | IllegalAccessException | IllegalArgumentException - | InvocationTargetException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } - return null; - } - -} diff --git a/src/Java/gtPlusPlus/core/util/Quality.java b/src/Java/gtPlusPlus/core/util/Quality.java deleted file mode 100644 index 3e13409a10..0000000000 --- a/src/Java/gtPlusPlus/core/util/Quality.java +++ /dev/null @@ -1,61 +0,0 @@ -package gtPlusPlus.core.util; - -import gtPlusPlus.core.util.math.MathUtils; -import net.minecraft.util.EnumChatFormatting; - -public enum Quality { - - // Magic Blue - // Rare Yellow - // Set Green - // Unique Gold/Purple - // Trade-off Brown - - POOR("Poor", EnumChatFormatting.GRAY), COMMON("Common", EnumChatFormatting.WHITE), UNCOMMON("Uncommon", - EnumChatFormatting.DARK_GREEN), MAGIC("Magic", EnumChatFormatting.BLUE), RARE("Rare", - EnumChatFormatting.YELLOW), UNIQUE("Unique", EnumChatFormatting.GOLD), ARTIFACT("Artifact", - EnumChatFormatting.AQUA), SET("Set Piece", EnumChatFormatting.GREEN), TRADEOFF("Trade-off", - EnumChatFormatting.DARK_RED), EPIC("Epic", EnumChatFormatting.LIGHT_PURPLE); - - private String LOOT; - private EnumChatFormatting COLOUR; - - private Quality(final String lootTier, final EnumChatFormatting tooltipColour) { - this.LOOT = lootTier; - this.COLOUR = tooltipColour; - } - - public String getQuality() { - return this.LOOT; - } - - protected EnumChatFormatting getColour() { - return this.COLOUR; - } - - public String formatted() { - return this.COLOUR + this.LOOT; - } - - public static Quality getRandomQuality() { - final int lootChance = MathUtils.randInt(0, 100); - if (lootChance <= 10) { - return Quality.POOR; - } else if (lootChance <= 45) { - return Quality.COMMON; - } else if (lootChance <= 65) { - return Quality.UNCOMMON; - } else if (lootChance <= 82) { - return Quality.MAGIC; - } else if (lootChance <= 92) { - return Quality.EPIC; - } else if (lootChance <= 97) { - return Quality.RARE; - } else if (lootChance <= 99) { - return Quality.ARTIFACT; - } else { - return null; - } - } - -} diff --git a/src/Java/gtPlusPlus/core/util/Utils.java b/src/Java/gtPlusPlus/core/util/Utils.java index e15f8ba202..bca7f53b0c 100644 --- a/src/Java/gtPlusPlus/core/util/Utils.java +++ b/src/Java/gtPlusPlus/core/util/Utils.java @@ -38,11 +38,12 @@ import gtPlusPlus.api.objects.data.Pair; import gtPlusPlus.core.item.ModItems; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.material.Material; -import gtPlusPlus.core.util.fluid.FluidUtils; -import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.math.MathUtils; -import gtPlusPlus.core.util.nbt.NBTUtils; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; +import gtPlusPlus.core.util.minecraft.NBTUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; +import gtPlusPlus.core.util.sys.SystemUtils; import ic2.core.Ic2Items; import ic2.core.init.InternalName; import ic2.core.item.resources.ItemCell; diff --git a/src/Java/gtPlusPlus/core/util/UtilsChatFormatting.java b/src/Java/gtPlusPlus/core/util/UtilsChatFormatting.java deleted file mode 100644 index a7945311d6..0000000000 --- a/src/Java/gtPlusPlus/core/util/UtilsChatFormatting.java +++ /dev/null @@ -1,129 +0,0 @@ -package gtPlusPlus.core.util; - -import java.util.*; -import java.util.regex.Pattern; - -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public enum UtilsChatFormatting { - BLACK('0'), DARK_BLUE('1'), DARK_GREEN('2'), DARK_AQUA('3'), DARK_RED('4'), DARK_PURPLE('5'), GOLD('6'), GRAY( - '7'), DARK_GRAY('8'), BLUE('9'), GREEN('a'), AQUA('b'), RED('c'), LIGHT_PURPLE('d'), YELLOW('e'), WHITE( - 'f'), OBFUSCATED('k', true), BOLD('l', - true), STRIKETHROUGH('m', true), UNDERLINE('n', true), ITALIC('o', true), RESET('r'); - /** - * Maps a formatting code (e.g., 'f') to its corresponding enum value (e.g., - * WHITE). - */ - private static final Map<Character, UtilsChatFormatting> formattingCodeMapping = new HashMap<>(); - /** - * Maps a name (e.g., 'underline') to its corresponding enum value (e.g., - * UNDERLINE). - */ - private static final Map<String, UtilsChatFormatting> nameMapping = new HashMap<>(); - /** - * Matches formatting codes that indicate that the client should treat the - * following text as bold, recolored, obfuscated, etc. - */ - private static final Pattern formattingCodePattern = Pattern - .compile("(?i)" + String.valueOf('\u00a7') + "[0-9A-FK-OR]"); - /** The formatting code that produces this format. */ - private final char formattingCode; - private final boolean fancyStyling; - /** - * The control string (section sign + formatting code) that can be inserted - * into client-side text to display subsequent text in this format. - */ - private final String controlString; - - private UtilsChatFormatting(final char p_i1336_3_) { - this(p_i1336_3_, false); - } - - private UtilsChatFormatting(final char p_i1337_3_, final boolean p_i1337_4_) { - this.formattingCode = p_i1337_3_; - this.fancyStyling = p_i1337_4_; - this.controlString = "\u00a7" + p_i1337_3_; - } - - /** - * Gets the formatting code that produces this format. - */ - public char getFormattingCode() { - return this.formattingCode; - } - - /** - * False if this is just changing the color or resetting; true otherwise. - */ - public boolean isFancyStyling() { - return this.fancyStyling; - } - - /** - * Checks if typo is a color. - */ - public boolean isColor() { - return !this.fancyStyling && (this != RESET); - } - - /** - * Gets the friendly name of this value. - */ - public String getFriendlyName() { - return this.name().toLowerCase(); - } - - @Override - public String toString() { - return this.controlString; - } - - /** - * Returns a copy of the given string, with formatting codes stripped away. - */ - @SideOnly(Side.CLIENT) - public static String getTextWithoutFormattingCodes(final String p_110646_0_) { - return p_110646_0_ == null ? null : formattingCodePattern.matcher(p_110646_0_).replaceAll(""); - } - - /** - * Gets a value by its friendly name; null if the given name does not map to - * a defined value. - */ - public static UtilsChatFormatting getValueByName(final String p_96300_0_) { - return p_96300_0_ == null ? null : (UtilsChatFormatting) nameMapping.get(p_96300_0_.toLowerCase()); - } - - /** - * Gets all the valid values. Args: @param par0: Whether or not to include - * color values. @param par1: Whether or not to include fancy-styling values - * (anything that isn't a color value or the "reset" value). - */ - public static Collection<String> getValidValues(final boolean p_96296_0_, final boolean p_96296_1_) { - final ArrayList<String> arraylist = new ArrayList<>(); - final UtilsChatFormatting[] aenumchatformatting = values(); - final int i = aenumchatformatting.length; - - for (int j = 0; j < i; ++j) { - final UtilsChatFormatting enumchatformatting = aenumchatformatting[j]; - - if ((!enumchatformatting.isColor() || p_96296_0_) && (!enumchatformatting.isFancyStyling() || p_96296_1_)) { - arraylist.add(enumchatformatting.getFriendlyName()); - } - } - - return arraylist; - } - - static { - final UtilsChatFormatting[] var0 = values(); - final int var1 = var0.length; - - for (int var2 = 0; var2 < var1; ++var2) { - final UtilsChatFormatting var3 = var0[var2]; - formattingCodeMapping.put(Character.valueOf(var3.getFormattingCode()), var3); - nameMapping.put(var3.getFriendlyName(), var3); - } - } -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/util/UtilsRarity.java b/src/Java/gtPlusPlus/core/util/UtilsRarity.java deleted file mode 100644 index 54f4ba8c07..0000000000 --- a/src/Java/gtPlusPlus/core/util/UtilsRarity.java +++ /dev/null @@ -1,18 +0,0 @@ -package gtPlusPlus.core.util; - -import net.minecraft.util.EnumChatFormatting; - -public enum UtilsRarity { - T1_poor(EnumChatFormatting.GRAY, "Poor"), T2_normal(EnumChatFormatting.WHITE, "Common"), T3_uncommon( - EnumChatFormatting.GREEN, - "Uncommon"), T4_magic(EnumChatFormatting.BLUE, "Magic"), T5_rare(EnumChatFormatting.LIGHT_PURPLE, - "Rare"), T6_epic(EnumChatFormatting.YELLOW, "Epic"), T8_unique(EnumChatFormatting.GOLD, "Unique"); - - public final EnumChatFormatting rarityColor; - public final String rarityName; - - private UtilsRarity(final EnumChatFormatting rarity, final String name) { - this.rarityColor = rarity; - this.rarityName = name; - } -}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/util/UtilsText.java b/src/Java/gtPlusPlus/core/util/UtilsText.java index 0db7dd35a2..9896f2be0c 100644 --- a/src/Java/gtPlusPlus/core/util/UtilsText.java +++ b/src/Java/gtPlusPlus/core/util/UtilsText.java @@ -12,7 +12,7 @@ public enum UtilsText { } public String colour() { - return "�" + this.colourValue; + return "§" + this.colourValue; } } diff --git a/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java index fbab888cbf..63ffe63314 100644 --- a/src/Java/gtPlusPlus/core/util/array/ArrayUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/ArrayUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.array; +package gtPlusPlus.core.util.data; import net.minecraft.item.ItemStack; diff --git a/src/Java/gtPlusPlus/core/util/data/EnumUtils.java b/src/Java/gtPlusPlus/core/util/data/EnumUtils.java new file mode 100644 index 0000000000..22ca73be0b --- /dev/null +++ b/src/Java/gtPlusPlus/core/util/data/EnumUtils.java @@ -0,0 +1,41 @@ +package gtPlusPlus.core.util.data; + +import com.google.common.base.Enums; +import com.google.common.base.Optional; + +public class EnumUtils { + + /** + * Returns the value of an Enum if it exists. + * If value is not found, case-insensitive search will occur. + * If value still not found, an IllegalArgumentException is thrown. + **/ + public static <T extends Enum<T>> T getValue(Class<T> enumeration, String name) { + Optional<T> j = Enums.getIfPresent(enumeration, name); + T VALUE = j.get(); + if (j.get() == null) { + VALUE = valueOfIgnoreCase(enumeration, name); + } + return VALUE; + } + + /** + * Finds the value of the given enumeration by name, case-insensitive. + * Throws an IllegalArgumentException if no match is found. + **/ + private static <T extends Enum<T>> T valueOfIgnoreCase(Class<T> enumeration, String name) { + + for (T enumValue : enumeration.getEnumConstants()) { + if (enumValue.name().equalsIgnoreCase(name)) { + return enumValue; + } + } + + throw new IllegalArgumentException(String.format( + "There is no value with name '%s' in Enum %s", + name, enumeration.getName() + )); + } + + +} diff --git a/src/Java/gtPlusPlus/core/util/locale/LocaleUtils.java b/src/Java/gtPlusPlus/core/util/data/LocaleUtils.java index aea38d341e..957f7923f8 100644 --- a/src/Java/gtPlusPlus/core/util/locale/LocaleUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/LocaleUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.locale; +package gtPlusPlus.core.util.data; import java.io.BufferedWriter; import java.io.File; @@ -9,7 +9,7 @@ import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.ModContainer; import cpw.mods.fml.common.registry.GameData; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; import net.minecraft.block.Block; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; diff --git a/src/Java/gtPlusPlus/core/util/LoggingUtils.java b/src/Java/gtPlusPlus/core/util/data/LoggingUtils.java index 6aae8e52ec..8415ab32fe 100644 --- a/src/Java/gtPlusPlus/core/util/LoggingUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/LoggingUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util; +package gtPlusPlus.core.util.data; import java.io.*; import java.util.Date; diff --git a/src/Java/gtPlusPlus/core/util/StringUtils.java b/src/Java/gtPlusPlus/core/util/data/StringUtils.java index a4679d36a1..77b1fc8413 100644 --- a/src/Java/gtPlusPlus/core/util/StringUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/StringUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util; +package gtPlusPlus.core.util.data; public class StringUtils { diff --git a/src/Java/gtPlusPlus/core/util/uuid/UUIDGenerator.java b/src/Java/gtPlusPlus/core/util/data/UUIDGenerator.java index bf0ac3d1f5..513468a9f6 100644 --- a/src/Java/gtPlusPlus/core/util/uuid/UUIDGenerator.java +++ b/src/Java/gtPlusPlus/core/util/data/UUIDGenerator.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.uuid; +package gtPlusPlus.core.util.data; import java.io.IOException; import java.net.InetAddress; diff --git a/src/Java/gtPlusPlus/core/util/uuid/UUIDUtils.java b/src/Java/gtPlusPlus/core/util/data/UUIDUtils.java index 13eaff5bc8..d6b32314b1 100644 --- a/src/Java/gtPlusPlus/core/util/uuid/UUIDUtils.java +++ b/src/Java/gtPlusPlus/core/util/data/UUIDUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.uuid; +package gtPlusPlus.core.util.data; import java.nio.ByteBuffer; import java.util.UUID; diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java b/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java deleted file mode 100644 index b09c9dd795..0000000000 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidGT6.java +++ /dev/null @@ -1,30 +0,0 @@ -package gtPlusPlus.core.util.fluid; - -import gregtech.api.GregTech_API; -import gtPlusPlus.core.lib.CORE; -import net.minecraftforge.fluids.Fluid; - -public class FluidGT6 extends Fluid implements Runnable -{ - private final short[] mRGBa; - public final String mTextureName; - - public FluidGT6(final String aName, final String aTextureName, final short[] aRGBa) { - super(aName); - this.mRGBa = aRGBa; - this.mTextureName = aTextureName; - if (GregTech_API.sGTBlockIconload != null) { - GregTech_API.sGTBlockIconload.add(this); - } - } - - @Override - public int getColor() { - return (Math.max(0, Math.min(255, this.mRGBa[0])) << 16) | (Math.max(0, Math.min(255, this.mRGBa[1])) << 8) | Math.max(0, Math.min(255, this.mRGBa[2])); - } - - @Override - public void run() { - this.setIcons(GregTech_API.sBlockIcons.registerIcon(CORE.MODID+ ":" + "fluids/fluid." + this.mTextureName)); - } -} diff --git a/src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/EnchantingUtils.java index 288ca2e2cc..2f273d5f7f 100644 --- a/src/Java/gtPlusPlus/core/util/enchanting/EnchantingUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/EnchantingUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.enchanting; +package gtPlusPlus.core.util.minecraft; import gtPlusPlus.api.objects.Logger; import net.minecraftforge.fluids.FluidRegistry; diff --git a/src/Java/gtPlusPlus/core/util/entity/EntityUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java index 27412d647f..b16089c0de 100644 --- a/src/Java/gtPlusPlus/core/util/entity/EntityUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/EntityUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.entity; +package gtPlusPlus.core.util.minecraft; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; diff --git a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java index 8a99edac5f..3e46b01fc7 100644 --- a/src/Java/gtPlusPlus/core/util/fluid/FluidUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/FluidUtils.java @@ -1,10 +1,11 @@ -package gtPlusPlus.core.util.fluid; +package gtPlusPlus.core.util.minecraft; import gregtech.api.enums.Dyes; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; 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; @@ -12,8 +13,6 @@ import gtPlusPlus.core.item.base.cell.BaseItemPlasmaCell; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.MaterialStack; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.enchanting.EnchantingUtils; -import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials; import net.minecraft.init.Items; import net.minecraft.item.Item; diff --git a/src/Java/gtPlusPlus/core/util/inventory/InventoryUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/InventoryUtils.java index 779f9b14c1..0d4394d773 100644 --- a/src/Java/gtPlusPlus/core/util/inventory/InventoryUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/InventoryUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.inventory; +package gtPlusPlus.core.util.minecraft; import java.util.Random; diff --git a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java index d5caad9dee..06176751eb 100644 --- a/src/Java/gtPlusPlus/core/util/item/ItemUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/ItemUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.item; +package gtPlusPlus.core.util.minecraft; import java.util.ArrayList; import java.util.List; @@ -24,9 +24,7 @@ import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.lib.LoadedMods; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.materials.MaterialUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; -import gtPlusPlus.core.util.wrapper.var; import gtPlusPlus.xmod.gregtech.loaders.RecipeGen_DustGeneration; import net.minecraft.block.Block; import net.minecraft.item.Item; @@ -225,9 +223,6 @@ public class ItemUtils { else if (item_Input instanceof ItemStack){ return (ItemStack) item_Input; } - if (item_Input instanceof var){ - return ((var) item_Input).getStack(stackSize); - } return null; } diff --git a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java index 5cd7532f0f..0af72661e9 100644 --- a/src/Java/gtPlusPlus/core/util/materials/MaterialUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/MaterialUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.materials; +package gtPlusPlus.core.util.minecraft; import java.util.List; import java.util.Map; @@ -12,8 +12,9 @@ import gregtech.api.enums.*; import gtPlusPlus.api.objects.Logger; import gtPlusPlus.core.material.Material; import gtPlusPlus.core.material.state.MaterialState; -import gtPlusPlus.core.util.StringUtils; import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.data.EnumUtils; +import gtPlusPlus.core.util.data.StringUtils; import net.minecraft.item.ItemStack; import net.minecraftforge.oredict.OreDictionary; @@ -172,60 +173,11 @@ public class MaterialUtils { } } - - /* - * That's shown, many times, in the EnumHelper code, all the add functions just wrap the addEnum function. - You need the target enum class, and 2 arrays, 1 holding the types for the constructor arguments, - and the other holding the constructor argument values (the things being passed to the constructor) - - The 'decompiled' Boolean should be set to true if the class you're adding to has been decompiled/recompiled again. - (it adds a 2nd enum arguments that need to be accounted for, but isn't actually useful to you) - - * - *new Class[{int.class, TextureSet.class, float.class, int.class, - int.class, int.class, int.class, int.class, int.class, int.class, - String.class, int.class, int.class, int.class, int.class, boolean.class, - boolean.class, int.class, int.class, int.class, Dyes.class, int.class, - List.class , List.class}], - */ - - - - /*public static Materials GenerateGtMaterialForSingleUse(MaterialInfo s){ - - Materials yourName = EnumHelper.addEnum( - - Materials.class, s.name(), - - - - new Object[0] - - ); - try - { - - - - Class<? extends ItemCell> clz = item.getClass(); - Method methode = clz.getDeclaredMethod("addCell", int.class, InternalName.class, Block[].class); - methode.setAccessible(true); - ItemStack temp = (ItemStack) methode.invoke(item, cellID++, yourName, new Block[0]); - - - - - - - return Materials.Abyssal; - } - catch(Exception e){ - e.printStackTrace(); - } - return null; - }*/ - - + static Class<Materials> materialsEnum = Materials.class; + public static Materials getMaterialByName(String materialName) { + return EnumUtils.getValue(materialsEnum, materialName); + } + @SuppressWarnings("deprecation") public static String getMaterialName(Materials mat){ String mName; diff --git a/src/Java/gtPlusPlus/core/util/nbt/ModularArmourUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ModularArmourUtils.java index c9ac557fee..2ce6bafae0 100644 --- a/src/Java/gtPlusPlus/core/util/nbt/ModularArmourUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/ModularArmourUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.nbt; +package gtPlusPlus.core.util.minecraft; import baubles.api.BaubleType; import gregtech.api.util.GT_Utility; diff --git a/src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java index 58d47eb0fa..b79fadf3a1 100644 --- a/src/Java/gtPlusPlus/core/util/nbt/NBTUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/NBTUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.nbt; +package gtPlusPlus.core.util.minecraft; import static gtPlusPlus.core.item.ModItems.ZZZ_Empty; @@ -8,7 +8,6 @@ import gregtech.api.items.GT_MetaGenerated_Tool; import gregtech.api.util.GT_ModHandler; import gregtech.api.util.GT_Utility; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.util.item.ItemUtils; import gtPlusPlus.core.util.reflect.ReflectionUtils; import net.minecraft.entity.Entity; import net.minecraft.item.ItemStack; diff --git a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java index 32488f074d..dd0acba4cc 100644 --- a/src/Java/gtPlusPlus/core/util/player/PlayerUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/PlayerUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.player; +package gtPlusPlus.core.util.minecraft; import java.util.*; diff --git a/src/Java/gtPlusPlus/core/util/recipe/RecipeUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java index cdb8255231..f10279dbd7 100644 --- a/src/Java/gtPlusPlus/core/util/recipe/RecipeUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/RecipeUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.recipe; +package gtPlusPlus.core.util.minecraft; import java.util.*; @@ -9,8 +9,6 @@ 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.util.item.ItemUtils; -import gtPlusPlus.core.util.recipe.shapeless.ShapelessUtils; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.crafting.CraftingManager; diff --git a/src/Java/gtPlusPlus/core/util/recipe/shapeless/ShapelessUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/ShapelessUtils.java index 29ca257134..702fd87db6 100644 --- a/src/Java/gtPlusPlus/core/util/recipe/shapeless/ShapelessUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/ShapelessUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.recipe.shapeless; +package gtPlusPlus.core.util.minecraft; import java.util.ArrayList; diff --git a/src/Java/gtPlusPlus/core/util/player/UtilsMining.java b/src/Java/gtPlusPlus/core/util/minecraft/UtilsMining.java index 4f0402a18e..eb6044fcd7 100644 --- a/src/Java/gtPlusPlus/core/util/player/UtilsMining.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/UtilsMining.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.player; +package gtPlusPlus.core.util.minecraft; import gtPlusPlus.api.objects.Logger; import net.minecraft.block.Block; diff --git a/src/Java/gtPlusPlus/core/util/PollutionUtils.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java index d68a25a844..d7258cfd60 100644 --- a/src/Java/gtPlusPlus/core/util/PollutionUtils.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util; +package gtPlusPlus.core.util.minecraft.gregtech; import java.lang.reflect.*; diff --git a/src/Java/gtPlusPlus/core/util/gregtech/material/MaterialBuilder.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/material/MaterialBuilder.java index 64c2751cde..61a0f97129 100644 --- a/src/Java/gtPlusPlus/core/util/gregtech/material/MaterialBuilder.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/material/MaterialBuilder.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.gregtech.material; +package gtPlusPlus.core.util.minecraft.gregtech.material; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java index 9bc5ee804d..854f813d2b 100644 --- a/src/Java/gtPlusPlus/core/util/gregtech/recipehandlers/GregtechRecipe.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/gregtech/recipehandlers/GregtechRecipe.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.gregtech.recipehandlers; +package gtPlusPlus.core.util.minecraft.gregtech.recipehandlers; import java.lang.reflect.Method; diff --git a/src/Java/gtPlusPlus/core/util/particles/BlockBreakParticles.java b/src/Java/gtPlusPlus/core/util/minecraft/particles/BlockBreakParticles.java index a1a46b39f4..c5a0949bb5 100644 --- a/src/Java/gtPlusPlus/core/util/particles/BlockBreakParticles.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/particles/BlockBreakParticles.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.particles; +package gtPlusPlus.core.util.minecraft.particles; import gtPlusPlus.xmod.forestry.HANDLER_FR; import net.minecraft.block.Block; diff --git a/src/Java/gtPlusPlus/core/util/particles/EntityParticleFXMysterious.java b/src/Java/gtPlusPlus/core/util/minecraft/particles/EntityParticleFXMysterious.java index 97103b636b..d996cf705a 100644 --- a/src/Java/gtPlusPlus/core/util/particles/EntityParticleFXMysterious.java +++ b/src/Java/gtPlusPlus/core/util/minecraft/particles/EntityParticleFXMysterious.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.particles; +package gtPlusPlus.core.util.minecraft.particles; import net.minecraft.client.particle.EntityAuraFX; import net.minecraft.world.World; diff --git a/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java b/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java index 3542ea6143..aee1c4dfec 100644 --- a/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java +++ b/src/Java/gtPlusPlus/core/util/reflect/AddGregtechRecipe.java @@ -8,8 +8,8 @@ import gregtech.api.enums.GT_Values; import gregtech.api.interfaces.internal.IGT_RecipeAdder; import gtPlusPlus.core.lib.CORE; import gtPlusPlus.core.util.Utils; -import gtPlusPlus.core.util.fluid.FluidUtils; -import gtPlusPlus.core.util.item.ItemUtils; +import gtPlusPlus.core.util.minecraft.FluidUtils; +import gtPlusPlus.core.util.minecraft.ItemUtils; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; diff --git a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java index a0968fd5c1..ac7b8492e2 100644 --- a/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java +++ b/src/Java/gtPlusPlus/core/util/reflect/ReflectionUtils.java @@ -14,7 +14,7 @@ import net.minecraft.client.Minecraft; public class ReflectionUtils { - public static Field getField(final Class clazz, final String fieldName) throws NoSuchFieldException { + public static Field getField(final Class<?> clazz, final String fieldName) throws NoSuchFieldException { try { Field k = clazz.getDeclaredField(fieldName); makeAccessible(k); @@ -172,10 +172,10 @@ public class ReflectionUtils { public static boolean invoke(Object objectInstance, String methodName, Class[] parameters, Object[] values){ if (objectInstance == null || methodName == null || parameters == null || values == null){ - Logger.REFLECTION("Null value when trying to Dynamically invoke "+methodName+" on an object of type: "+objectInstance.getClass().getName()); + //Logger.REFLECTION("Null value when trying to Dynamically invoke "+methodName+" on an object of type: "+objectInstance.getClass().getName()); return false; } - Class mLocalClass = (objectInstance instanceof Class ? (Class) objectInstance : objectInstance.getClass()); + Class<?> mLocalClass = (objectInstance instanceof Class ? (Class<?>) objectInstance : objectInstance.getClass()); Logger.REFLECTION("Trying to invoke "+methodName+" on an instance of "+mLocalClass.getCanonicalName()+"."); try { Method mInvokingMethod = mLocalClass.getDeclaredMethod(methodName, parameters); @@ -201,6 +201,74 @@ public class ReflectionUtils { return false; } + /* + * @ if (isPresent("com.optionaldependency.DependencyClass")) { // This + * block will never execute when the dependency is not present // There is + * therefore no more risk of code throwing NoClassDefFoundException. + * executeCodeLinkingToDependency(); } + */ + public static boolean isPresent(final String className) { + try { + Class.forName(className); + return true; + } catch (final Throwable ex) { + // Class or one of its dependencies is not present... + return false; + } + } + + @SuppressWarnings("rawtypes") + public static Method getMethodViaReflection(final Class<?> lookupClass, final String methodName, + final boolean invoke) throws Exception { + final Class<? extends Class> lookup = lookupClass.getClass(); + final Method m = lookup.getDeclaredMethod(methodName); + m.setAccessible(true);// Abracadabra + if (invoke) { + m.invoke(lookup);// now its OK + } + return m; + } + + public static Class<?> getNonPublicClass(final String className) { + Class<?> c = null; + try { + c = Class.forName(className); + } catch (final ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // full package name --------^^^^^^^^^^ + // or simpler without Class.forName: + // Class<package1.A> c = package1.A.class; + + if (null != c) { + // In our case we need to use + Constructor<?> constructor = null; + try { + constructor = c.getDeclaredConstructor(); + } catch (NoSuchMethodException | SecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + // note: getConstructor() can return only public constructors + // so we needed to search for any Declared constructor + + // now we need to make this constructor accessible + if (null != constructor) { + constructor.setAccessible(true);// ABRACADABRA! + + try { + final Object o = constructor.newInstance(); + return (Class<?>) o; + } catch (InstantiationException | IllegalAccessException | IllegalArgumentException + | InvocationTargetException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + } + return null; + } } diff --git a/src/Java/gtPlusPlus/core/util/geo/GeoUtils.java b/src/Java/gtPlusPlus/core/util/sys/GeoUtils.java index 84528e0cd5..ae3e6242ed 100644 --- a/src/Java/gtPlusPlus/core/util/geo/GeoUtils.java +++ b/src/Java/gtPlusPlus/core/util/sys/GeoUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.geo; +package gtPlusPlus.core.util.sys; import java.io.*; import java.net.*; @@ -6,7 +6,6 @@ import java.net.*; import org.apache.http.client.utils.URIBuilder; import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.util.networking.NetworkUtils; public class GeoUtils { diff --git a/src/Java/gtPlusPlus/core/util/input/KeyboardUtils.java b/src/Java/gtPlusPlus/core/util/sys/KeyboardUtils.java index 3b5dc3b5d8..ba834e345e 100644 --- a/src/Java/gtPlusPlus/core/util/input/KeyboardUtils.java +++ b/src/Java/gtPlusPlus/core/util/sys/KeyboardUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.input; +package gtPlusPlus.core.util.sys; import org.lwjgl.input.Keyboard; diff --git a/src/Java/gtPlusPlus/core/util/Log.java b/src/Java/gtPlusPlus/core/util/sys/Log.java index fe06fcb271..fcd4f34c1b 100644 --- a/src/Java/gtPlusPlus/core/util/Log.java +++ b/src/Java/gtPlusPlus/core/util/sys/Log.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util; +package gtPlusPlus.core.util.sys; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java b/src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java index ce2888ef29..b6324f18f5 100644 --- a/src/Java/gtPlusPlus/core/util/networking/NetworkUtils.java +++ b/src/Java/gtPlusPlus/core/util/sys/NetworkUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util.networking; +package gtPlusPlus.core.util.sys; import java.io.*; import java.net.*; diff --git a/src/Java/gtPlusPlus/core/util/SystemUtils.java b/src/Java/gtPlusPlus/core/util/sys/SystemUtils.java index 45fc25caf6..efcfaf8d04 100644 --- a/src/Java/gtPlusPlus/core/util/SystemUtils.java +++ b/src/Java/gtPlusPlus/core/util/sys/SystemUtils.java @@ -1,4 +1,4 @@ -package gtPlusPlus.core.util; +package gtPlusPlus.core.util.sys; public class SystemUtils { diff --git a/src/Java/gtPlusPlus/core/util/wrapper/var.java b/src/Java/gtPlusPlus/core/util/wrapper/var.java deleted file mode 100644 index 06de3cde73..0000000000 --- a/src/Java/gtPlusPlus/core/util/wrapper/var.java +++ /dev/null @@ -1,67 +0,0 @@ -package gtPlusPlus.core.util.wrapper; - -import gtPlusPlus.api.objects.Logger; -import gtPlusPlus.core.lib.LoadedMods; -import gtPlusPlus.core.util.item.ItemUtils; -import net.minecraft.item.ItemStack; - -public class var{ - - private ItemStack temp = null; - private final String sanitizedName; - private final String fqrn; - - public var(String o){ - final String t = this.sanitize('<', o); - final String t2 = this.sanitize('>', t); - this.sanitizedName = t2; - o = this.sanitize('"', t2); - this.fqrn = o; - } - - private String sanitize(final char token, String input){ - for (int i=0;i<input.length();i++) { - if (input.charAt(i) == token) { - input = input.replace(input.charAt(i), ' '); - Logger.WARNING("MATCH FOUND"); - } - input = input.replaceAll(" ", ""); - } - final String output = input; - return output; - } - - public String getFQRN(){ - final String s = this.fqrn; - return s; - } - - public String getsanitizedName(){ - final String s = this.sanitizedName; - return s; - } - - private ItemStack getOreDictStack(final int stackSize){ - final ItemStack v = ItemUtils.getItemStack(this.sanitizedName, stackSize); - return v; - } - - public ItemStack getStack(final int stackSize){ - final String oreDict = "ore:"; - if (this.fqrn.toLowerCase().contains(oreDict.toLowerCase())){ - final ItemStack v = this.getOreDictStack(stackSize); - return v; - } - final String[] fqrnSplit = this.fqrn.split(":"); - String meta = "0"; - try { - if(fqrnSplit[2] != null){meta = fqrnSplit[2];} - this.temp = ItemUtils.getItemStackWithMeta(LoadedMods.MiscUtils, this.fqrn, fqrnSplit[1], Integer.parseInt(meta), stackSize); - } - catch (final ArrayIndexOutOfBoundsException a){ - this.temp = ItemUtils.getItemStackWithMeta(LoadedMods.MiscUtils, this.fqrn, fqrnSplit[1], Integer.parseInt(meta), stackSize); - } - return this.temp; - } - -}
\ No newline at end of file |