本模组将高版本 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
原生兼容 NMUK;
从本模组 Fabric-1.20-1.2.0 版开始,兼容键位冲突显示(Fabric-1.20.1-12.0.2+);
不兼容 Amecs。
注意事项