I'm now running atomicstryker's simplyhax source code for transformer testing in IntelliJ with minecraft 1.7.2 workspace.
I think I do the right things.
Here is the MANIFEST.MF
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.4
Created-By: 1.7.0 (Oracle Corporation)
FMLCorePlugin: atomicstryker.simplyhax.SHFMLCorePlugin
And SHFMLCorePlugin.java
package atomicstryker.simplyhax;
import java.util.Map;
import cpw.mods.fml.relauncher.IFMLLoadingPlugin;
public class SHFMLCorePlugin implements IFMLLoadingPlugin
{
@Override
public String[] getASMTransformerClass()
{
return new String[] { "atomicstryker.simplyhax.SHTransformer" };
}
@Override
public String getModContainerClass()
{
return null;
}
@Override
public String getSetupClass()
{
return null;
}
@Override
public void injectData(Map<String, Object> data)
{
}
@Override
public String getAccessTransformerClass()
{
return null;
}
}
SHTransformer.java
public class SHTransformer implements IClassTransformer
{
/* class net.minecraft.src.EntityPlayerSP */
private final String classNamePlayerObfusc = "bex";
private final String classNamePlayer = "net.minecraft.client.entity.EntityPlayerSP";
@Override
public byte[] transform(String name, String newName, byte[] bytes)
{
System.out.println("transforming: "+name); // I saw nothing about transforming in output window.
if (name.equals(classNamePlayerObfusc))
{
return handleTransform(bytes, true);
}
else if (name.equals(classNamePlayer))
{
return handleTransform(bytes, false);
}
return bytes;
}