Fast Block Place Mod 1.8.9 Page
@IFMLLoadingPlugin.MCVersion("1.8.9") public class Plugin implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { return new String[]{"com.example.fastblockplace.Transformer"}; }
@Mod.EventHandler public void preInit(FMLPreInitializationEvent event) { logger = event.getModLog(); logger.info("FastBlockPlace Mod is initializing (1.8.9)"); } fast block place mod 1.8.9
@Override public void visitFieldInsn(int opcode, String owner, String name, String desc) { // Skip storing the 4 into blockHitDelay if (opcode == Opcodes.PUTFIELD && name.equals("blockHitDelay")) { LOGGER.info("Patched: prevented blockHitDelay assignment"); return; } super.visitFieldInsn(opcode, owner, name, desc); } } } package com.example.fastblockplace; import net.minecraftforge.fml.relauncher.IFMLLoadingPlugin; import java.util.Map; @IFMLLoadingPlugin
jar { manifest { attributes( 'FMLCorePlugin': 'com.example.fastblockplace.Plugin', 'FMLCorePluginContainsFMLMod': 'true', 'FMLAT': 'fastblockplace_at.cfg' ) } } logger.info("FastBlockPlace Mod is initializing (1.8.9)")
@Mod(modid = FastBlockPlaceMod.MODID, version = FastBlockPlaceMod.VERSION, clientSideOnly = true) public class FastBlockPlaceMod { public static final String MODID = "fastblockplace"; public static final String VERSION = "1.0"; public static Logger logger;
@Override public byte[] transform(String name, String transformedName, byte[] basicClass) { if (basicClass == null) return null; if (transformedName.equals("net.minecraft.client.multiplayer.PlayerControllerMP")) { LOGGER.info("Patching PlayerControllerMP for fast block place"); return patchPlayerControllerMP(basicClass); } return basicClass; }
@Override public void injectData(Map<String, Object> data) {}