Skip to content

Commit

Permalink
Initialize StacktraceDeobfuscator earlier
Browse files Browse the repository at this point in the history
  • Loading branch information
Runemoro committed May 28, 2018
1 parent ecb98d5 commit a03ad9f
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 19 deletions.
23 changes: 4 additions & 19 deletions src/main/java/org/dimdev/vanillafix/VanillaFix.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,11 @@
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import org.apache.logging.log4j.Logger;
import org.dimdev.vanillafix.crashes.StacktraceDeobfuscator;

import java.io.*;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

@Mod(modid = "vanillafix",
Expand All @@ -18,7 +20,6 @@
updateJSON = "https://gist.githubusercontent.com/Runemoro/28e8cf4c24a5f17f508a5d34f66d229f/raw/vanillafix_update.json")
public class VanillaFix {
private static final int CONFIG_VERSION = 1;
String MCP_VERSION = "20180519-1.12";
public File modDir;

@Mod.EventHandler
Expand All @@ -27,22 +28,6 @@ public void onPreInit(FMLPreInitializationEvent event) {
modDir = new File(event.getModConfigurationDirectory(), "vanillafix");
modDir.mkdirs();

// Initialize StacktraceDeobfuscator
// TODO: Use version for current Minecraft version!
log.info("Initializing StacktraceDeobfuscator");
try {
File mappings = new File(modDir, "methods-" + MCP_VERSION + ".csv");
if (mappings.exists()) {
log.info("Found MCP method mappings: " + mappings.getName());
} else {
log.info("Downloading MCP method mappings to: " + mappings.getName());
}
StacktraceDeobfuscator.init(mappings, MCP_VERSION);
} catch (Exception e) {
log.error("Failed to get MCP data!", e);
}
log.info("Done initializing StacktraceDeobfuscator");

// Check if config is outdated and needs to be deleted
boolean configOutdated;
File configVersionFile = new File(modDir, "config_version");
Expand Down
28 changes: 28 additions & 0 deletions src/main/java/org/dimdev/vanillafix/VanillaFixLoadingPlugin.java
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
package org.dimdev.vanillafix;

import net.minecraft.launchwrapper.Launch;
import net.minecraft.launchwrapper.LogWrapper;
import net.minecraftforge.common.ForgeVersion;
import net.minecraftforge.fml.common.Loader;
import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.dimdev.utils.SSLUtils;
import org.dimdev.vanillafix.crashes.DeobfuscatingRewritePolicy;
import org.dimdev.vanillafix.crashes.StacktraceDeobfuscator;
import org.spongepowered.asm.launch.MixinBootstrap;
import org.spongepowered.asm.mixin.Mixins;

import javax.annotation.Nullable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.security.KeyStore;
Expand All @@ -20,6 +27,8 @@
@IFMLLoadingPlugin.SortingIndex(-5000)
@IFMLLoadingPlugin.TransformerExclusions("org.dimdev.vanillafix.")
public class VanillaFixLoadingPlugin implements IFMLLoadingPlugin {
private static final Logger log = LogManager.getLogger();
private static final String MCP_VERSION = "20180519-1.12"; // TODO: Use version for current Minecraft version!

public VanillaFixLoadingPlugin() {
// Trust the "IdenTrust DST Root CA X3" certificate (used by Let's Encrypt, which is used by paste.dimdev.org)
Expand All @@ -32,6 +41,25 @@ public VanillaFixLoadingPlugin() {
throw new RuntimeException();
}

// Initialize StacktraceDeobfuscator
File modDir = new File(Launch.minecraftHome, "config/vanillafix");
modDir.mkdirs();

// Initialize StacktraceDeobfuscator
log.info("Initializing StacktraceDeobfuscator");
try {
File mappings = new File(modDir, "methods-" + MCP_VERSION + ".csv");
if (mappings.exists()) {
log.info("Found MCP method mappings: " + mappings.getName());
} else {
log.info("Downloading MCP method mappings to: " + mappings.getName());
}
StacktraceDeobfuscator.init(mappings, MCP_VERSION);
} catch (Exception e) {
log.error("Failed to get MCP data!", e);
}
log.info("Done initializing StacktraceDeobfuscator");

// Install the log exception deobfuscation rewrite policy
DeobfuscatingRewritePolicy.install();

Expand Down

0 comments on commit a03ad9f

Please sign in to comment.