modsmith Log in Log in Рус / Eng

Modern KeyBinding

modernkeybinding · 665175 downloads · LicenseRef-All-Rights-Reserved

client: required · server: unsupported (declared by the mod author)

Port KeyModifier && KeyConflictContext back to Fabric & Early Forge

Description

Modern KeyBinding

The mod ported the newer version's KeyModifier && KeyConflictContext back to Fabric & Early Forge.

Features

You can now define a keybinding's activation key with key modifiers. Like "Ctrl + G" or "Alt + S";

The keybindings with the same activation key but different key conflict contexts no longer conflict.

"Non-conflict keys" (disabled by default): The keybindings with the same key will all be activated if the key is pressed.

Attention:

The mod will crash with NEI. Use NEI Unofficial(Dependencies: CodeChickenCore | CodeChickenLib) by GTNH instead.

Import as a Gradle dependency

repositories {
    //...
    maven {
        url "https://maven.nova-committee.cn/releases"
    }
}
dependencies {
    //...
    // Forge
    implementation "committee.nova.mkb.forge:mkb-${mc_version}:${mod_version}"
    // Fabric
    modImplementation "committee.nova.mkb.fabric:mkb-${mc_version}:${mod_version}"
}

Register a keybinding

Register a keybinding that:

  • Activates when Alt and C are pressed;

  • Only available in GUI.

ClientProxy.java

public class ClientProxy {
    public void init(final FMLInitializationEvent event) {
        //...
        yourKeyBinding = KeyBindingRegistry.INSTANCE.registerKeyBinding("key.exampleKey", KeyConflictContext.GUI, KeyModifier.ALT, Keyboard.KEY_C, "key.categories.example");
    }
}

Change the properties of an existing keybinding

ClientProxy.java

public class ClientProxy {
    //...
    public void postInit(final FMLPostInitializationEvent event) {
        final IKeyBinding extended = (IKeyBinding) yourKeyBinding;
        // Change the key's keyCode and modifier, as their default values.
        extended.setInitialKeyModifierAndCode(KeyModifier.ALT, Keyboard.KEY_E);
        // Change the key's keyCode and modifier.
        extended.setKeyModifierAndCode(KeyModifier.ALT, Keyboard.KEY_E);
        // Change the key's conflict context.
        extended.setKeyConflictContext(KeyConflictContext.IN_GAME);
    }
}

Versions (15)

VersionMinecraftLoadersFile
1.20.4-1.3.0 1.20.4 fabric download
1.20.X-1.2.0 1.20, 1.20.1 fabric download
1.20-1.1.0 1.20 fabric download
1.19.4-1.1.0 1.19.4 fabric download
1.19.2-1.1.0 1.19.2 fabric download
1.18.2-1.1.0 1.18.2 fabric download
1.16.5-1.1.0 1.16.5 fabric download
1.19.4-1.0.0 1.19.4 fabric download
1.19.2-1.0.0 1.19.2 fabric download
1.18.2-1.0.0 1.18.2 fabric download
1.16.5-1.0.0 1.16.5 fabric download
LegacyFabric-1.8.9-1.0.0 1.8.9 fabric download
LegacyFabric-1.7.10-1.0.0 1.7.10 fabric download
Forge-1.8.9-2.1.0 1.8.9 forge download
Forge-1.7.10-2.1.0 1.7.10 forge download

Modrinth page →