🔔 事件監聽 API
事件系統讓插件可以 響應 特定的遊戲事件,讓你可以在特定事件發生時執行代碼
下面這些API,提供了監聽遊戲事件並做出響應的相關能力。
🔔 監聽 API
註冊指定的監聽函數。
當遊戲中的某種事件發生時,你設置的對應的監聽函數將被引擎調用,這時候你可以對相關事件進行處理。
註冊監聽器
mc.listen(event,callback)
-
參數:
-
event :
String
要監聽的事件名(見下方監聽事件列表) -
callback :
Function
註冊的監聽函數(函數相關參數見下)
當指定的事件發生時,BDS會調用你給出的監聽函數,並傳入相應的參數 -
返回值:是否成功監聽事件
-
返回值類型:
Boolean
攔截事件
在腳本引擎的事件監聽系統中,一般你可以通過返回false來攔截某個可以被攔截的事件。攔截事件意味著在腳本攔截之後BDS將不再處理這個事件,就像他從沒發生過一樣。
舉例:攔截某條聊天事件,會造成所有人都看不到這條聊天消息
不過,攔截事件僅對BDS有效。
也就是說,攔截事件並不影響其他有對應監聽的腳本引擎腳本處理這個事件,只是BDS無法再接收到它。
避開誤區
有些時候,在某些事件監聽內部調用特定的API會造成死循環崩服,請務必避免這些情況的發生
舉例:在onConsoleCmd事件監聽中調用mc.runcmd(Ex)系列函數執行後臺指令,將導致死循環
📜 監聽事件列表
側邊欄中給出了腳本引擎支持監聽的各種事件的列表。
提示:你可以根據監聽得到的遊戲對象來獲取他們的相關信息,比如說方塊的座標、實體的名字等等。
同時,這些對象的成員函數也都可以被調用。
注意!傳入的回調參數中,有些有時候可能為 Null,這需要在編寫代碼的時候做好判斷檢查