Advertisement
spacechase0

SpelunkerAccessTransformer

Jan 12th, 2013
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.00 KB | None | 0 0
  1. package com.spacechase0.minecraft.spelunkerdim.asm;
  2.  
  3. import cpw.mods.fml.relauncher.FMLRelauncher;
  4. import cpw.mods.fml.relauncher.IClassTransformer;
  5. import java.util.List;
  6. import org.objectweb.asm.*;
  7. import org.objectweb.asm.tree.*;
  8. import static org.objectweb.asm.Opcodes.*;
  9. import static org.objectweb.asm.ClassWriter.*;
  10.  
  11. public class SpelunkerAccessTransformer implements IClassTransformer
  12. {
  13.     public SpelunkerAccessTransformer()
  14.     {
  15.     }
  16.    
  17.     public byte[] transform( String name, byte[] bytes )
  18.     {
  19.         ClassNode node = new ClassNode();
  20.         ClassReader reader = new ClassReader( bytes );
  21.         reader.accept( node, 0 );
  22.        
  23.         EnchantmentListMainInterceptor elmi = new EnchantmentListMainInterceptor();
  24.         node.accept( elmi );
  25.        
  26.         if ( EnchantmentListSubInterceptor.didChangeSomething() )
  27.         {
  28.             ClassWriter cw = new ClassWriter( COMPUTE_FRAMES | COMPUTE_MAXS );
  29.             node.accept( cw );
  30.             bytes = cw.toByteArray();
  31.         }
  32.        
  33.         return bytes;
  34.     }
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement