Modern KeyBinding
Port KeyModifier && KeyConflictContext back to Fabric & Early Forge
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
Modern KeyBinding
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
```groovy repositories { //... maven { url "https://maven.nova-committee.cn/releases" } } ```
```groovy 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
```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
```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); } } ```