脚本引擎 - 事件监听文档
事件系统让插件可以 响应 特定的游戏事件,让你可以在特定事件发生时执行代码
下面这些API,提供了监听游戏事件并做出响应的相关能力。
🔔 监听 API
注册指定的监听函数。
当游戏中的某种事件发生时,你设置的对应的监听函数将被引擎调用,这时候你可以对相关事件进行处理。
注册监听器
mc.listen(event,callback)
-
参数:
-
event :
String
要监听的事件名(见下方监听事件列表) -
callback :
Function
注册的监听函数(函数相关参数见下)
当指定的事件发生时,BDS会调用你给出的监听函数,并传入相应的参数 - 返回值:是否成功监听事件
- 返回值类型:
Boolean
拦截事件
在脚本引擎的事件监听系统中,一般你可以通过返回false
来拦截某个可以被拦截的事件。拦截事件意味着在脚本拦截之后BDS将不再处理这个事件,就像他从没发生过一样。
举例:拦截某条聊天事件,会造成所有人都看不到这条聊天消息
不过,拦截事件仅对BDS有效。
也就是说,拦截事件并不影响其他有对应监听的脚本引擎脚本处理这个事件,只是BDS无法再接收到它。
避开误区
有些时候,在某些事件监听内部调用特定的API会造成死循环崩服,请务必避免这些情况的发生
举例:在onConsoleCmd
事件监听中调用mc.runcmd(Ex)
系列函数执行后台指令,将导致死循环
📜 监听事件列表
侧边栏中给出了脚本引擎支持监听的各种事件的列表。
提示:你可以根据监听得到的游戏对象来获取他们的相关信息,比如说方块的坐标、实体的名字等等。
同时,这些对象的成员函数也都可以被调用。
注意!传入的回调参数中,有些有时候可能为 Null,这需要在编写代码的时候做好判断检查