From 79b4b04c40c3391fe7f9bb350e2e8972b47aaf51 Mon Sep 17 00:00:00 2001 From: Bogdan Date: Tue, 19 Jul 2016 18:44:54 +0300 Subject: [PATCH] new -Ddebug options, change use custom FG, small improve perfomance in code --- .gitignore | 3 ++ build.gradle | 13 +++++- .../mods/fml/client/FMLConfigGuiFactory.java | 4 +- .../mods/fml/common/ModContainerFactory.java | 2 +- .../mods/fml/common/asm/FMLSanityChecker.java | 13 ++++-- .../asm/transformers/ModAPITransformer.java | 2 +- .../transformers/ModAccessTransformer.java | 3 +- .../asm/transformers/TerminalTransformer.java | 7 +-- .../deobf/FMLDeobfuscatingRemapper.java | 12 +++--- .../fml/common/discovery/ModDiscoverer.java | 2 +- .../fml/common/launcher/FMLDeobfTweaker.java | 5 ++- .../mods/fml/common/network/ByteBufUtils.java | 2 +- .../fml/common/patcher/ClassPatchManager.java | 14 +++--- .../mods/fml/relauncher/CoreModManager.java | 43 ++++++++++--------- .../mods/fml/relauncher/ModListHelper.java | 3 +- .../repackage/com/nothome/delta/Delta.java | 4 +- .../renderer/texture/TextureMap.java.patch | 17 ++++++++ .../client/model/obj/WavefrontObject.java | 16 +++---- .../net/minecraftforge/common/ForgeHooks.java | 11 ++--- .../minecraftforge/oredict/RecipeSorter.java | 2 +- .../oredict/ShapedOreRecipe.java | 2 +- .../oredict/ShapelessOreRecipe.java | 4 +- 22 files changed, 116 insertions(+), 68 deletions(-) diff --git a/.gitignore b/.gitignore index 6757e543e4e..389cc84cef4 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,6 @@ dist-builds dist-builds2 fix_bug_comp /fb/* +FGS.jar +/libs/* +ForgeGradle-1.2-SNAPSHOT.jar diff --git a/build.gradle b/build.gradle index b7f78786976..0d3ce26bdde 100644 --- a/build.gradle +++ b/build.gradle @@ -10,9 +10,18 @@ buildscript { name = "sonatype" url = "https://oss.sonatype.org/content/repositories/snapshots/" } + maven { + name 'spigot' + url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/' + } + maven { + name 'maven2' + url 'http://repo1.maven.org/maven/' + } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT' + //classpath files('ForgeGradle-1.2-SNAPSHOT.jar') + classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT-2' } } @@ -25,6 +34,8 @@ import static net.minecraftforge.gradle.dev.ForgeDevPlugin.* apply plugin: 'maven' apply plugin: 'forgedev' +//[compileJava, compileTestJava]*.options*.encoding = 'UTF-8' + repositories { mavenLocal() flatDir { diff --git a/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java b/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java index 4fbe53ec35f..84cd8c83566 100644 --- a/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java +++ b/fml/src/main/java/cpw/mods/fml/client/FMLConfigGuiFactory.java @@ -25,6 +25,8 @@ public class FMLConfigGuiFactory implements IModGuiFactory public static class FMLConfigGuiScreen extends GuiConfig { + private static final Pattern precommaDelimitedPattern = Pattern.compile("([A-Za-z]+((,){1}( )*|$))+?"); + public FMLConfigGuiScreen(GuiScreen parent) { super(parent, getConfigElements(), "FML", false, false, I18n.format("fml.config.sample.title")); @@ -37,7 +39,7 @@ private static List getConfigElements() List listsList = new ArrayList(); List stringsList = new ArrayList(); List numbersList = new ArrayList(); - Pattern commaDelimitedPattern = Pattern.compile("([A-Za-z]+((,){1}( )*|$))+?"); + Pattern commaDelimitedPattern = precommaDelimitedPattern; // Top Level Settings list.add(new DummyConfigElement("imABoolean", true, ConfigGuiType.BOOLEAN, "fml.config.sample.imABoolean").setRequiresMcRestart(true)); diff --git a/fml/src/main/java/cpw/mods/fml/common/ModContainerFactory.java b/fml/src/main/java/cpw/mods/fml/common/ModContainerFactory.java index e922a26f2aa..ab9cec98e15 100644 --- a/fml/src/main/java/cpw/mods/fml/common/ModContainerFactory.java +++ b/fml/src/main/java/cpw/mods/fml/common/ModContainerFactory.java @@ -30,7 +30,7 @@ public class ModContainerFactory { public static Map> modTypes = Maps.newHashMap(); - private static Pattern modClass = Pattern.compile(".*(\\.|)(mod\\_[^\\s$]+)$"); + private static final Pattern modClass = Pattern.compile(".*(\\.|)(mod\\_[^\\s$]+)$"); private static ModContainerFactory INSTANCE = new ModContainerFactory(); private ModContainerFactory() { diff --git a/fml/src/main/java/cpw/mods/fml/common/asm/FMLSanityChecker.java b/fml/src/main/java/cpw/mods/fml/common/asm/FMLSanityChecker.java index 1c883365e2d..36f7eb47be8 100644 --- a/fml/src/main/java/cpw/mods/fml/common/asm/FMLSanityChecker.java +++ b/fml/src/main/java/cpw/mods/fml/common/asm/FMLSanityChecker.java @@ -44,6 +44,7 @@ public class FMLSanityChecker implements IFMLCallHook private LaunchClassLoader cl; private boolean liveEnv; public static File fmlLocation; + private static final boolean DEBUGsc = Boolean.parseBoolean(System.getProperty("fml.debugClassPatchManager", "false")); @Override public Void call() throws Exception @@ -63,17 +64,20 @@ public Void call() throws Exception String fingerprint = CertificateHelper.getFingerprint(cert); if (fingerprint.equals(FMLFINGERPRINT)) { - FMLRelaunchLog.info("Found valid fingerprint for FML. Certificate fingerprint %s", fingerprint); + final boolean DEBUG=DEBUGsc; + if (DEBUG) FMLRelaunchLog.info("Found valid fingerprint for FML. Certificate fingerprint %s", fingerprint); goodFML = true; } else if (fingerprint.equals(FORGEFINGERPRINT)) { - FMLRelaunchLog.info("Found valid fingerprint for Minecraft Forge. Certificate fingerprint %s", fingerprint); + final boolean DEBUG=DEBUGsc; + if (DEBUG) FMLRelaunchLog.info("Found valid fingerprint for Minecraft Forge. Certificate fingerprint %s", fingerprint); goodFML = true; } else { - FMLRelaunchLog.severe("Found invalid fingerprint for FML: %s", fingerprint); + final boolean DEBUG=DEBUGsc; + if (DEBUG) FMLRelaunchLog.severe("Found invalid fingerprint for FML: %s", fingerprint); } } } @@ -117,7 +121,8 @@ else if (fingerprint.equals(FORGEFINGERPRINT)) String fingerprint = CertificateHelper.getFingerprint(cert); if (fingerprint.equals(MCFINGERPRINT)) { - FMLRelaunchLog.info("Found valid fingerprint for Minecraft. Certificate fingerprint %s", fingerprint); + final boolean DEBUG=DEBUGsc; + if (DEBUG) FMLRelaunchLog.info("Found valid fingerprint for Minecraft. Certificate fingerprint %s", fingerprint); goodMC = true; } } diff --git a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAPITransformer.java b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAPITransformer.java index 9fd6f45fffb..1eb12d4cbd7 100644 --- a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAPITransformer.java +++ b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAPITransformer.java @@ -25,7 +25,7 @@ public class ModAPITransformer implements IClassTransformer { - private static final boolean logDebugInfo = Boolean.valueOf(System.getProperty("fml.debugAPITransformer", "false")); + private static final boolean logDebugInfo = Boolean.parseBoolean(System.getProperty("fml.debugAPITransformer", "false")); private ListMultimap optionals; @Override diff --git a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAccessTransformer.java b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAccessTransformer.java index c9a88965c12..0abd388a294 100644 --- a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAccessTransformer.java +++ b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/ModAccessTransformer.java @@ -15,6 +15,7 @@ public class ModAccessTransformer extends AccessTransformer { private static Map embedded = Maps.newHashMap(); //Needs to be primitive so that both classloaders get the same class. + private static final boolean logDebugInfo = Boolean.parseBoolean(System.getProperty("fml.debugAccessTransformer", "false")); @SuppressWarnings("unchecked") public ModAccessTransformer() throws Exception { @@ -33,7 +34,7 @@ public ModAccessTransformer() throws Exception int added = getModifiers().size() - old_count; if (added > 0) { - FMLRelaunchLog.fine("Loaded %d rules from AccessTransformer mod jar file %s\n", added, e.getKey()); + if (logDebugInfo) FMLRelaunchLog.fine("Loaded %d rules from AccessTransformer mod jar file %s\n", added, e.getKey()); } } } diff --git a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/TerminalTransformer.java b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/TerminalTransformer.java index 6bf2cd4bc90..7c7404d41da 100644 --- a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/TerminalTransformer.java +++ b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/TerminalTransformer.java @@ -8,6 +8,7 @@ public class TerminalTransformer implements IClassTransformer { + private static final boolean logDebugInfo = Boolean.parseBoolean(System.getProperty("fml.debugTerminalTransformer", "false")); @Override public byte[] transform(String name, String transformedName, byte[] basicClass) { @@ -56,7 +57,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc, { if (opcode == Opcodes.INVOKESTATIC && owner.equals("java/lang/System") && name.equals("exit") && desc.equals("(I)V")) { - if (warn) + if (warn && logDebugInfo) { FMLRelaunchLog.warning("============================================================="); FMLRelaunchLog.warning("MOD HAS DIRECT REFERENCE System.exit() THIS IS NOT ALLOWED REROUTING TO FML!"); @@ -69,7 +70,7 @@ public void visitMethodInsn(int opcode, String owner, String name, String desc, } else if (opcode == Opcodes.INVOKEVIRTUAL && owner.equals("java/lang/Runtime") && name.equals("exit") && desc.equals("(I)V")) { - if (warn) + if (warn && logDebugInfo) { FMLRelaunchLog.warning("============================================================="); FMLRelaunchLog.warning("MOD HAS DIRECT REFERENCE Runtime.exit() THIS IS NOT ALLOWED REROUTING TO FML!"); @@ -84,7 +85,7 @@ else if (opcode == Opcodes.INVOKEVIRTUAL && owner.equals("java/lang/Runtime") && } else if (opcode == Opcodes.INVOKEVIRTUAL && owner.equals("java/lang/Runtime") && name.equals("halt") && desc.equals("(I)V")) { - if (warn) + if (warn && logDebugInfo) { FMLRelaunchLog.warning("============================================================="); FMLRelaunchLog.warning("MOD HAS DIRECT REFERENCE Runtime.halt() THIS IS NOT ALLOWED REROUTING TO FML!"); diff --git a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java index 915ad24efd5..793cc878eb0 100644 --- a/fml/src/main/java/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java +++ b/fml/src/main/java/cpw/mods/fml/common/asm/transformers/deobf/FMLDeobfuscatingRemapper.java @@ -105,7 +105,7 @@ else if ("FD".equals(typ) && loadAll) } catch (IOException ioe) { - FMLRelaunchLog.log(Level.ERROR, "An error occurred loading the deobfuscation map data", ioe); + if (DEBUG_REMAPPING) FMLRelaunchLog.log(Level.ERROR, "An error occurred loading the deobfuscation map data", ioe); } methodNameMaps = Maps.newHashMapWithExpectedSize(rawMethodMaps.size()); fieldNameMaps = Maps.newHashMapWithExpectedSize(rawFieldMaps.size()); @@ -145,7 +145,7 @@ else if ("FD".equals(typ)) } catch (IOException ioe) { - FMLRelaunchLog.log(Level.ERROR, ioe, "An error occurred loading the deobfuscation map data"); + if (DEBUG_REMAPPING) FMLRelaunchLog.log(Level.ERROR, ioe, "An error occurred loading the deobfuscation map data"); } methodNameMaps = Maps.newHashMapWithExpectedSize(rawMethodMaps.size()); fieldNameMaps = Maps.newHashMapWithExpectedSize(rawFieldMaps.size()); @@ -209,7 +209,7 @@ private String getFieldType(String owner, String name) } catch (IOException e) { - FMLRelaunchLog.log(Level.ERROR,e, "A critical exception occured reading a class file %s", owner); + if (DEBUG_REMAPPING) FMLRelaunchLog.log(Level.ERROR,e, "A critical exception occured reading a class file %s", owner); } return null; } @@ -352,12 +352,12 @@ private void findAndMergeSuperMaps(String name) } catch (IOException e) { - e.printStackTrace(); + if (DEBUG_REMAPPING) e.printStackTrace(); } } public void mergeSuperMaps(String name, String superName, String[] interfaces) { -// System.out.printf("Computing super maps for %s: %s %s\n", name, superName, Arrays.asList(interfaces)); + if (DEBUG_REMAPPING) System.out.printf("Computing super maps for %s: %s %s\n", name, superName, Arrays.asList(interfaces)); if (classNameBiMap == null || classNameBiMap.isEmpty()) { return; @@ -400,7 +400,7 @@ public void mergeSuperMaps(String name, String superName, String[] interfaces) } methodNameMaps.put(name, ImmutableMap.copyOf(methodMap)); fieldNameMaps.put(name, ImmutableMap.copyOf(fieldMap)); -// System.out.printf("Maps: %s %s\n", name, methodMap); + if (DEBUG_REMAPPING) System.out.printf("Maps: %s %s\n", name, methodMap); } public Set getObfedClasses() diff --git a/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java b/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java index c8e7ef92eb8..5779a6a34b5 100644 --- a/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java +++ b/fml/src/main/java/cpw/mods/fml/common/discovery/ModDiscoverer.java @@ -32,7 +32,7 @@ public class ModDiscoverer { - private static Pattern zipJar = Pattern.compile("(.+).(zip|jar)$"); + private static final Pattern zipJar = Pattern.compile("(.+).(zip|jar)$"); private List candidates = Lists.newArrayList(); diff --git a/fml/src/main/java/cpw/mods/fml/common/launcher/FMLDeobfTweaker.java b/fml/src/main/java/cpw/mods/fml/common/launcher/FMLDeobfTweaker.java index 6c738cd6392..24045f0ab6f 100644 --- a/fml/src/main/java/cpw/mods/fml/common/launcher/FMLDeobfTweaker.java +++ b/fml/src/main/java/cpw/mods/fml/common/launcher/FMLDeobfTweaker.java @@ -13,6 +13,7 @@ import net.minecraft.launchwrapper.LaunchClassLoader; public class FMLDeobfTweaker implements ITweaker { + private static final boolean logDebugInfo = Boolean.parseBoolean(System.getProperty("fml.debugDeobfTweaker", "false")); @Override public void acceptOptions(List args, File gameDir, File assetsDir, String profile) { @@ -35,13 +36,13 @@ public void injectIntoClassLoader(LaunchClassLoader classLoader) classLoader.registerTransformer("cpw.mods.fml.common.asm.transformers.ItemStackTransformer"); try { - FMLRelaunchLog.fine("Validating minecraft"); + if (logDebugInfo) FMLRelaunchLog.fine("Validating minecraft"); Class loaderClazz = Class.forName("cpw.mods.fml.common.Loader", true, classLoader); Method m = loaderClazz.getMethod("injectData", Object[].class); m.invoke(null, (Object)FMLInjectionData.data()); m = loaderClazz.getMethod("instance"); m.invoke(null); - FMLRelaunchLog.fine("Minecraft validated, launching..."); + if (logDebugInfo) FMLRelaunchLog.fine("Minecraft validated, launching..."); } catch (Exception e) { diff --git a/fml/src/main/java/cpw/mods/fml/common/network/ByteBufUtils.java b/fml/src/main/java/cpw/mods/fml/common/network/ByteBufUtils.java index 89f8d1e7158..db46aac45df 100644 --- a/fml/src/main/java/cpw/mods/fml/common/network/ByteBufUtils.java +++ b/fml/src/main/java/cpw/mods/fml/common/network/ByteBufUtils.java @@ -214,7 +214,7 @@ public static NBTTagCompound readTag(ByteBuf from) public static String getContentDump(ByteBuf buffer) { int currentLength = buffer.readableBytes(); - StringBuffer returnString = new StringBuffer((currentLength * 3) + // The + StringBuilder returnString = new StringBuilder((currentLength * 3) + // The // hex (currentLength) + // The ascii (currentLength / 4) + // The tabs/\n's diff --git a/fml/src/main/java/cpw/mods/fml/common/patcher/ClassPatchManager.java b/fml/src/main/java/cpw/mods/fml/common/patcher/ClassPatchManager.java index e78ce713a81..5edc773a0f7 100644 --- a/fml/src/main/java/cpw/mods/fml/common/patcher/ClassPatchManager.java +++ b/fml/src/main/java/cpw/mods/fml/common/patcher/ClassPatchManager.java @@ -45,6 +45,8 @@ public class ClassPatchManager { private Map patchedClasses = Maps.newHashMap(); private File tempDir; + private static final Pattern prebinpatchMatcher1 = Pattern.compile(String.format("binpatch/%s/.*.binpatch", "client")); + private static final Pattern prebinpatchMatcher2 = Pattern.compile(String.format("binpatch/%s/.*.binpatch", "server")); private ClassPatchManager() { if (dumpPatched) @@ -145,7 +147,9 @@ else if (!patch.existsAtTarget) public void setup(Side side) { - Pattern binpatchMatcher = Pattern.compile(String.format("binpatch/%s/.*.binpatch", side.toString().toLowerCase(Locale.ENGLISH))); + Pattern binpatchMatcher; + if (side.isClient()) binpatchMatcher = prebinpatchMatcher1; + else/* if (side.isServer())*/ binpatchMatcher = prebinpatchMatcher2; JarInputStream jis; try { @@ -195,9 +199,9 @@ public void setup(Side side) { } } while (true); - FMLRelaunchLog.fine("Read %d binary patches", patches.size()); - if (DEBUG) - FMLRelaunchLog.fine("Patch list :\n\t%s", Joiner.on("\t\n").join(patches.asMap().entrySet())); + if (DEBUG) { + FMLRelaunchLog.fine("Read %d binary patches", patches.size()); + FMLRelaunchLog.fine("Patch list :\n\t%s", Joiner.on("\t\n").join(patches.asMap().entrySet()));} patchedClasses.clear(); } @@ -212,7 +216,7 @@ private ClassPatch readPatch(JarEntry patchEntry, JarInputStream jis) } catch (IOException e) { - FMLRelaunchLog.log(Level.WARN, e, "Unable to read binpatch file %s - ignoring", patchEntry.getName()); + if (DEBUG) FMLRelaunchLog.log(Level.WARN, e, "Unable to read binpatch file %s - ignoring", patchEntry.getName()); return null; } String name = input.readUTF(); diff --git a/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java b/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java index a41f365d540..dc061d9adf7 100644 --- a/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java +++ b/fml/src/main/java/cpw/mods/fml/relauncher/CoreModManager.java @@ -68,6 +68,7 @@ public class CoreModManager { private static File mcDir; private static List reparsedCoremods = Lists.newArrayList(); private static List accessTransformers = Lists.newArrayList(); + private static final boolean logDebugInfo = Boolean.parseBoolean(System.getProperty("fml.debugCoreModManager", "false")); private static class FMLPluginWrapper implements ITweaker { public final String name; @@ -101,13 +102,13 @@ public void acceptOptions(List args, File gameDir, File assetsDir, Strin @Override public void injectIntoClassLoader(LaunchClassLoader classLoader) { - FMLRelaunchLog.fine("Injecting coremod %s {%s} class transformers", name, coreModInstance.getClass().getName()); + if (logDebugInfo) FMLRelaunchLog.fine("Injecting coremod %s {%s} class transformers", name, coreModInstance.getClass().getName()); if (coreModInstance.getASMTransformerClass() != null) for (String transformer : coreModInstance.getASMTransformerClass()) { - FMLRelaunchLog.finer("Registering transformer %s", transformer); + if (logDebugInfo) FMLRelaunchLog.finer("Registering transformer %s", transformer); classLoader.registerTransformer(transformer); } - FMLRelaunchLog.fine("Injection complete"); + if (logDebugInfo) FMLRelaunchLog.fine("Injection complete"); FMLRelaunchLog.fine("Running coremod plugin for %s {%s}", name, coreModInstance.getClass().getName()); Map data = new HashMap(); @@ -170,7 +171,7 @@ public static void handleLaunch(File mcDir, LaunchClassLoader classLoader, FMLTw byte[] bs = classLoader.getClassBytes("net.minecraft.world.World"); if (bs != null) { - FMLRelaunchLog.info("Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation"); + if (logDebugInfo) FMLRelaunchLog.info("Managed to load a deobfuscated Minecraft name- we are in a deobfuscated environment. Skipping runtime deobfuscation"); deobfuscatedEnvironment = true; } } @@ -180,7 +181,7 @@ public static void handleLaunch(File mcDir, LaunchClassLoader classLoader, FMLTw if (!deobfuscatedEnvironment) { - FMLRelaunchLog.fine("Enabling runtime deobfuscation"); + if (logDebugInfo) FMLRelaunchLog.fine("Enabling runtime deobfuscation"); } tweaker.injectCascadingTweak("cpw.mods.fml.common.launcher.FMLInjectionAndSortingTweaker"); @@ -205,7 +206,7 @@ public static void handleLaunch(File mcDir, LaunchClassLoader classLoader, FMLTw throw new RuntimeException("A fatal error has occured - no valid fml load plugin was found - this is a completely corrupt FML installation."); } - FMLRelaunchLog.fine("All fundamental core mods are successfully located"); + if (logDebugInfo) FMLRelaunchLog.fine("All fundamental core mods are successfully located"); // Now that we have the root plugins loaded - lets see what else might // be around String commandLineCoremods = System.getProperty("fml.coreMods.load", ""); @@ -300,7 +301,7 @@ public boolean accept(File pathname) for (File coreMod : coreModList) { - FMLRelaunchLog.fine("Examining for coremod candidacy %s", coreMod.getName()); + if (logDebugInfo) FMLRelaunchLog.fine("Examining for coremod candidacy %s", coreMod.getName()); JarFile jar = null; Attributes mfAttributes; try @@ -356,7 +357,7 @@ public boolean accept(File pathname) String modSide = mfAttributes.containsKey(MODSIDE) ? mfAttributes.getValue(MODSIDE) : "BOTH"; if (! ("BOTH".equals(modSide) || FMLLaunchHandler.side.name().equals(modSide))) { - FMLRelaunchLog.fine("Mod %s has ModSide meta-inf value %s, and we're %s. It will be ignored", coreMod.getName(), modSide, FMLLaunchHandler.side.name()); + if (logDebugInfo) FMLRelaunchLog.fine("Mod %s has ModSide meta-inf value %s, and we're %s. It will be ignored", coreMod.getName(), modSide, FMLLaunchHandler.side.name()); loadedCoremods.add(coreMod.getName()); continue; } @@ -364,7 +365,7 @@ public boolean accept(File pathname) if (fmlCorePlugin == null) { // Not a coremod - FMLRelaunchLog.fine("Not found coremod data in %s", coreMod.getName()); + if (logDebugInfo) FMLRelaunchLog.fine("Not found coremod data in %s", coreMod.getName()); continue; } // Support things that are mod jars, but not FML mod jars @@ -373,12 +374,12 @@ public boolean accept(File pathname) classLoader.addURL(coreMod.toURI().toURL()); if (!mfAttributes.containsKey(COREMODCONTAINSFMLMOD)) { - FMLRelaunchLog.finer("Adding %s to the list of known coremods, it will not be examined again", coreMod.getName()); + if (logDebugInfo) FMLRelaunchLog.finer("Adding %s to the list of known coremods, it will not be examined again", coreMod.getName()); loadedCoremods.add(coreMod.getName()); } else { - FMLRelaunchLog.finer("Found FMLCorePluginContainsFMLMod marker in %s, it will be examined later for regular @Mod instances", + if (logDebugInfo) FMLRelaunchLog.finer("Found FMLCorePluginContainsFMLMod marker in %s, it will be examined later for regular @Mod instances", coreMod.getName()); reparsedCoremods.add(coreMod.getName()); } @@ -457,7 +458,7 @@ private static FMLPluginWrapper loadCoreMod(LaunchClassLoader classLoader, Strin String coreModName = coreModClass.substring(coreModClass.lastIndexOf('.') + 1); try { - FMLRelaunchLog.fine("Instantiating coremod class %s", coreModName); + if (logDebugInfo) FMLRelaunchLog.fine("Instantiating coremod class %s", coreModName); classLoader.addTransformerExclusion(coreModClass); Class coreModClazz = Class.forName(coreModClass, true, classLoader); Name coreModNameAnn = coreModClazz.getAnnotation(IFMLLoadingPlugin.Name.class); @@ -469,7 +470,7 @@ private static FMLPluginWrapper loadCoreMod(LaunchClassLoader classLoader, Strin MCVersion requiredMCVersion = coreModClazz.getAnnotation(IFMLLoadingPlugin.MCVersion.class); if (!Arrays.asList(rootPlugins).contains(coreModClass) && (requiredMCVersion == null || Strings.isNullOrEmpty(requiredMCVersion.value()))) { - FMLRelaunchLog.log(Level.WARN, "The coremod %s does not have a MCVersion annotation, it may cause issues with this version of Minecraft", + if (logDebugInfo) FMLRelaunchLog.log(Level.WARN, "The coremod %s does not have a MCVersion annotation, it may cause issues with this version of Minecraft", coreModClass); } else if (requiredMCVersion != null && !FMLInjectionData.mccversion.equals(requiredMCVersion.value())) @@ -480,7 +481,7 @@ else if (requiredMCVersion != null && !FMLInjectionData.mccversion.equals(requir } else if (requiredMCVersion != null) { - FMLRelaunchLog.log(Level.DEBUG, "The coremod %s requested minecraft version %s and minecraft is %s. It will be loaded.", coreModClass, + if (logDebugInfo) FMLRelaunchLog.log(Level.DEBUG, "The coremod %s requested minecraft version %s and minecraft is %s. It will be loaded.", coreModClass, requiredMCVersion.value(), FMLInjectionData.mccversion); } TransformerExclusions trExclusions = coreModClazz.getAnnotation(IFMLLoadingPlugin.TransformerExclusions.class); @@ -504,32 +505,32 @@ else if (requiredMCVersion != null) String accessTransformerClass = plugin.getAccessTransformerClass(); if (accessTransformerClass != null) { - FMLRelaunchLog.log(Level.DEBUG, "Added access transformer class %s to enqueued access transformers", accessTransformerClass); + if (logDebugInfo) FMLRelaunchLog.log(Level.DEBUG, "Added access transformer class %s to enqueued access transformers", accessTransformerClass); accessTransformers.add(accessTransformerClass); } FMLPluginWrapper wrap = new FMLPluginWrapper(coreModName, plugin, location, sortIndex, dependencies); loadPlugins.add(wrap); - FMLRelaunchLog.fine("Enqueued coremod %s", coreModName); + if (logDebugInfo) FMLRelaunchLog.fine("Enqueued coremod %s", coreModName); return wrap; } catch (ClassNotFoundException cnfe) { if (!Lists.newArrayList(rootPlugins).contains(coreModClass)) - FMLRelaunchLog.log(Level.ERROR, cnfe, "Coremod %s: Unable to class load the plugin %s", coreModName, coreModClass); + if (logDebugInfo) FMLRelaunchLog.log(Level.ERROR, cnfe, "Coremod %s: Unable to class load the plugin %s", coreModName, coreModClass); else - FMLRelaunchLog.fine("Skipping root plugin %s", coreModClass); + if (logDebugInfo) FMLRelaunchLog.fine("Skipping root plugin %s", coreModClass); } catch (ClassCastException cce) { - FMLRelaunchLog.log(Level.ERROR, cce, "Coremod %s: The plugin %s is not an implementor of IFMLLoadingPlugin", coreModName, coreModClass); + if (logDebugInfo) FMLRelaunchLog.log(Level.ERROR, cce, "Coremod %s: The plugin %s is not an implementor of IFMLLoadingPlugin", coreModName, coreModClass); } catch (InstantiationException ie) { - FMLRelaunchLog.log(Level.ERROR, ie, "Coremod %s: The plugin class %s was not instantiable", coreModName, coreModClass); + if (logDebugInfo) FMLRelaunchLog.log(Level.ERROR, ie, "Coremod %s: The plugin class %s was not instantiable", coreModName, coreModClass); } catch (IllegalAccessException iae) { - FMLRelaunchLog.log(Level.ERROR, iae, "Coremod %s: The plugin class %s was not accessible", coreModName, coreModClass); + if (logDebugInfo) FMLRelaunchLog.log(Level.ERROR, iae, "Coremod %s: The plugin class %s was not accessible", coreModName, coreModClass); } return null; } diff --git a/fml/src/main/java/cpw/mods/fml/relauncher/ModListHelper.java b/fml/src/main/java/cpw/mods/fml/relauncher/ModListHelper.java index b08b1af2501..a0b87f52a06 100644 --- a/fml/src/main/java/cpw/mods/fml/relauncher/ModListHelper.java +++ b/fml/src/main/java/cpw/mods/fml/relauncher/ModListHelper.java @@ -23,6 +23,7 @@ public static class JsonModList { private static File mcDirectory; private static Set visitedFiles = Sets.newHashSet(); public static final Map additionalMods = Maps.newLinkedHashMap(); + private static final boolean logDebugInfo = Boolean.parseBoolean(System.getProperty("fml.debugModListHelper", "false")); static void parseModList(File minecraftDirectory) { FMLRelaunchLog.fine("Attempting to load commandline specified mods, relative to %s", minecraftDirectory.getAbsolutePath()); @@ -121,7 +122,7 @@ private static void tryAddFile(String modFileName, File repoRoot, String descrip } else { - FMLRelaunchLog.fine("Adding %s (%s) to the mod list", descriptor, modFile.getAbsolutePath()); + if (logDebugInfo) FMLRelaunchLog.fine("Adding %s (%s) to the mod list", descriptor, modFile.getAbsolutePath()); additionalMods.put(descriptor, modFile); } } diff --git a/fml/src/main/java/cpw/mods/fml/repackage/com/nothome/delta/Delta.java b/fml/src/main/java/cpw/mods/fml/repackage/com/nothome/delta/Delta.java index 253cbf50d44..51b773890e5 100644 --- a/fml/src/main/java/cpw/mods/fml/repackage/com/nothome/delta/Delta.java +++ b/fml/src/main/java/cpw/mods/fml/repackage/com/nothome/delta/Delta.java @@ -369,7 +369,7 @@ private String dump(ByteBuffer bb) { return getTextDump(bb); } - private void append(StringBuffer sb, int value) { + private void append(StringBuilder sb, int value) { char b1 = (char)((value >> 4) & 0x0F); char b2 = (char)((value) & 0x0F); sb.append( Character.forDigit(b1, 16) ); @@ -378,7 +378,7 @@ private void append(StringBuffer sb, int value) { public String getTextDump(ByteBuffer bb) { - StringBuffer sb = new StringBuffer(bb.remaining() * 2); + StringBuilder sb = new StringBuilder(bb.remaining() * 2); bb.mark(); while (bb.hasRemaining()) { int val = bb.get(); diff --git a/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch b/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch index 75ee568c8ea..296bd1faa34 100644 --- a/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch +++ b/patches/minecraft/net/minecraft/client/renderer/texture/TextureMap.java.patch @@ -8,6 +8,23 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +@@ -41,11 +42,11 @@ + private static final Logger field_147635_d = LogManager.getLogger(); + public static final ResourceLocation field_110575_b = new ResourceLocation("textures/atlas/blocks.png"); + public static final ResourceLocation field_110576_c = new ResourceLocation("textures/atlas/items.png"); +- private final List field_94258_i = Lists.newArrayList(); +- private final Map field_110574_e = Maps.newHashMap(); +- private final Map field_94252_e = Maps.newHashMap(); +- private final int field_94255_a; +- private final String field_94254_c; ++ private List field_94258_i = Lists.newArrayList(); ++ private Map field_110574_e = Maps.newHashMap(); ++ private Map field_94252_e = Maps.newHashMap(); ++ private int field_94255_a; ++ private String field_94254_c; + private int field_147637_k = 1; + private final TextureAtlasSprite field_94249_f = new TextureAtlasSprite("missingno"); + private static final String __OBFID = "CL_00001058"; @@ -98,11 +99,14 @@ public void func_110571_b(IResourceManager p_110571_1_) diff --git a/src/main/java/net/minecraftforge/client/model/obj/WavefrontObject.java b/src/main/java/net/minecraftforge/client/model/obj/WavefrontObject.java index cae65c76f57..55a481cf99f 100644 --- a/src/main/java/net/minecraftforge/client/model/obj/WavefrontObject.java +++ b/src/main/java/net/minecraftforge/client/model/obj/WavefrontObject.java @@ -26,14 +26,14 @@ */ public class WavefrontObject implements IModelCustom { - private static Pattern vertexPattern = Pattern.compile("(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); - private static Pattern vertexNormalPattern = Pattern.compile("(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); - private static Pattern textureCoordinatePattern = Pattern.compile("(vt( (\\-){0,1}\\d+\\.\\d+){2,3} *\\n)|(vt( (\\-){0,1}\\d+(\\.\\d+)?){2,3} *$)"); - private static Pattern face_V_VT_VN_Pattern = Pattern.compile("(f( \\d+/\\d+/\\d+){3,4} *\\n)|(f( \\d+/\\d+/\\d+){3,4} *$)"); - private static Pattern face_V_VT_Pattern = Pattern.compile("(f( \\d+/\\d+){3,4} *\\n)|(f( \\d+/\\d+){3,4} *$)"); - private static Pattern face_V_VN_Pattern = Pattern.compile("(f( \\d+//\\d+){3,4} *\\n)|(f( \\d+//\\d+){3,4} *$)"); - private static Pattern face_V_Pattern = Pattern.compile("(f( \\d+){3,4} *\\n)|(f( \\d+){3,4} *$)"); - private static Pattern groupObjectPattern = Pattern.compile("([go]( [\\w\\d\\.]+) *\\n)|([go]( [\\w\\d\\.]+) *$)"); + private static final Pattern vertexPattern = Pattern.compile("(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(v( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); + private static final Pattern vertexNormalPattern = Pattern.compile("(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *\\n)|(vn( (\\-){0,1}\\d+(\\.\\d+)?){3,4} *$)"); + private static final Pattern textureCoordinatePattern = Pattern.compile("(vt( (\\-){0,1}\\d+\\.\\d+){2,3} *\\n)|(vt( (\\-){0,1}\\d+(\\.\\d+)?){2,3} *$)"); + private static final Pattern face_V_VT_VN_Pattern = Pattern.compile("(f( \\d+/\\d+/\\d+){3,4} *\\n)|(f( \\d+/\\d+/\\d+){3,4} *$)"); + private static final Pattern face_V_VT_Pattern = Pattern.compile("(f( \\d+/\\d+){3,4} *\\n)|(f( \\d+/\\d+){3,4} *$)"); + private static final Pattern face_V_VN_Pattern = Pattern.compile("(f( \\d+//\\d+){3,4} *\\n)|(f( \\d+//\\d+){3,4} *$)"); + private static final Pattern face_V_Pattern = Pattern.compile("(f( \\d+){3,4} *\\n)|(f( \\d+){3,4} *$)"); + private static final Pattern groupObjectPattern = Pattern.compile("([go]( [\\w\\d\\.]+) *\\n)|([go]( [\\w\\d\\.]+) *$)"); private static Matcher vertexMatcher, vertexNormalMatcher, textureCoordinateMatcher; private static Matcher face_V_VT_VN_Matcher, face_V_VT_Matcher, face_V_VN_Matcher, face_V_Matcher; diff --git a/src/main/java/net/minecraftforge/common/ForgeHooks.java b/src/main/java/net/minecraftforge/common/ForgeHooks.java index b3e5a0422a9..8b69495a548 100644 --- a/src/main/java/net/minecraftforge/common/ForgeHooks.java +++ b/src/main/java/net/minecraftforge/common/ForgeHooks.java @@ -76,6 +76,11 @@ public SeedEntry(ItemStack seed, int weight) } } static final List seedList = new ArrayList(); + private static final Pattern pat = Pattern.compile( + // schema ipv4 OR namespace port path ends + // |-----------------| |-------------------------| |----------------------------| |---------| |--| |---------------| + "((?:[a-z0-9]{2,}:\\/\\/)?(?:(?:[0-9]{1,3}\\.){3}[0-9]{1,3}|(?:[-\\w_\\.]{1,}\\.[a-z]{2,}?))(?::[0-9]{1,5})?.*?(?=[!\"\u00A7 \n]|$))", + Pattern.CASE_INSENSITIVE); public static ItemStack getGrassSeed(World world) { @@ -391,11 +396,7 @@ public static IChatComponent newChatWithLinks(String string) // Includes ipv4 and domain pattern // Matches an ip (xx.xxx.xx.xxx) or a domain (something.com) with or // without a protocol or path. - final Pattern URL_PATTERN = Pattern.compile( - // schema ipv4 OR namespace port path ends - // |-----------------| |-------------------------| |----------------------------| |---------| |--| |---------------| - "((?:[a-z0-9]{2,}:\\/\\/)?(?:(?:[0-9]{1,3}\\.){3}[0-9]{1,3}|(?:[-\\w_\\.]{1,}\\.[a-z]{2,}?))(?::[0-9]{1,5})?.*?(?=[!\"\u00A7 \n]|$))", - Pattern.CASE_INSENSITIVE); + final Pattern URL_PATTERN = pat; IChatComponent ichat = new ChatComponentText(""); Matcher matcher = URL_PATTERN.matcher(string); int lastEnd = 0; diff --git a/src/main/java/net/minecraftforge/oredict/RecipeSorter.java b/src/main/java/net/minecraftforge/oredict/RecipeSorter.java index 4516db30a05..24c1bab3eca 100644 --- a/src/main/java/net/minecraftforge/oredict/RecipeSorter.java +++ b/src/main/java/net/minecraftforge/oredict/RecipeSorter.java @@ -137,7 +137,7 @@ public int compare(IRecipe r1, IRecipe r2) } private static Set warned = new HashSet(); - @SuppressWarnings("unchecked") + /*@*//*SuppressWarnings("unchecked")*/ public static void sortCraftManager() { bake(); diff --git a/src/main/java/net/minecraftforge/oredict/ShapedOreRecipe.java b/src/main/java/net/minecraftforge/oredict/ShapedOreRecipe.java index 8f8657f0867..4a8f7aad2c4 100644 --- a/src/main/java/net/minecraftforge/oredict/ShapedOreRecipe.java +++ b/src/main/java/net/minecraftforge/oredict/ShapedOreRecipe.java @@ -189,7 +189,7 @@ public boolean matches(InventoryCrafting inv, World world) return false; } - @SuppressWarnings("unchecked") + /*@*//*SuppressWarnings("unchecked")*/ private boolean checkMatch(InventoryCrafting inv, int startX, int startY, boolean mirror) { for (int x = 0; x < MAX_CRAFT_GRID_WIDTH; x++) diff --git a/src/main/java/net/minecraftforge/oredict/ShapelessOreRecipe.java b/src/main/java/net/minecraftforge/oredict/ShapelessOreRecipe.java index 7d94f761df9..5fa2b69f57a 100644 --- a/src/main/java/net/minecraftforge/oredict/ShapelessOreRecipe.java +++ b/src/main/java/net/minecraftforge/oredict/ShapelessOreRecipe.java @@ -57,7 +57,7 @@ else if (in instanceof String) } } - @SuppressWarnings("unchecked") + /*@*//*SuppressWarnings("unchecked")*/ ShapelessOreRecipe(ShapelessRecipes recipe, Map replacements) { output = recipe.getRecipeOutput(); @@ -86,7 +86,7 @@ else if (in instanceof String) @Override public ItemStack getCraftingResult(InventoryCrafting var1){ return output.copy(); } - @SuppressWarnings("unchecked") + /*@*//*SuppressWarnings("unchecked")*/ @Override public boolean matches(InventoryCrafting var1, World world) {