【攻略】插件製作教學-4.事件的監聽

原代碼

從這章開始將不會把代碼打在文內

會直接引用Github上面放的原代碼。

1.這章大概要做的事

創建玩家各自的設置檔
使用/sethome 參數 ,保存多個座標到設置檔
使用/home 參數 讀取設置檔的座標,並發送過去。

創建玩家各自的對象(類似身分證,紀錄一些個人的東西)
並在玩家死亡時保存座標至對象裡面。
使用/back指令發送到該死亡座標。

2.創建事件監聽

首先到Spigot的說明書網站,找到需要的監聽。(說明書鏈接)
目前需要用到三種監聽事件。
玩家登錄。(在登錄時創建設置檔,還有玩家對象)
玩家註銷。(刪除玩家對象,可以節省內存)
玩家死亡。(紀錄死亡座標到玩家對象)

有關事件可以查找有evetn的地方。
第一個要找玩家登錄的事件,因為這事件只有玩家有。
可以到event.player裡面找,事件名稱的英文意思都蠻明顯的
,如果不確定可以點下去,看裡面的說明。
註銷也是在event.player裡面找。
第三個玩家死亡事件,因為不只有玩家會死。
所以要到event.entity實體有關的事件去找。
找完就創建一個文件夾listener,來存放有關事件監聽的對象。
還有創建PlayerListener對象。
在把剛剛查到的事件方法,加到PlayerListener裡面去。
代碼
在主類註冊此監聽對象(代碼)

3.創建個人對象和設置檔

個人對象類似身分證,但可以保存更多的東西。
創建一個playerdata文件夾來存放有關個人的東西。
在裡面創建PlayerData對象。
在PlayerData裡面加入一些設置。
首先加入設置檔的創建、讀取、還有保存功能。
在加入sethome、home、死亡存位置和/back回到死亡位置的方法。
代碼

4.把創建的個人對象存放至Map

當一個對象要在各種地方使用,通常都會存放到Map裡面,以方便獲取。
Map類似Excel只是他只有兩行。
我們可以利用第一行的值,來獲取第2行相對應的東西。
因為玩家UUID是唯一的(名子可以改),通常會用UUID來當關鍵字。
玩家1UUID PlayerData
玩家2UUID PlayerData
玩家3UUID PlayerData

先創建一個文件夾manager來存放Map相關的東西。
在裡面創建PlayerManger對象。
在PlayerManger加入一行靜態的Map,這樣Map就完成了。

5.把玩家對象和Map放置監聽使用

玩家登錄時創建PlayerData(代碼)
玩家註銷時移除PlayerData。
玩家死亡時保存死亡位置

6.創建指令

在指令對象裡面加入代碼,因為剛剛方法都寫在PlayerData對象裡面了
所以只要使用就好,順便發個消息讓用戶知道,有使用指令。
指令提示就不多說了。
代碼

7.測試是否有錯誤

登錄確實生成設置檔
因為圖片不好表示結果,就放個影片代替。

8.加入討論群

本文來自網路,不代表3樓貓立場,轉載請註明出處:https://www.3loumao.org/16526.html?variant=zh-tw
返回頂部