跳到正文
本頁目錄

🔔 事件監聽 API

事件系統讓插件可以 響應 特定的遊戲事件,讓你可以在特定事件發生時執行代碼

下面這些API,提供了監聽遊戲事件並做出響應的相關能力。

🔔 監聽 API

註冊指定的監聽函數。
當遊戲中的某種事件發生時,你設置的對應的監聽函數將被引擎調用,這時候你可以對相關事件進行處理。

註冊監聽器

mc.listen(event,callback)

  • 參數:

  • event : String
    要監聽的事件名(見下方監聽事件列表)

  • callback : Function
    註冊的監聽函數(函數相關參數見下)
    當指定的事件發生時,BDS會調用你給出的監聽函數,並傳入相應的參數

  • 返回值:是否成功監聽事件

  • 返回值類型:Boolean

攔截事件

在腳本引擎的事件監聽系統中,一般你可以通過返回false來攔截某個可以被攔截的事件。攔截事件意味著在腳本攔截之後BDS將不再處理這個事件,就像他從沒發生過一樣。
舉例:攔截某條聊天事件,會造成所有人都看不到這條聊天消息

不過,攔截事件僅對BDS有效。
也就是說,攔截事件並不影響其他有對應監聽的腳本引擎腳本處理這個事件,只是BDS無法再接收到它。

避開誤區

有些時候,在某些事件監聽內部調用特定的API會造成死循環崩服,請務必避免這些情況的發生
舉例:在onConsoleCmd事件監聽中調用mc.runcmd(Ex)系列函數執行後臺指令,將導致死循環

📜 監聽事件列表

側邊欄中給出了腳本引擎支持監聽的各種事件的列表。

提示:你可以根據監聽得到的遊戲對象來獲取他們的相關信息,比如說方塊的座標、實體的名字等等。
同時,這些對象的成員函數也都可以被調用。

注意!傳入的回調參數中,有些有時候可能為 Null,這需要在編寫代碼的時候做好判斷檢查