Skip to content

Commit

Permalink
new -Ddebug options, change use custom FG, small improve perfomance i…
Browse files Browse the repository at this point in the history
…n code
  • Loading branch information
Bogdan-G committed Jul 19, 2016
1 parent 60ff7f4 commit 79b4b04
Show file tree
Hide file tree
Showing 22 changed files with 116 additions and 68 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Expand Up @@ -25,3 +25,6 @@ dist-builds
dist-builds2
fix_bug_comp
/fb/*
FGS.jar
/libs/*
ForgeGradle-1.2-SNAPSHOT.jar
13 changes: 12 additions & 1 deletion build.gradle
Expand Up @@ -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'
}
}

Expand All @@ -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 {
Expand Down
Expand Up @@ -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"));
Expand All @@ -37,7 +39,7 @@ private static List<IConfigElement> getConfigElements()
List<IConfigElement> listsList = new ArrayList<IConfigElement>();
List<IConfigElement> stringsList = new ArrayList<IConfigElement>();
List<IConfigElement> numbersList = new ArrayList<IConfigElement>();
Pattern commaDelimitedPattern = Pattern.compile("([A-Za-z]+((,){1}( )*|$))+?");
Pattern commaDelimitedPattern = precommaDelimitedPattern;

// Top Level Settings
list.add(new DummyConfigElement<Boolean>("imABoolean", true, ConfigGuiType.BOOLEAN, "fml.config.sample.imABoolean").setRequiresMcRestart(true));
Expand Down
Expand Up @@ -30,7 +30,7 @@
public class ModContainerFactory
{
public static Map<Type, Constructor<? extends ModContainer>> 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() {
Expand Down
13 changes: 9 additions & 4 deletions fml/src/main/java/cpw/mods/fml/common/asm/FMLSanityChecker.java
Expand Up @@ -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
Expand All @@ -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);
}
}
}
Expand Down Expand Up @@ -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;
}
}
Expand Down
Expand Up @@ -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<String, ASMData> optionals;

@Override
Expand Down
Expand Up @@ -15,6 +15,7 @@

public class ModAccessTransformer extends AccessTransformer {
private static Map<String, String> 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
{
Expand All @@ -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());
}
}
}
Expand Down
Expand Up @@ -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)
{
Expand Down Expand Up @@ -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!");
Expand All @@ -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!");
Expand All @@ -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!");
Expand Down
Expand Up @@ -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());
Expand Down Expand Up @@ -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());
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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<String> getObfedClasses()
Expand Down
Expand Up @@ -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<ModCandidate> candidates = Lists.newArrayList();

Expand Down
Expand Up @@ -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<String> args, File gameDir, File assetsDir, String profile)
{
Expand All @@ -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)
{
Expand Down
Expand Up @@ -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
Expand Down
Expand Up @@ -45,6 +45,8 @@ public class ClassPatchManager {

private Map<String,byte[]> 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)
Expand Down Expand Up @@ -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
{
Expand Down Expand Up @@ -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();
}

Expand All @@ -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();
Expand Down

0 comments on commit 79b4b04

Please sign in to comment.