我的世界Minecraft 1.19 Mod开发教程分享-13-自定义按键
创建文件夹和目录
创建如下的目录结构
tutorialmod\util\KeyBinding.java

在KeyBind加入如下的代码:
KeyMapping是一个处理键盘和鼠标输入的类,可以让你绑定按键
第一参数是string类型的,对按键的描述
第二参数是KeyConflictContext,处理按键冲突,用于判断按键是在某个位置,这里选择的是游戏中

第三参数是InputConstants.Type是一个枚举,表示输入的设备,这里是键盘

第四个参数是绑定的按键,这里是字母o,

第五个参数是category

添加翻译
这里的两个名称对应了我们之前的设置的名称。


注册自定义的按键
创建如下的目录
tutorialmod/event/ClientEvents

在该类中加入如下的代码
Mod.EventBusSubscriber注解表示在总线上注册事件的监听器,表示该类方法订阅了总线的静态方法。
其中 bus表示是那个条总线,mod或者是forge
modid 表示监听的那个mod
value 表示在那个服务器有效,例如Dist.Client表示客户端。
SubscribeEvent注解标记事件处理的注解,表示订阅了某个事件总线上的某个事件,在该事件发布时候,会被调用。
仅修饰静态方法。
必须有一个事件参数
没有返回值
KeyBinding.DRINKING_KEY.consumeClick() 是按键被按下。
InputEvent.Key 是键盘按键相关的事件,在键盘按下后会触发。
RegisterKeyMappingsEvent是注册键盘映射的事件,尽在客户端,mod总线上触发。
按住Ctrl点击key

发现这个事件仅仅在客户端执行。注册在forge总线

所以在这里通过Minecraft获得player必定是当前的操作的玩家。

在RegisterKeyMappingsEvent类中,我们同样可以看到,这个事件在Mod总线上,并且尽在客户端执行。


测试
可以看到注册成功了

每按一次o就有一条消息
