Fast Block Place Mod 1.8.9 〈DIRECT • 2024〉
package com.example.fastblockplace; import net.minecraft.launchwrapper.IClassTransformer; import org.objectweb.asm.*;
import java.util.logging.Logger;
dependencies { compile 'org.ow2.asm:asm-debug-all:5.0.3' } Create src/main/resources/META-INF/fastblockplace_at.cfg : fast block place mod 1.8.9
private static class PatchClickBlock extends MethodVisitor { public PatchClickBlock(MethodVisitor mv) { super(Opcodes.ASM4, mv); }
This mod removes the delay between placing blocks, allowing you to place them as fast as you can click (limited only by the server’s entity-action rate). It uses to patch the client-side PlayerControllerMP class, which is the most reliable method for 1.8.9. Project Structure FastBlockPlace/ ├── src/main/java/com/example/fastblockplace/ │ ├── FastBlockPlaceMod.java │ ├── Transformer.java │ └── Plugin.java └── src/main/resources/ └── mcmod.info 1. FastBlockPlaceMod.java – Core Mod Class package com.example.fastblockplace; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import org.apache.logging.log4j.Logger; package com
jar { manifest { attributes( 'FMLCorePlugin': 'com.example.fastblockplace.Plugin', 'FMLCorePluginContainsFMLMod': 'true', 'FMLAT': 'fastblockplace_at.cfg' ) } }
@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; } FastBlockPlaceMod
@IFMLLoadingPlugin.MCVersion("1.8.9") public class Plugin implements IFMLLoadingPlugin { @Override public String[] getASMTransformerClass() { return new String[]{"com.example.fastblockplace.Transformer"}; }
@Override public String getSetupClass() { return null; }