Compatibility
Minecraft: Java Edition
1.20.4
1.20–1.20.1
1.19.4
1.19.2
1.18.2
1.16.5
1.8.9
1.7.10
Platforms
Fabric
Supported environments
90% of ad revenue goes to creators
Support creators and Modrinth ad-free with Modrinth+Creators
Details
Licensed ARR
Published 2 years ago
Updated 9 months ago
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);
}
}