// Path: src/main/java/com/techjar/vivecraftforge/util/VivecraftForgeLog.java
// public class VivecraftForgeLog {
// 	public static void info(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.INFO, message, data);
// 	}
// 
// 	public static void warning(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.WARN, message, data);
// 	}
// 
// 	public static void severe(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.ERROR, message, data);
// 	}
// 
// 	public static void debug(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.DEBUG, message, data);
// 	}
// }


import java.util.ArrayList;
import java.util.List;
import com.techjar.vivecraftforge.core.asm.handler.*;
import com.techjar.vivecraftforge.util.VivecraftForgeLog;
import net.minecraft.launchwrapper.IClassTransformer;
package com.techjar.vivecraftforge.core.asm;




public class ClassTransformer implements IClassTransformer {
	private static final List<ASMClassHandler> asmHandlers = new ArrayList<ASMClassHandler>();
	static {
		asmHandlers.add(new ASMHandlerIncreaseReachDistance());
		asmHandlers.add(new ASMHandlerCreeperRadius());
		asmHandlers.add(new ASMHandlerEndermanLook());
		asmHandlers.add(new ASMHandlerRubberBanding());
	}

	@Override
	public byte[] transform(String name, String transformedName, byte[] bytes) {
		for (ASMClassHandler handler : asmHandlers) {
			if (!handler.shouldPatchClass()) continue;
			ClassTuple tuple = handler.getDesiredClass();
			if (name.equals(tuple.classNameObf)) {
// Path: src/main/java/com/techjar/vivecraftforge/util/VivecraftForgeLog.java
// public class VivecraftForgeLog {
// 	public static void info(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.INFO, message, data);
// 	}
// 
// 	public static void warning(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.WARN, message, data);
// 	}
// 
// 	public static void severe(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.ERROR, message, data);
// 	}
// 
// 	public static void debug(String message, Object... data) {
// 		FMLRelaunchLog.log("Vivecraft Forge Extensions", Level.DEBUG, message, data);
// 	}
// }


// Path: src/main/java/com/techjar/vivecraftforge/core/asm/ClassTransformer.java
import java.util.ArrayList;
import java.util.List;
import com.techjar.vivecraftforge.core.asm.handler.*;
import com.techjar.vivecraftforge.util.VivecraftForgeLog;
import net.minecraft.launchwrapper.IClassTransformer;

package com.techjar.vivecraftforge.core.asm;




public class ClassTransformer implements IClassTransformer {
	private static final List<ASMClassHandler> asmHandlers = new ArrayList<ASMClassHandler>();
	static {
		asmHandlers.add(new ASMHandlerIncreaseReachDistance());
		asmHandlers.add(new ASMHandlerCreeperRadius());
		asmHandlers.add(new ASMHandlerEndermanLook());
		asmHandlers.add(new ASMHandlerRubberBanding());
	}

	@Override
	public byte[] transform(String name, String transformedName, byte[] bytes) {
		for (ASMClassHandler handler : asmHandlers) {
			if (!handler.shouldPatchClass()) continue;
			ClassTuple tuple = handler.getDesiredClass();
			if (name.equals(tuple.classNameObf)) {
				VivecraftForgeLog.debug("Patching class: " + name + " (" + tuple.className + ") using " + handler.getClass().getSimpleName());