From 572c9acc5932a03bb77ffbc0aba10fec64387118 Mon Sep 17 00:00:00 2001 From: Christian Date: Sat, 29 Jun 2013 15:16:18 -0400 Subject: [PATCH] More fixes, binpatching works --- fml/build.xml | 18 ++++++++---------- .../client/GuiCustomModLoadingErrorScreen.java | 3 ++- .../cpw/mods/fml/client/GuiDupesFound.java | 3 ++- .../cpw/mods/fml/client/GuiModsMissing.java | 1 + .../cpw/mods/fml/client/GuiWrongMinecraft.java | 3 ++- .../mods/fml/common/patcher/GenDiffSet.java | 18 +++++++++++++++--- .../client/gui/GuiErrorScreen.java.patch | 11 ----------- 7 files changed, 30 insertions(+), 27 deletions(-) delete mode 100644 fml/patches/minecraft/net/minecraft/client/gui/GuiErrorScreen.java.patch diff --git a/fml/build.xml b/fml/build.xml index 0cdc0ff8d..d3088b71a 100644 --- a/fml/build.xml +++ b/fml/build.xml @@ -381,23 +381,21 @@ + + + + + + - - - - - + - - - - - + diff --git a/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java b/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java index 8212e0425..fbd8b20a9 100644 --- a/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java +++ b/fml/client/cpw/mods/fml/client/GuiCustomModLoadingErrorScreen.java @@ -5,7 +5,7 @@ * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * + * * Contributors: * cpw - implementation */ @@ -21,6 +21,7 @@ public class GuiCustomModLoadingErrorScreen extends GuiErrorScreen private CustomModLoadingErrorDisplayException customException; public GuiCustomModLoadingErrorScreen(CustomModLoadingErrorDisplayException customException) { + super(null,null); this.customException = customException; } @Override diff --git a/fml/client/cpw/mods/fml/client/GuiDupesFound.java b/fml/client/cpw/mods/fml/client/GuiDupesFound.java index 7345bc76f..2fbf17b4b 100644 --- a/fml/client/cpw/mods/fml/client/GuiDupesFound.java +++ b/fml/client/cpw/mods/fml/client/GuiDupesFound.java @@ -5,7 +5,7 @@ * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * + * * Contributors: * cpw - implementation */ @@ -29,6 +29,7 @@ public class GuiDupesFound extends GuiErrorScreen public GuiDupesFound(DuplicateModsFoundException dupes) { + super(null,null); this.dupes = dupes; } diff --git a/fml/client/cpw/mods/fml/client/GuiModsMissing.java b/fml/client/cpw/mods/fml/client/GuiModsMissing.java index 0597ebb94..04e67147b 100644 --- a/fml/client/cpw/mods/fml/client/GuiModsMissing.java +++ b/fml/client/cpw/mods/fml/client/GuiModsMissing.java @@ -24,6 +24,7 @@ public class GuiModsMissing extends GuiErrorScreen public GuiModsMissing(MissingModsException modsMissing) { + super(null,null); this.modsMissing = modsMissing; } diff --git a/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java b/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java index ff20808cc..6d87027db 100644 --- a/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java +++ b/fml/client/cpw/mods/fml/client/GuiWrongMinecraft.java @@ -5,7 +5,7 @@ * are made available under the terms of the GNU Lesser Public License v2.1 * which accompanies this distribution, and is available at * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html - * + * * Contributors: * cpw - implementation */ @@ -22,6 +22,7 @@ public class GuiWrongMinecraft extends GuiErrorScreen private WrongMinecraftVersionException wrongMC; public GuiWrongMinecraft(WrongMinecraftVersionException wrongMC) { + super(null,null); this.wrongMC = wrongMC; } @Override diff --git a/fml/common/cpw/mods/fml/common/patcher/GenDiffSet.java b/fml/common/cpw/mods/fml/common/patcher/GenDiffSet.java index 96dcd6516..410b58768 100644 --- a/fml/common/cpw/mods/fml/common/patcher/GenDiffSet.java +++ b/fml/common/cpw/mods/fml/common/patcher/GenDiffSet.java @@ -2,7 +2,10 @@ package cpw.mods.fml.common.patcher; import java.io.File; import java.io.IOException; +import java.util.Arrays; import java.util.Collections; +import java.util.List; +import java.util.Locale; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.logging.Level; @@ -19,11 +22,13 @@ import cpw.mods.fml.repackage.com.nothome.delta.Delta; public class GenDiffSet { + private static final List RESERVED_NAMES = Arrays.asList("CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9"); + public static void main(String[] args) throws IOException { String sourceJar = args[0]; //Clean Vanilla jar minecraft.jar or minecraft_server.jar String targetDir = args[1]; //Directory containing obfed output classes, typically mcp/reobf/minecraft - String deobfData = args[2]; //Path to FML's deobfusication_data.zip + String deobfData = args[2]; //Path to FML's deobfusication_data.lzma String outputDir = args[3]; //Path to place generated .binpatch String killTarget = args[4]; //"true" if we should destroy the target file if it generated a successful .binpatch @@ -40,12 +45,19 @@ public class GenDiffSet { for (String name : remapper.getObfedClasses()) { // Logger.getLogger("GENDIFF").info(String.format("Evaluating path for data :%s",name)); - File targetFile = new File(targetDir, name.replace('/', File.separatorChar) + ".class"); + String fileName = name; + String jarName = name; + if (RESERVED_NAMES.contains(name.toUpperCase(Locale.ENGLISH))) + { + fileName = "_"+name; + } + File targetFile = new File(targetDir, fileName.replace('/', File.separatorChar) + ".class"); + jarName = jarName+".class"; if (targetFile.exists()) { String sourceClassName = name.replace('/', '.'); String targetClassName = remapper.map(name).replace('/', '.'); - JarEntry entry = sourceZip.getJarEntry(name); + JarEntry entry = sourceZip.getJarEntry(jarName); byte[] vanillaBytes = entry != null ? ByteStreams.toByteArray(sourceZip.getInputStream(entry)) : new byte[0]; byte[] patchedBytes = Files.toByteArray(targetFile); diff --git a/fml/patches/minecraft/net/minecraft/client/gui/GuiErrorScreen.java.patch b/fml/patches/minecraft/net/minecraft/client/gui/GuiErrorScreen.java.patch deleted file mode 100644 index ed520448b..000000000 --- a/fml/patches/minecraft/net/minecraft/client/gui/GuiErrorScreen.java.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ../src-base/minecraft/net/minecraft/client/gui/GuiErrorScreen.java -+++ ../src-work/minecraft/net/minecraft/client/gui/GuiErrorScreen.java -@@ -22,6 +22,8 @@ - this.field_73887_h.add(new GuiButton(0, this.field_73880_f / 2 - 100, 140, I18n.func_135053_a("gui.cancel"))); - } - -+ public GuiErrorScreen(){} -+ - public void func_73863_a(int p_73863_1_, int p_73863_2_, float p_73863_3_) - { - this.func_73733_a(0, 0, this.field_73880_f, this.field_73881_g, -12574688, -11530224);