← Назад к ресурсам

Modern KeyBinding

Port KeyModifier && KeyConflictContext back to Fabric & Early Forge

Modrinth library utility

Описание

# 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](https://www.curseforge.com/minecraft/mc-mods/notenoughitems-gtnh)(Dependencies: [CodeChickenCore](https://github.com/GTNewHorizons/CodeChickenCore/releases) | [CodeChickenLib](https://github.com/GTNewHorizons/CodeChickenLib/releases)) 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); } } ```