Package cpw.mods.fml.common.asm.transformers.deobf

Examples of cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper


  private static byte[] writeWorldServerProxy(String name, byte[] bytes, ClassReader cr) {

    ClassNode worldServer = new ClassNode(ASM4);
    {
      FMLDeobfuscatingRemapper remapper = FMLDeobfuscatingRemapper.INSTANCE;
      try {
        ClassReader reader = new ClassReader(LoadingPlugin.loader.getClassBytes(
            remapper.unmap("net/minecraft/world/WorldServer").replace('/', '.')));
        reader.accept(new FMLRemappingAdapter(worldServer), ClassReader.SKIP_CODE);
      } catch (Throwable e) {
        Throwables.propagate(e);
      }
    }
    ClassNode world = new ClassNode(ASM4);
    {
      FMLDeobfuscatingRemapper remapper = FMLDeobfuscatingRemapper.INSTANCE;
      try {
        ClassReader reader = new ClassReader(LoadingPlugin.loader.getClassBytes(
            remapper.unmap("net/minecraft/world/World").replace('/', '.')));
        reader.accept(new FMLRemappingAdapter(world), ClassReader.SKIP_CODE);
      } catch (Throwable e) {
        Throwables.propagate(e);
      }
    }
View Full Code Here


        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

        LogManager.getLogger("GENDIFF").log(Level.INFO, String.format("Creating patches at %s for %s from %s", outputDir, sourceJar, targetDir));
        Delta delta = new Delta();
        FMLDeobfuscatingRemapper remapper = FMLDeobfuscatingRemapper.INSTANCE;
        remapper.setupLoadOnly(deobfData, false);
        JarFile sourceZip = new JarFile(sourceJar);
        boolean kill = killTarget.equalsIgnoreCase("true");

        File f = new File(outputDir);
        f.mkdirs();

        for (String name : remapper.getObfedClasses())
        {
//            Logger.getLogger("GENDIFF").info(String.format("Evaluating path for data :%s",name));
            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(jarName);

                byte[] vanillaBytes = entry != null ? ByteStreams.toByteArray(sourceZip.getInputStream(entry)) : new byte[0];
                byte[] patchedBytes = Files.toByteArray(targetFile);
View Full Code Here

TOP

Related Classes of cpw.mods.fml.common.asm.transformers.deobf.FMLDeobfuscatingRemapper

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.