【攻略】插件制作教学-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
返回顶部