简介
本模组将高版本 Forge 提供的按键修饰符(KeyModifier)和按键冲突情景(IKeyConflictContext)移植到 Fabric 和 低版本 Forge。
功能
配置文件说明
Forge
.minecraft\config\ModernKeyBinding.cfg:
general {
# 全键无冲功能,设置为 true 以启用。 [默认值:false]
B:nonConflictKeys=false
}Fabric
.minecraft\config\ModernKeyBinding-Config.properties:
#ModernKeyBinding-Config
nonConflictKeys=true
对于开发者
添加依赖
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}"
}使用示例
注册按键绑定
注册键位为 Alt + C、仅在 GUI 界面可用的按键绑定:
public void foo() {
...
yourKeyBinding = KeyBindingRegistry.INSTANCE.registerKeyBinding("key.exampleKey",
KeyConflictContext.GUI, KeyModifier.ALT, Keyboard.KEY_C, "key.categories.example");
}更改已有按键绑定属性
public void foo() {
final IKeyBinding extended = (IKeyBinding) yourKeyBinding;
// 更改键位和修饰符,且设为默认
extended.setInitialKeyModifierAndCode(KeyModifier.ALT, Keyboard.KEY_E);
// 更改键位和修饰符
extended.setKeyModifierAndCode(KeyModifier.ALT, Keyboard.KEY_E);
// 更改按键冲突情景
extended.setKeyConflictContext(KeyConflictContext.IN_GAME);
}兼容性提示
Forge 1.7.10
若出现任何兼容问题,请使用 mixinless 版并安装 UniMixins 作为 Mixin 加载器;
如果出现类似如下的崩溃报错,请安装 安全键位名。
java.lang.ArrayIndexOutOfBoundsException: XXX at org.lwjgl.input.Keyboard.getKeyName(Keyboard.java:429)
Fabric
注意事项