Try and use the relaunch log, which should be classloaded..
This commit is contained in:
parent
4eb97daac3
commit
6818c0f4da
1 changed files with 14 additions and 15 deletions
|
@ -31,7 +31,6 @@ import com.google.common.io.ByteArrayDataInput;
|
||||||
import com.google.common.io.ByteStreams;
|
import com.google.common.io.ByteStreams;
|
||||||
import com.google.common.io.Files;
|
import com.google.common.io.Files;
|
||||||
|
|
||||||
import cpw.mods.fml.common.FMLLog;
|
|
||||||
import cpw.mods.fml.common.launcher.FMLTweaker;
|
import cpw.mods.fml.common.launcher.FMLTweaker;
|
||||||
import cpw.mods.fml.relauncher.FMLRelaunchLog;
|
import cpw.mods.fml.relauncher.FMLRelaunchLog;
|
||||||
import cpw.mods.fml.relauncher.Side;
|
import cpw.mods.fml.relauncher.Side;
|
||||||
|
@ -51,7 +50,7 @@ public class ClassPatchManager {
|
||||||
if (dumpPatched)
|
if (dumpPatched)
|
||||||
{
|
{
|
||||||
tempDir = Files.createTempDir();
|
tempDir = Files.createTempDir();
|
||||||
FMLLog.info("Dumping patched classes to %s",tempDir.getAbsolutePath());
|
FMLRelaunchLog.info("Dumping patched classes to %s",tempDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,12 +66,12 @@ public class ClassPatchManager {
|
||||||
return inputData;
|
return inputData;
|
||||||
}
|
}
|
||||||
boolean ignoredError = false;
|
boolean ignoredError = false;
|
||||||
FMLLog.fine("Runtime patching class %s (input size %d), found %d patch%s", mappedName, (inputData == null ? 0 : inputData.length), list.size(), list.size()!=1 ? "es" : "");
|
FMLRelaunchLog.fine("Runtime patching class %s (input size %d), found %d patch%s", mappedName, (inputData == null ? 0 : inputData.length), list.size(), list.size()!=1 ? "es" : "");
|
||||||
for (ClassPatch patch: list)
|
for (ClassPatch patch: list)
|
||||||
{
|
{
|
||||||
if (!patch.targetClassName.equals(mappedName))
|
if (!patch.targetClassName.equals(mappedName))
|
||||||
{
|
{
|
||||||
FMLLog.warning("Binary patch found %s for wrong class %s", patch.targetClassName, mappedName);
|
FMLRelaunchLog.warning("Binary patch found %s for wrong class %s", patch.targetClassName, mappedName);
|
||||||
}
|
}
|
||||||
if (!patch.existsAtTarget && (inputData == null || inputData.length == 0))
|
if (!patch.existsAtTarget && (inputData == null || inputData.length == 0))
|
||||||
{
|
{
|
||||||
|
@ -80,22 +79,22 @@ public class ClassPatchManager {
|
||||||
}
|
}
|
||||||
else if (!patch.existsAtTarget)
|
else if (!patch.existsAtTarget)
|
||||||
{
|
{
|
||||||
FMLLog.warning("Patcher expecting empty class data file for %s, but received non-empty", patch.targetClassName);
|
FMLRelaunchLog.warning("Patcher expecting empty class data file for %s, but received non-empty", patch.targetClassName);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int inputChecksum = Hashing.adler32().hashBytes(inputData).asInt();
|
int inputChecksum = Hashing.adler32().hashBytes(inputData).asInt();
|
||||||
if (patch.inputChecksum != inputChecksum)
|
if (patch.inputChecksum != inputChecksum)
|
||||||
{
|
{
|
||||||
FMLLog.severe("There is a binary discrepency between the expected input class %s (%s) and the actual class. Checksum on disk is %x, in patch %x. Things are probably about to go very wrong. Did you put something into the jar file?", mappedName, name, inputChecksum, patch.inputChecksum);
|
FMLRelaunchLog.severe("There is a binary discrepency between the expected input class %s (%s) and the actual class. Checksum on disk is %x, in patch %x. Things are probably about to go very wrong. Did you put something into the jar file?", mappedName, name, inputChecksum, patch.inputChecksum);
|
||||||
if (!Boolean.parseBoolean(System.getProperty("fml.ignorePatchDiscrepancies","false")))
|
if (!Boolean.parseBoolean(System.getProperty("fml.ignorePatchDiscrepancies","false")))
|
||||||
{
|
{
|
||||||
FMLLog.severe("The game is going to exit, because this is a critical error, and it is very improbable that the modded game will work, please obtain clean jar files.");
|
FMLRelaunchLog.severe("The game is going to exit, because this is a critical error, and it is very improbable that the modded game will work, please obtain clean jar files.");
|
||||||
System.exit(1);
|
System.exit(1);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FMLLog.severe("FML is going to ignore this error, note that the patch will not be applied, and there is likely to be a malfunctioning behaviour, including not running at all");
|
FMLRelaunchLog.severe("FML is going to ignore this error, note that the patch will not be applied, and there is likely to be a malfunctioning behaviour, including not running at all");
|
||||||
ignoredError = true;
|
ignoredError = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -109,14 +108,14 @@ public class ClassPatchManager {
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
FMLLog.log(Level.SEVERE, e, "Encountered problem runtime patching class %s", name);
|
FMLRelaunchLog.log(Level.SEVERE, e, "Encountered problem runtime patching class %s", name);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!ignoredError)
|
if (!ignoredError)
|
||||||
{
|
{
|
||||||
FMLLog.fine("Successfully applied runtime patches for %s (new size %d)", mappedName, inputData.length);
|
FMLRelaunchLog.fine("Successfully applied runtime patches for %s (new size %d)", mappedName, inputData.length);
|
||||||
}
|
}
|
||||||
if (dumpPatched)
|
if (dumpPatched)
|
||||||
{
|
{
|
||||||
|
@ -126,7 +125,7 @@ public class ClassPatchManager {
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
FMLLog.log(Level.SEVERE, e, "Failed to write %s to %s", mappedName, tempDir.getAbsolutePath());
|
FMLRelaunchLog.log(Level.SEVERE, e, "Failed to write %s to %s", mappedName, tempDir.getAbsolutePath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return inputData;
|
return inputData;
|
||||||
|
@ -184,13 +183,13 @@ public class ClassPatchManager {
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
} while (true);
|
} while (true);
|
||||||
FMLLog.fine("Read %d binary patches", patches.size());
|
FMLRelaunchLog.fine("Read %d binary patches", patches.size());
|
||||||
FMLLog.fine("Patch list :\n\t%s", Joiner.on("\t\n").join(patches.asMap().entrySet()));
|
FMLRelaunchLog.fine("Patch list :\n\t%s", Joiner.on("\t\n").join(patches.asMap().entrySet()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ClassPatch readPatch(JarEntry patchEntry, JarInputStream jis)
|
private ClassPatch readPatch(JarEntry patchEntry, JarInputStream jis)
|
||||||
{
|
{
|
||||||
FMLLog.finest("Reading patch data from %s", patchEntry.getName());
|
FMLRelaunchLog.finest("Reading patch data from %s", patchEntry.getName());
|
||||||
ByteArrayDataInput input;
|
ByteArrayDataInput input;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -198,7 +197,7 @@ public class ClassPatchManager {
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
{
|
{
|
||||||
FMLLog.log(Level.WARNING, e, "Unable to read binpatch file %s - ignoring", patchEntry.getName());
|
FMLRelaunchLog.log(Level.WARNING, e, "Unable to read binpatch file %s - ignoring", patchEntry.getName());
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
String name = input.readUTF();
|
String name = input.readUTF();
|
||||||
|
|
Loading…
Reference in a new issue