Fix AT, Fix exc. Almost works now!
This commit is contained in:
parent
1322e3407b
commit
7956c2f659
|
@ -109,7 +109,7 @@ net/minecraft/enchantment/EnchantmentHelper=CL_00000107
|
||||||
#net/minecraft/enchantment/EnchantmentHelper$1=CL_00000108
|
#net/minecraft/enchantment/EnchantmentHelper$1=CL_00000108
|
||||||
net/minecraft/enchantment/EnchantmentHelper$DamageIterator=CL_00000109
|
net/minecraft/enchantment/EnchantmentHelper$DamageIterator=CL_00000109
|
||||||
net/minecraft/enchantment/EnchantmentHelper$HurtIterator=CL_00000110
|
net/minecraft/enchantment/EnchantmentHelper$HurtIterator=CL_00000110
|
||||||
net/minecraft/enchantment/EnchantmentHelper$IModifier=CL_00000111
|
#net/minecraft/enchantment/EnchantmentHelper$IModifier=CL_00000111
|
||||||
net/minecraft/enchantment/EnchantmentHelper$ModifierLiving=CL_00000112
|
net/minecraft/enchantment/EnchantmentHelper$ModifierLiving=CL_00000112
|
||||||
net/minecraft/command/server/CommandAchievement=CL_00000113
|
net/minecraft/command/server/CommandAchievement=CL_00000113
|
||||||
net/minecraft/enchantment/EnchantmentHelper$ModifierDamage=CL_00000114
|
net/minecraft/enchantment/EnchantmentHelper$ModifierDamage=CL_00000114
|
||||||
|
@ -673,7 +673,7 @@ net/minecraft/client/gui/GuiLabel=CL_00000671
|
||||||
net/minecraft/client/gui/GuiButtonLanguage=CL_00000672
|
net/minecraft/client/gui/GuiButtonLanguage=CL_00000672
|
||||||
net/minecraft/client/gui/GuiButtonLink=CL_00000673
|
net/minecraft/client/gui/GuiButtonLink=CL_00000673
|
||||||
net/minecraft/client/gui/GuiListExtended=CL_00000674
|
net/minecraft/client/gui/GuiListExtended=CL_00000674
|
||||||
net/minecraft/client/gui/GuiListExtended$IGuiListEntry=CL_00000675
|
#net/minecraft/client/gui/GuiListExtended$IGuiListEntry=CL_00000675
|
||||||
net/minecraft/client/gui/GuiOptionButton=CL_00000676
|
net/minecraft/client/gui/GuiOptionButton=CL_00000676
|
||||||
net/minecraft/client/gui/GuiOptionsRowList=CL_00000677
|
net/minecraft/client/gui/GuiOptionsRowList=CL_00000677
|
||||||
net/minecraft/client/gui/GuiOptionsRowList$Row=CL_00000678
|
net/minecraft/client/gui/GuiOptionsRowList$Row=CL_00000678
|
||||||
|
@ -1486,7 +1486,7 @@ net/minecraft/util/CryptManager=CL_00001483
|
||||||
net/minecraft/util/JsonUtils=CL_00001484
|
net/minecraft/util/JsonUtils=CL_00001484
|
||||||
net/minecraft/util/HttpUtil=CL_00001485
|
net/minecraft/util/HttpUtil=CL_00001485
|
||||||
net/minecraft/util/HttpUtil$1=CL_00001486
|
net/minecraft/util/HttpUtil$1=CL_00001486
|
||||||
net/minecraft/util/HttpUtil$DownloadListener=CL_00001487
|
#net/minecraft/util/HttpUtil$DownloadListener=CL_00001487
|
||||||
net/minecraft/server/management/LowerStringMap=CL_00001488
|
net/minecraft/server/management/LowerStringMap=CL_00001488
|
||||||
net/minecraft/crash/CrashReportCategory$Entry=CL_00001489
|
net/minecraft/crash/CrashReportCategory$Entry=CL_00001489
|
||||||
net/minecraft/util/IntHashMap=CL_00001490
|
net/minecraft/util/IntHashMap=CL_00001490
|
||||||
|
|
|
@ -53,7 +53,7 @@ import cpw.mods.fml.relauncher.FMLRelaunchLog;
|
||||||
|
|
||||||
public class AccessTransformer implements IClassTransformer
|
public class AccessTransformer implements IClassTransformer
|
||||||
{
|
{
|
||||||
private static final boolean DEBUG = false;
|
private static final boolean DEBUG = Boolean.parseBoolean(System.getProperty("fml.debugAccessTransformer", "false"));
|
||||||
private class Modifier
|
private class Modifier
|
||||||
{
|
{
|
||||||
public String name = "";
|
public String name = "";
|
||||||
|
@ -124,20 +124,20 @@ public class AccessTransformer implements IClassTransformer
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
List<String> parts = Lists.newArrayList(Splitter.on(" ").trimResults().split(line));
|
List<String> parts = Lists.newArrayList(Splitter.on(" ").trimResults().split(line));
|
||||||
if (parts.size()>2)
|
if (parts.size()>3)
|
||||||
{
|
{
|
||||||
throw new RuntimeException("Invalid config file line "+ input);
|
throw new RuntimeException("Invalid config file line "+ input);
|
||||||
}
|
}
|
||||||
Modifier m = new Modifier();
|
Modifier m = new Modifier();
|
||||||
m.setTargetAccess(parts.get(0));
|
m.setTargetAccess(parts.get(0));
|
||||||
List<String> descriptor = Lists.newArrayList(Splitter.on(".").trimResults().split(parts.get(1)));
|
|
||||||
if (descriptor.size() == 1)
|
if (parts.size() == 2)
|
||||||
{
|
{
|
||||||
m.modifyClassVisibility = true;
|
m.modifyClassVisibility = true;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
String nameReference = descriptor.get(1);
|
String nameReference = parts.get(2);
|
||||||
int parenIdx = nameReference.indexOf('(');
|
int parenIdx = nameReference.indexOf('(');
|
||||||
if (parenIdx>0)
|
if (parenIdx>0)
|
||||||
{
|
{
|
||||||
|
@ -149,7 +149,9 @@ public class AccessTransformer implements IClassTransformer
|
||||||
m.name = nameReference;
|
m.name = nameReference;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
modifiers.put(descriptor.get(0).replace('/', '.'), m);
|
String className = parts.get(1).replace('/', '.');
|
||||||
|
modifiers.put(className, m);
|
||||||
|
if (DEBUG) System.out.printf("AT RULE: %s %s %s (type %s)\n", toBinary(m.targetAccess), m.name, m.desc, className);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -163,15 +165,15 @@ public class AccessTransformer implements IClassTransformer
|
||||||
|
|
||||||
if (DEBUG)
|
if (DEBUG)
|
||||||
{
|
{
|
||||||
FMLRelaunchLog.fine("Considering all methods and fields on %s (%s)\n", name, transformedName);
|
FMLRelaunchLog.fine("Considering all methods and fields on %s (%s)\n", transformedName, name);
|
||||||
}
|
}
|
||||||
if (!modifiers.containsKey(name)) { return bytes; }
|
if (!modifiers.containsKey(transformedName)) { return bytes; }
|
||||||
|
|
||||||
ClassNode classNode = new ClassNode();
|
ClassNode classNode = new ClassNode();
|
||||||
ClassReader classReader = new ClassReader(bytes);
|
ClassReader classReader = new ClassReader(bytes);
|
||||||
classReader.accept(classNode, 0);
|
classReader.accept(classNode, 0);
|
||||||
|
|
||||||
Collection<Modifier> mods = modifiers.get(name);
|
Collection<Modifier> mods = modifiers.get(transformedName);
|
||||||
for (Modifier m : mods)
|
for (Modifier m : mods)
|
||||||
{
|
{
|
||||||
if (m.modifyClassVisibility)
|
if (m.modifyClassVisibility)
|
||||||
|
|
|
@ -20,11 +20,12 @@ public class FMLDeobfTweaker implements ITweaker {
|
||||||
@Override
|
@Override
|
||||||
public void injectIntoClassLoader(LaunchClassLoader classLoader)
|
public void injectIntoClassLoader(LaunchClassLoader classLoader)
|
||||||
{
|
{
|
||||||
// Deobfuscation transformer, always last
|
// Deobfuscation transformer, always last, and the access transformer tweaker as well
|
||||||
if (!(Boolean)Launch.blackboard.get("fml.deobfuscatedEnvironment"))
|
if (!(Boolean)Launch.blackboard.get("fml.deobfuscatedEnvironment"))
|
||||||
{
|
{
|
||||||
classLoader.registerTransformer("cpw.mods.fml.common.asm.transformers.DeobfuscationTransformer");
|
classLoader.registerTransformer("cpw.mods.fml.common.asm.transformers.DeobfuscationTransformer");
|
||||||
}
|
}
|
||||||
|
classLoader.registerTransformer("cpw.mods.fml.common.asm.transformers.AccessTransformer");
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
FMLRelaunchLog.fine("Validating minecraft");
|
FMLRelaunchLog.fine("Validating minecraft");
|
||||||
|
|
|
@ -20,7 +20,6 @@ public class FMLCorePlugin implements IFMLLoadingPlugin
|
||||||
public String[] getASMTransformerClass()
|
public String[] getASMTransformerClass()
|
||||||
{
|
{
|
||||||
return new String[] {
|
return new String[] {
|
||||||
"cpw.mods.fml.common.asm.transformers.AccessTransformer",
|
|
||||||
"cpw.mods.fml.common.asm.transformers.MarkerTransformer",
|
"cpw.mods.fml.common.asm.transformers.MarkerTransformer",
|
||||||
"cpw.mods.fml.common.asm.transformers.SideTransformer",
|
"cpw.mods.fml.common.asm.transformers.SideTransformer",
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,34 +1,34 @@
|
||||||
#Main FML Access Transformer configuration file
|
#Main FML Access Transformer configuration file
|
||||||
# TileEntity addMapping
|
# TileEntity addMapping
|
||||||
public net.minecraft.tileentity.TileEntity.func_145826_a(Ljava/lang/Class;Ljava/lang/String;)V
|
public net.minecraft.tileentity.TileEntity func_145826_a(Ljava/lang/Class;Ljava/lang/String;)V
|
||||||
# EntityList addMappings
|
# EntityList addMappings
|
||||||
public net.minecraft.entity.EntityList.func_75618_a(Ljava/lang/Class;Ljava/lang/String;I)V
|
public net.minecraft.entity.EntityList func_75618_a(Ljava/lang/Class;Ljava/lang/String;I)V
|
||||||
public net.minecraft.entity.EntityList.func_75614_a(Ljava/lang/Class;Ljava/lang/String;III)V
|
public net.minecraft.entity.EntityList func_75614_a(Ljava/lang/Class;Ljava/lang/String;III)V
|
||||||
public net.minecraft.entity.EntityList.field_75625_b #nameToClassMap
|
public net.minecraft.entity.EntityList field_75625_b #nameToClassMap
|
||||||
public net.minecraft.entity.EntityList.field_75626_c #classToNameMap
|
public net.minecraft.entity.EntityList field_75626_c #classToNameMap
|
||||||
public net.minecraft.entity.EntityList.field_75623_d #idToClassMap
|
public net.minecraft.entity.EntityList field_75623_d #idToClassMap
|
||||||
## RenderEngine
|
## RenderEngine
|
||||||
##public bba.h #FD:RenderEngine/field_78367_h #textureList # -- MISSING MAPPING # -- MISSING MAPPING
|
##public bba.h #FD:RenderEngine/field_78367_h #textureList # -- MISSING MAPPING # -- MISSING MAPPING
|
||||||
##public bge.g #FD:RenderEngine/field_78366_k #texturePack # -- MISSING MAPPING
|
##public bge.g #FD:RenderEngine/field_78366_k #texturePack # -- MISSING MAPPING
|
||||||
## RenderManager
|
## RenderManager
|
||||||
public net.minecraft.client.renderer.entity.RenderManager/field_78729_o #renderers
|
public net.minecraft.client.renderer.entity.RenderManager field_78729_o #renderers
|
||||||
## RenderBlocks - everything
|
## RenderBlocks - everything
|
||||||
#public bfr.* #FD:RenderBlocks/*
|
#public bfr.* #FD:RenderBlocks/*
|
||||||
#public bfr.*() #MD:RenderBlocks/*
|
#public bfr.*() #MD:RenderBlocks/*
|
||||||
##RenderPlayer
|
##RenderPlayer
|
||||||
##public-f bht.h #FD:RenderPlayer/field_77110_j #armorlist # -- MISSING MAPPING
|
##public-f bht.h #FD:RenderPlayer/field_77110_j #armorlist # -- MISSING MAPPING
|
||||||
##RenderBiped
|
##RenderBiped
|
||||||
public-f net.minecraft.client.renderer.entity.RenderBiped.field_82424_k #armorlist
|
public-f net.minecraft.client.renderer.entity.RenderBiped field_82424_k #armorlist
|
||||||
##StringTranslate
|
##StringTranslate
|
||||||
##public bp.b #FD:StringTranslate/field_74815_b # -- MISSING MAPPING
|
##public bp.b #FD:StringTranslate/field_74815_b # -- MISSING MAPPING
|
||||||
##public bp.e #FD:StringTranslate/field_74813_d # -- MISSING MAPPING
|
##public bp.e #FD:StringTranslate/field_74813_d # -- MISSING MAPPING
|
||||||
## TileEntityRendererDispatcher
|
## TileEntityRendererDispatcher
|
||||||
public net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher.field_147559_m
|
public net.minecraft.client.renderer.tileentity.TileEntityRendererDispatcher field_147559_m
|
||||||
## CraftingManager - make the add recipe methods public
|
## CraftingManager - make the add recipe methods public
|
||||||
public net.minecraft.item.crafting.CraftingManager.func_92103_a(Lnet.minecraft.item.ItemStack;[Ljava/lang/Object;)Lnet.minecraft.item.crafting.ShapedRecipes;
|
public net.minecraft.item.crafting.CraftingManager func_92103_a(Lnet.minecraft.item.ItemStack;[Ljava/lang/Object;)Lnet.minecraft.item.crafting.ShapedRecipes;
|
||||||
public net.minecraft.item.crafting.CraftingManager.func_77596_b(Lnet.minecraft.item.ItemStack;[Ljava/lang/Object;)V
|
public net.minecraft.item.crafting.CraftingManager func_77596_b(Lnet.minecraft.item.ItemStack;[Ljava/lang/Object;)V
|
||||||
## WeightedRandomItem
|
## WeightedRandomItem
|
||||||
public net.minecraft.util.WeightedRandom$Item.field_76292_a #probability
|
public net.minecraft.util.WeightedRandom$Item field_76292_a #probability
|
||||||
## ItemStack
|
## ItemStack
|
||||||
##public+f tv.c #FD:ItemStack/field_77993_c #itemId
|
##public+f tv.c #FD:ItemStack/field_77993_c #itemId
|
||||||
## StatBase
|
## StatBase
|
||||||
|
@ -37,8 +37,8 @@ public net.minecraft.util.WeightedRandom$Item.field_76292_a #probability
|
||||||
#public jy.a(Ljy;Z)Z #MD:NetLoginHandler/func_72531_a #'complete connection'
|
#public jy.a(Ljy;Z)Z #MD:NetLoginHandler/func_72531_a #'complete connection'
|
||||||
#public jy.g #FD:NetLoginHandler/field_72543_h #userName
|
#public jy.g #FD:NetLoginHandler/field_72543_h #userName
|
||||||
## EntityPlayerMP getNextWindowId
|
## EntityPlayerMP getNextWindowId
|
||||||
public net.minecraft.entity.player.EntityPlayerMP.func_71117_bO()V
|
public net.minecraft.entity.player.EntityPlayerMP func_71117_bO()V
|
||||||
public net.minecraft.entity.player.EntityPlayerMP.field_71139_cq
|
public net.minecraft.entity.player.EntityPlayerMP field_71139_cq
|
||||||
## EntityAITaskEntry
|
## EntityAITaskEntry
|
||||||
#public pu #CL:EntityAITaskEntry
|
#public pu #CL:EntityAITaskEntry
|
||||||
## EntityAITasks
|
## EntityAITasks
|
||||||
|
@ -65,17 +65,17 @@ public net.minecraft.entity.player.EntityPlayerMP.field_71139_cq
|
||||||
## StructureStart
|
## StructureStart
|
||||||
#public aiv.a #FD:StructureStart/field_75075_a
|
#public aiv.a #FD:StructureStart/field_75075_a
|
||||||
## EntityVillager - minmax lists
|
## EntityVillager - minmax lists
|
||||||
public net.minecraft.entity.passive.EntityVillager.func_146091_a(Lnet/minecraft/village/MerchantRecipeList;Lnet/minecraft/item/Item;Ljava/util/Random;F)V # buy
|
public net.minecraft.entity.passive.EntityVillager func_146091_a(Lnet/minecraft/village/MerchantRecipeList;Lnet/minecraft/item/Item;Ljava/util/Random;F)V # buy
|
||||||
public net.minecraft.entity.passive.EntityVillager.func_146089_b(Lnet/minecraft/village/MerchantRecipeList;Lnet/minecraft/item/Item;Ljava/util/Random;F)V # sell
|
public net.minecraft.entity.passive.EntityVillager func_146089_b(Lnet/minecraft/village/MerchantRecipeList;Lnet/minecraft/item/Item;Ljava/util/Random;F)V # sell
|
||||||
public net.minecraft.entity.passive.EntityVillager.field_70958_bB
|
public net.minecraft.entity.passive.EntityVillager field_70958_bB
|
||||||
public net.minecraft.entity.passive.EntityVillager.field_70960_bC
|
public net.minecraft.entity.passive.EntityVillager field_70960_bC
|
||||||
## GuiButtonMerchant
|
## GuiButtonMerchant
|
||||||
#public axx #CL:GuiButtonMerchant
|
#public axx #CL:GuiButtonMerchant
|
||||||
# Minecraft
|
# Minecraft
|
||||||
#public atv.D #FD:Minecraft/field_71425_J #running
|
#public atv.D #FD:Minecraft/field_71425_J #running
|
||||||
public net.minecraft.client.Minecraft.field_71446_o # textureManager
|
public net.minecraft.client.Minecraft field_71446_o # textureManager
|
||||||
|
|
||||||
protected net.minecraft.util.ObjectIntIdentityMap.field_148749_a # internal map
|
protected net.minecraft.util.ObjectIntIdentityMap field_148749_a # internal map
|
||||||
protected net.minecraft.util.ObjectIntIdentityMap.field_148748_b # internal index list
|
protected net.minecraft.util.ObjectIntIdentityMap field_148748_b # internal index list
|
||||||
protected-f net.minecraft.util.RegistryNamespaced.field_148759_a # identitymap
|
protected-f net.minecraft.util.RegistryNamespaced field_148759_a # identitymap
|
||||||
protected net.minecraft.util.RegistryNamespaced.func_148755_c(Ljava/lang/String;)Ljava/lang/String; # prefix if necessary
|
protected net.minecraft.util.RegistryNamespaced func_148755_c(Ljava/lang/String;)Ljava/lang/String; # prefix if necessary
|
||||||
|
|
Loading…
Reference in New Issue