aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/core/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gtPlusPlus/core/util')
-rw-r--r--src/main/java/gtPlusPlus/core/util/Utils.java541
-rw-r--r--src/main/java/gtPlusPlus/core/util/data/AES.java37
-rw-r--r--src/main/java/gtPlusPlus/core/util/data/ArrayUtils.java60
-rw-r--r--src/main/java/gtPlusPlus/core/util/data/FileUtils.java8
-rw-r--r--src/main/java/gtPlusPlus/core/util/data/LocaleUtils.java18
-rw-r--r--src/main/java/gtPlusPlus/core/util/data/StringUtils.java79
-rw-r--r--src/main/java/gtPlusPlus/core/util/math/MathUtils.java250
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/EnchantingUtils.java63
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/EntityUtils.java160
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/FluidUtils.java91
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/InventoryUtils.java40
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/ItemUtils.java286
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/LangUtils.java28
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/MaterialUtils.java142
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/MiningUtils.java92
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/ModularArmourUtils.java136
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/NBTUtils.java396
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/PlayerUtils.java13
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/RecipeUtils.java373
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/ShapelessUtils.java1
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/gregtech/PollutionUtils.java63
-rw-r--r--src/main/java/gtPlusPlus/core/util/minecraft/particles/EntityParticleFXMysterious.java15
-rw-r--r--src/main/java/gtPlusPlus/core/util/player/PlayerCache.java43
-rw-r--r--src/main/java/gtPlusPlus/core/util/reflect/ReflectionUtils.java16
24 files changed, 308 insertions, 2643 deletions
diff --git a/src/main/java/gtPlusPlus/core/util/Utils.java b/src/main/java/gtPlusPlus/core/util/Utils.java
index 04c70beae6..df37479533 100644
--- a/src/main/java/gtPlusPlus/core/util/Utils.java
+++ b/src/main/java/gtPlusPlus/core/util/Utils.java
@@ -1,21 +1,15 @@
package gtPlusPlus.core.util;
import java.awt.Color;
-import java.awt.Graphics;
import java.io.File;
import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Arrays;
+import java.util.Collections;
import java.util.HashMap;
-import java.util.List;
+import java.util.HashSet;
import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
import net.minecraft.block.Block;
import net.minecraft.client.Minecraft;
-import net.minecraft.entity.Entity;
-import net.minecraft.item.Item.ToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
@@ -23,31 +17,24 @@ import net.minecraft.nbt.NBTTagString;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.IChatComponent;
-import net.minecraft.world.World;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.common.util.EnumHelper;
import net.minecraftforge.fluids.FluidContainerRegistry;
import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
-import net.minecraftforge.oredict.OreDictionary;
import org.apache.commons.lang3.EnumUtils;
import cpw.mods.fml.common.FMLCommonHandler;
import gregtech.api.GregTech_API;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.Materials;
import gregtech.api.enums.TC_Aspects;
import gregtech.api.enums.TC_Aspects.TC_AspectStack;
import gregtech.api.util.GT_LanguageManager;
import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
-import gtPlusPlus.GTplusplus;
import gtPlusPlus.api.objects.Logger;
-import gtPlusPlus.api.objects.data.AutoMap;
import gtPlusPlus.core.item.ModItems;
import gtPlusPlus.core.lib.CORE;
-import gtPlusPlus.core.util.math.MathUtils;
import gtPlusPlus.core.util.minecraft.FluidUtils;
import gtPlusPlus.core.util.minecraft.ItemUtils;
import gtPlusPlus.core.util.minecraft.NBTUtils;
@@ -57,24 +44,14 @@ import ic2.core.item.resources.ItemCell;
public class Utils {
- public static final int WILDCARD_VALUE = Short.MAX_VALUE;
-
- public static final boolean isServer() {
+ public static boolean isServer() {
return FMLCommonHandler.instance().getEffectiveSide().isServer();
}
- public static final boolean isClient() {
+ public static boolean isClient() {
return FMLCommonHandler.instance().getEffectiveSide().isClient();
}
- static class ShortTimerTask extends TimerTask {
-
- @Override
- public void run() {
- Logger.WARNING("Timer expired.");
- }
- }
-
public static TC_AspectStack getTcAspectStack(final TC_Aspects aspect, final long size) {
return getTcAspectStack(aspect.name(), (int) size);
}
@@ -91,7 +68,7 @@ public class Utils {
TC_AspectStack returnValue = null;
- if (aspect.toUpperCase().equals("COGNITIO")) {
+ if (aspect.equalsIgnoreCase("COGNITIO")) {
// Adds in Compat for older GT Versions which Misspell aspects.
try {
if (EnumUtils.isValidEnum(TC_Aspects.class, "COGNITIO")) {
@@ -106,7 +83,7 @@ public class Utils {
} catch (final NoSuchFieldError r) {
Logger.INFO("Invalid Thaumcraft Aspects - Report this issue to Alkalus");
}
- } else if (aspect.toUpperCase().equals("EXANIMUS")) {
+ } else if (aspect.equalsIgnoreCase("EXANIMUS")) {
// Adds in Compat for older GT Versions which Misspell aspects.
try {
if (EnumUtils.isValidEnum(TC_Aspects.class, "EXANIMUS")) {
@@ -122,7 +99,7 @@ public class Utils {
Logger.INFO("Invalid Thaumcraft Aspects - Report this issue to Alkalus");
}
- } else if (aspect.toUpperCase().equals("PRAECANTATIO")) {
+ } else if (aspect.equalsIgnoreCase("PRAECANTATIO")) {
// Adds in Compat for older GT Versions which Misspell aspects.
try {
if (EnumUtils.isValidEnum(TC_Aspects.class, "PRAECANTATIO")) {
@@ -145,35 +122,12 @@ public class Utils {
return returnValue;
}
- public static boolean containsMatch(final boolean strict, final ItemStack[] inputs, final ItemStack... targets) {
- for (final ItemStack input : inputs) {
- for (final ItemStack target : targets) {
- if (itemMatches(target, input, strict)) {
- return true;
- }
- }
- }
- return false;
- }
-
- public static boolean itemMatches(final ItemStack target, final ItemStack input, final boolean strict) {
- if ((input == null) || (target == null)) {
- return false;
- }
- return ((target.getItem() == input.getItem()) && (((target.getItemDamage() == WILDCARD_VALUE) && !strict)
- || (target.getItemDamage() == input.getItemDamage())));
- }
-
// Register an event to both busses.
public static void registerEvent(Object o) {
MinecraftForge.EVENT_BUS.register(o);
FMLCommonHandler.instance().bus().register(o);
}
- public static void paintBox(final Graphics g, final int MinA, final int MinB, final int MaxA, final int MaxB) {
- g.drawRect(MinA, MinB, MaxA, MaxB);
- }
-
// Send a message to all players on the server
public static void sendServerMessage(final String translationKey) {
sendServerMessage(new ChatComponentText(translationKey));
@@ -201,158 +155,13 @@ public class Utils {
return FluidRegistry.getFluidStack("ic2steam", (int) aAmount);
}
- /*
- * public static void recipeBuilderBlock(ItemStack slot_1, ItemStack slot_2, ItemStack slot_3, ItemStack slot_4,
- * ItemStack slot_5, ItemStack slot_6, ItemStack slot_7, ItemStack slot_8, ItemStack slot_9, Block resultBlock){
- * GameRegistry.addRecipe(new ItemStack(resultBlock), new Object[] {"ABC", "DEF", "GHI",
- * 'A',slot_1,'B',slot_2,'C',slot_3, 'D',slot_4,'E',slot_5,'F',slot_6, 'G',slot_7,'H',slot_8,'I',slot_9 }); }
- */
-
- public static String checkCorrectMiningToolForBlock(final Block currentBlock, final World currentWorld) {
- String correctTool = "";
- if (!currentWorld.isRemote) {
- try {
- correctTool = currentBlock.getHarvestTool(0);
- Logger.WARNING(correctTool);
-
- } catch (final NullPointerException e) {
-
- }
- }
-
- return correctTool;
- }
-
- /**
- *
- * @param colourStr e.g. "#FFFFFF"
- * @return String - formatted "rgb(0,0,0)"
- */
- public static String hex2RgbFormatted(final String hexString) {
- final Color c = new Color(
- Integer.valueOf(hexString.substring(1, 3), 16),
- Integer.valueOf(hexString.substring(3, 5), 16),
- Integer.valueOf(hexString.substring(5, 7), 16));
-
- final StringBuffer sb = new StringBuffer();
- sb.append("rgb(");
- sb.append(c.getRed());
- sb.append(",");
- sb.append(c.getGreen());
- sb.append(",");
- sb.append(c.getBlue());
- sb.append(")");
- return sb.toString();
- }
-
- /**
- *
- * @param colourStr e.g. "#FFFFFF"
- * @return
- */
- public static Color hex2Rgb(final String colorStr) {
- return new Color(
- Integer.valueOf(colorStr.substring(1, 3), 16),
- Integer.valueOf(colorStr.substring(3, 5), 16),
- Integer.valueOf(colorStr.substring(5, 7), 16));
- }
-
- /**
- *
- * @param colourInt e.g. 0XFFFFFF
- * @return Colour
- */
- public static Color hex2Rgb(final int colourInt) {
- return Color.decode(String.valueOf(colourInt));
- }
-
- /**
- *
- * @param colourInt e.g. 0XFFFFFF
- * @return short[]
- */
- public static short[] hex2RgbShort(final int colourInt) {
- final Color rgb = Color.decode(String.valueOf(colourInt));
- final short[] rgba = { (short) rgb.getRed(), (short) rgb.getGreen(), (short) rgb.getBlue(),
- (short) rgb.getAlpha() };
- return rgba;
- }
-
- public static Timer ShortTimer(final int seconds) {
- Timer timer;
- timer = new Timer();
- timer.schedule(new ShortTimerTask(), seconds * 1000);
- return timer;
- }
-
- public static String byteToHex(final byte b) {
- final int i = b & 0xFF;
- return Integer.toHexString(i);
- }
-
- public static Object[] convertListToArray(final List<Object> sourceList) {
- final Object[] targetArray = sourceList.toArray(new Object[sourceList.size()]);
- return targetArray;
- }
-
- public static List<Object> convertArrayToFixedSizeList(final Object[] sourceArray) {
- final List<Object> targetList = Arrays.asList(sourceArray);
- return targetList;
- }
-
- public static List<Object> convertArrayToList(final Object[] sourceArray) {
- final List<Object> targetList = new ArrayList<>(Arrays.asList(sourceArray));
- return targetList;
- }
-
- public static List<Object> convertArrayListToList(final ArrayList<Object> sourceArray) {
- final List<Object> targetList = new ArrayList<Object>(Arrays.asList(sourceArray));
- return targetList;
- }
-
- public static void spawnCustomParticle(final Entity entity) {
- GTplusplus.proxy.generateMysteriousParticles(entity);
- }
-
- public static void spawnFX(final World world, final int x, final int y, final int z, final String particleName,
- Object particleName2) {
- if (!world.isRemote) {
- if ((particleName2 == null) || particleName2.equals("")) {
- particleName2 = particleName;
- }
- final int l = MathUtils.randInt(0, 4);
- final double d0 = x + 0.5F;
- final double d1 = y + 0.7F;
- final double d2 = z + 0.5F;
- final double d3 = 0.2199999988079071D;
- final double d4 = 0.27000001072883606D;
-
- if (l == 1) {
- world.spawnParticle(particleName, d0 - d4, d1 + d3, d2, 0.0D, 0.0D, 0.0D);
- } else if (l == 2) {
- world.spawnParticle((String) particleName2, d0 + d4, d1 + d3, d2, 0.0D, 0.0D, 0.0D);
- } else if (l == 3) {
- world.spawnParticle(particleName, d0, d1 + d3, d2 - d4, 0.0D, 0.0D, 0.0D);
- } else if (l == 4) {
- world.spawnParticle((String) particleName2, d0, d1 + d3, d2 + d4, 0.0D, 0.0D, 0.0D);
- } else {
- world.spawnParticle(particleName, d0, d1, d2, 0.0D, 0.0D, 0.0D);
- if (particleName2 != null) {
- world.spawnParticle((String) particleName2, d0, d1, d2, 0.0D, 0.0D, 0.0D);
- }
- }
- }
- }
-
public static int rgbtoHexValue(final int r, final int g, final int b) {
if ((r > 255) || (g > 255) || (b > 255) || (r < 0) || (g < 0) || (b < 0)) {
return 0;
}
final Color c = new Color(r, g, b);
String temp = Integer.toHexString(c.getRGB() & 0xFFFFFF).toUpperCase();
- temp = Utils.appenedHexNotationToString(String.valueOf(temp));
- // Logger.WARNING("Made " + temp + " - Hopefully it's not a mess.");
- // Logger.WARNING("It will decode into " + Integer.decode(temp) + ".");
+ temp = Utils.appenedHexNotationToString(temp);
return Integer.decode(temp);
}
@@ -365,41 +174,7 @@ public class Utils {
sb.append('0');
}
sb.append(originalString);
- final String paddedString = sb.toString();
- return paddedString;
- }
-
- public static String padWithZerosRight(final int value, final int length) {
- String originalString = String.valueOf(value);
- final StringBuilder sb = new StringBuilder();
- while ((sb.length() + originalString.length()) < length) {
- sb.append('0');
- }
- // sb.append(originalString);
- if (sb.length() > 0) originalString = (originalString + sb.toString());
- final String paddedString = sb.toString();
- return originalString;
- }
-
- /*
- * Original Code by Chandana Napagoda - https://cnapagoda.blogspot.com.au/2011/03/java-hex-color-code-generator.
- * html
- */
- public static Map<Integer, String> hexColourGenerator(final int colorCount) {
- final int maxColorValue = 16777215;
- // this is decimal value of the "FFFFFF"
- final int devidedvalue = maxColorValue / colorCount;
- int countValue = 0;
- final HashMap<Integer, String> hexColorMap = new HashMap<>();
- for (int a = 0; (a < colorCount) && (maxColorValue >= countValue); a++) {
- if (a != 0) {
- countValue += devidedvalue;
- hexColorMap.put(a, Integer.toHexString(0x10000 | countValue).substring(1).toUpperCase());
- } else {
- hexColorMap.put(a, Integer.toHexString(0x10000 | countValue).substring(1).toUpperCase());
- }
- }
- return hexColorMap;
+ return sb.toString();
}
/*
@@ -425,17 +200,15 @@ public class Utils {
if (((String) hexAsStringOrInt).length() != 6) {
final String temp = padWithZerosLefts((String) hexAsStringOrInt, 6);
- result = temp;
}
result = hexChar + hexAsStringOrInt;
return result;
- } else if (hexAsStringOrInt.getClass() == Integer.class || hexAsStringOrInt.getClass() == int.class) {
+ } else if (hexAsStringOrInt.getClass() == Integer.class) {
String aa = String.valueOf(hexAsStringOrInt);
if (aa.length() != 6) {
- final String temp = padWithZerosLefts(aa, 6);
- result = temp;
+ result = padWithZerosLefts(aa, 6);
} else {
- result = hexChar + String.valueOf(hexAsStringOrInt);
+ result = hexChar + hexAsStringOrInt;
}
return result;
} else {
@@ -443,28 +216,6 @@ public class Utils {
}
}
- public static Integer appenedHexNotationToInteger(final int hexAsStringOrInt) {
- final String hexChar = "0x";
- String result;
- Logger.WARNING(String.valueOf(hexAsStringOrInt));
- result = hexChar + String.valueOf(hexAsStringOrInt);
- return Integer.getInteger(result);
- }
-
- public static boolean doesEntryExistAlreadyInOreDictionary(final String OreDictName) {
- if (OreDictionary.getOres(OreDictName).size() != 0) {
- return true;
- }
- return false;
- }
-
- public static boolean invertBoolean(final boolean booleans) {
- if (booleans == true) {
- return false;
- }
- return true;
- }
-
public static File getMcDir() {
if (Utils.isClient()) {
if (Minecraft.getMinecraft() != null) {
@@ -504,44 +255,46 @@ public class Utils {
return null;
}
- public static String sanitizeString(final String input, final char[] aDontRemove) {
+ public static String sanitizeString(final String input, final char[] dontRemove) {
+
+ // List of characters to remove
+ final HashSet<Character> toRemoveSet = new HashSet<>();
+ Collections.addAll(
+ toRemoveSet,
+ ' ',
+ '-',
+ '_',
+ '~',
+ '?',
+ '!',
+ '@',
+ '#',
+ '$',
+ '%',
+ '^',
+ '&',
+ '*',
+ '(',
+ ')',
+ '{',
+ '}',
+ '[',
+ ']');
+
+ // Remove characters from the toRemoveSet if they are in dontRemove
+ for (char e : dontRemove) {
+ toRemoveSet.remove(e);
+ }
- String output;
- AutoMap<String> aToRemoveMap = new AutoMap<String>();
-
- aToRemoveMap.put(" ");
- aToRemoveMap.put("-");
- aToRemoveMap.put("_");
- aToRemoveMap.put("~");
- aToRemoveMap.put("?");
- aToRemoveMap.put("!");
- aToRemoveMap.put("@");
- aToRemoveMap.put("#");
- aToRemoveMap.put("$");
- aToRemoveMap.put("%");
- aToRemoveMap.put("^");
- aToRemoveMap.put("&");
- aToRemoveMap.put("*");
- aToRemoveMap.put("(");
- aToRemoveMap.put(")");
- aToRemoveMap.put("{");
- aToRemoveMap.put("}");
- aToRemoveMap.put("[");
- aToRemoveMap.put("]");
- aToRemoveMap.put(" ");
-
- for (String s : aToRemoveMap) {
- for (char e : aDontRemove) {
- if (s.charAt(0) == e) {
- aToRemoveMap.remove("s");
- }
+ // Construct a sanitized string
+ StringBuilder sanitized = new StringBuilder();
+ for (char c : input.toCharArray()) {
+ if (!toRemoveSet.contains(c)) {
+ sanitized.append(c);
}
}
- output = input;
- for (String A : aToRemoveMap) {
- output = output.replace(A, "");
- }
- return output;
+
+ return sanitized.toString();
}
public static String sanitizeString(final String input) {
@@ -582,174 +335,86 @@ public class Utils {
return output;
}
- public static String[] parseVersion(final String version) {
- return parseVersion(version, "//.");
- }
-
- public static String[] parseVersion(final String version, final String delimiter) {
- final String[] versionArray = version.split(delimiter);
- return versionArray;
- }
-
- public static Versioning compareModVersion(final String currentVersion, final String expectedVersion) {
- return compareModVersion(currentVersion, expectedVersion, "//.");
- }
-
- public static Versioning compareModVersion(final String currentVersion, final String expectedVersion,
- final String delimiter) {
- final String[] a = parseVersion(currentVersion, delimiter);
- final String[] b = parseVersion(expectedVersion, delimiter);
- final int[] c = new int[a.length];
- final int[] d = new int[b.length];
- for (int r = 0; r < a.length; r++) {
- c[r] = Integer.parseInt(a[r]);
- }
- for (int r = 0; r < b.length; r++) {
- d[r] = Integer.parseInt(b[r]);
- }
- final Versioning[] e = new Versioning[MathUtils.returnLargestNumber(c.length, d.length)];
- for (int r = 0; r < e.length; r++) {
-
- if (c[r] > d[r]) {
- e[r] = Versioning.NEWER;
- } else if (c[r] < d[r]) {
- e[r] = Versioning.OLDER;
- } else if (c[r] == d[r]) {
- e[r] = Versioning.EQUAL;
- }
- }
-
- for (int r = 0; r < e.length; r++) {
- if (e[0] == Versioning.NEWER) {
- return Versioning.NEWER;
- } else if (e[0] == Versioning.OLDER) {
- return Versioning.OLDER;
- } else {
- if (e[r] == Versioning.OLDER) {}
-
- return Versioning.NEWER;
- }
- }
-
- return null;
- }
-
- public static ToolMaterial generateToolMaterialFromGT(final Materials gtMaterial) {
- final String name = Utils.sanitizeString(gtMaterial.mDefaultLocalName);
- final int harvestLevel = gtMaterial.mToolQuality;
- final int durability = gtMaterial.mDurability;
- final float damage = gtMaterial.mToolQuality;
- final int efficiency = (int) gtMaterial.mToolSpeed;
- final int enchantability = gtMaterial.mEnchantmentToolsLevel;
- final ToolMaterial temp = EnumHelper
- .addToolMaterial(name, harvestLevel, durability, efficiency, damage, enchantability);
- return temp;
- }
-
- public enum Versioning {
-
- EQUAL(0),
- NEWER(1),
- OLDER(-1);
-
- private final int versioningInfo;
-
- Versioning(final int versionStatus) {
- this.versioningInfo = versionStatus;
- }
-
- public int getTexture() {
- return this.versioningInfo;
- }
- }
-
public static String addBookTitleLocalization(final String aTitle) {
- return GT_LanguageManager.addStringLocalization(
- new StringBuilder().append("Book.").append(aTitle).append(".Name").toString(),
- aTitle,
- !GregTech_API.sPostloadFinished);
+ return GT_LanguageManager
+ .addStringLocalization("Book." + aTitle + ".Name", aTitle, !GregTech_API.sPostloadFinished);
}
public static String[] addBookPagesLocalization(final String aTitle, final String[] aPages) {
String[] aLocalizationPages = new String[aPages.length];
for (byte i = 0; i < aPages.length; i = (byte) (i + 1)) {
aLocalizationPages[i] = GT_LanguageManager.addStringLocalization(
- new StringBuilder().append("Book.").append(aTitle).append(".Page")
- .append((i < 10) ? new StringBuilder().append("0").append(i).toString() : Byte.valueOf(i))
- .toString(),
+ "Book." + aTitle + ".Page" + ((i < 10) ? "0" + i : Byte.valueOf(i)),
aPages[i],
!GregTech_API.sPostloadFinished);
}
return aLocalizationPages;
}
- public static ItemStack getWrittenBook(final ItemStack aBook, final int aID, final String aMapping,
- final String aTitle, final String aAuthor, final String[] aPages) {
- if (GT_Utility.isStringInvalid(aMapping)) {
+ public static ItemStack getWrittenBook(ItemStack book, int ID, String mapping, String title, String author,
+ String[] pages) {
+
+ if (GT_Utility.isStringInvalid(mapping)) {
return null;
}
- ItemStack rStack = CORE.sBookList.get(aMapping);
- if (rStack != null) {
- return GT_Utility.copyAmount(1L, new Object[] { rStack });
+
+ ItemStack stack = CORE.sBookList.get(mapping);
+ if (stack != null) {
+ return GT_Utility.copyAmount(1L, stack);
}
- if ((GT_Utility.isStringInvalid(aTitle)) || (GT_Utility.isStringInvalid(aAuthor)) || (aPages.length <= 0)) {
+
+ if (GT_Utility.isStringInvalid(title) || GT_Utility.isStringInvalid(author) || pages.length <= 0) {
return null;
}
- final int vMeta = aID;
- rStack = (aBook == null ? new ItemStack(ModItems.itemCustomBook, 1, vMeta) : aBook);
- final NBTTagCompound tNBT = new NBTTagCompound();
- String localizationTitle = addBookTitleLocalization(aTitle);
- tNBT.setString("title", localizationTitle);
- tNBT.setString("author", aAuthor);
- final NBTTagList tNBTList = new NBTTagList();
- final String[] aLocalizationPages = addBookPagesLocalization(aTitle, aPages);
- for (byte i = 0; i < aPages.length; i = (byte) (i + 1)) {
- aPages[i] = aLocalizationPages[i].replaceAll("<BR>", "\n");
+
+ stack = (book == null) ? new ItemStack(ModItems.itemCustomBook, 1, ID) : book;
+
+ NBTTagCompound NBT = new NBTTagCompound();
+ String localizationTitle = addBookTitleLocalization(title);
+ NBT.setString("title", localizationTitle);
+ NBT.setString("author", author);
+
+ NBTTagList NBTList = new NBTTagList();
+ String[] localizationPages = addBookPagesLocalization(title, pages);
+
+ for (byte i = 0; i < pages.length; i++) {
+ pages[i] = localizationPages[i].replaceAll("<BR>", "\n");
if (i < 48) {
- if (aPages[i].length() < 256) {
- tNBTList.appendTag(new NBTTagString(aPages[i]));
+ if (pages[i].length() < 256) {
+ NBTList.appendTag(new NBTTagString(pages[i]));
} else {
- Logger.INFO("WARNING: String for written Book too long! -> " + aPages[i]);
- GT_Log.err.println(
- new StringBuilder().append("WARNING: String for written Book too long! -> ")
- .append(aPages[i]));
+ Logger.INFO("WARNING: String for written Book too long! -> " + pages[i]);
+ GT_Log.err.println("WARNING: String for written Book too long! -> " + pages[i]);
}
} else {
- Logger.INFO("WARNING: Too much Pages for written Book! -> " + aTitle);
- GT_Log.err.println(
- new StringBuilder().append("WARNING: Too much Pages for written Book! -> ").append(aTitle));
+ Logger.INFO("WARNING: Too much Pages for written Book! -> " + title);
+ GT_Log.err.println("WARNING: Too much Pages for written Book! -> " + title);
break;
}
}
- tNBTList.appendTag(
- new NBTTagString(
- new StringBuilder().append("Credits to ").append(aAuthor)
- .append(" for writing this Book. This was Book Nr. ").append(aID)
- .append(" at its creation. Gotta get 'em all!").toString()));
- tNBT.setTag("pages", tNBTList);
- rStack.setTagCompound(tNBT);
- GT_Log.out.println(
- new StringBuilder().append("GT++_Mod: Added Book to Book++ List - Mapping: '").append(aMapping)
- .append("' - Name: '").append(aTitle).append("' - Author: '").append(aAuthor).append("'"));
- NBTUtils.createIntegerTagCompound(rStack, "stats", "mMeta", vMeta);
- CORE.sBookList.put(aMapping, rStack);
- Logger.INFO("Creating book: " + aTitle + " by " + aAuthor + ". Using Meta " + vMeta + ".");
- return GT_Utility.copy(new Object[] { rStack });
- }
- public static long getMillisSince(long aStartTime, long aCurrentTime) {
- return (aCurrentTime - aStartTime);
- }
+ String credits = String.format(
+ "Credits to %s for writing this Book. This was Book Nr. %d at its creation. Gotta get 'em all!",
+ author,
+ ID);
+ NBTList.appendTag(new NBTTagString(credits));
+ NBT.setTag("pages", NBTList);
- public static byte getTier(long l) {
- byte i = -1;
- do {
- ++i;
- if (i >= GT_Values.V.length) {
- return i;
- }
- } while (l > GT_Values.V[i]);
- i = (byte) MathUtils.getValueWithinRange(i, 0, 15);
- return i;
+ stack.setTagCompound(NBT);
+
+ String logMessage = String.format(
+ "GT++_Mod: Added Book to Book++ List - Mapping: '%s' - Name: '%s' - Author: '%s'",
+ mapping,
+ title,
+ author);
+ GT_Log.out.println(logMessage);
+
+ NBTUtils.createIntegerTagCompound(stack, "stats", "mMeta", ID);
+ CORE.sBookList.put(mapping, stack);
+
+ Logger.INFO(String.format("Creating book: %s by %s. Using Meta %d.", title, author, ID));
+
+ return GT_Utility.copy(stack);
}
+
}
diff --git a/src/main/java/gtPlusPlus/core/util/data/AES.java b/src/main/java/gtPlusPlus/core/util/data/AES.java
index 8f9580c760..aeafea7606 100644
--- a/src/main/java/gtPlusPlus/core/util/data/AES.java
+++ b/src/main/java/gtPlusPlus/core/util/data/AES.java
@@ -13,7 +13,7 @@ import javax.crypto.spec.SecretKeySpec;
public class AES {
- private final String secret;;
+ private final String secret;
private final SecretKeySpec secretKey;
@@ -33,12 +33,12 @@ public class AES {
secretKey = generateKey(key);
}
- private static final String getHashedString(String aString) {
+ private static String getHashedString(String aString) {
return toHexString(getSHA(aString));
}
- private static final byte[] getSHA(String input) {
+ private static byte[] getSHA(String input) {
MessageDigest md;
@@ -56,7 +56,7 @@ public class AES {
return new byte[] {};
}
- private static final String toHexString(byte[] hash) {
+ private static String toHexString(byte[] hash) {
BigInteger number = new BigInteger(1, hash);
@@ -70,7 +70,7 @@ public class AES {
return hexString.toString();
}
- private final byte[] getBytes(String aKey) {
+ private byte[] getBytes(String aKey) {
byte[] aKeyData;
@@ -98,42 +98,21 @@ public class AES {
return aKeyData;
- } catch (NoSuchAlgorithmException e) {
+ } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
e.printStackTrace();
- } catch (UnsupportedEncodingException e) {
-
- e.printStackTrace();
}
}
return new byte[] {};
}
- private final SecretKeySpec generateKey(byte[] aKey) {
+ private SecretKeySpec generateKey(byte[] aKey) {
return new SecretKeySpec(aKey, "AES");
}
- public String encode(String strToEncrypt) {
-
- try {
-
- Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
-
- cipher.init(Cipher.ENCRYPT_MODE, secretKey);
-