PacketListenerAPI PacketListenerAPI是一个简便的数据包处理API,它提供了接受和发送数据包的功能,同时也包含了对一些数据包内容的修改,比较适用于改变游戏特性。
添加依赖
A.通过Maven
如果你是通过Maven来构建自己插件的,那么把Vault添加到依赖中十分简单。
打开pom.xml,在<repositories>....</repositories>代码段中加入以下内容:
- <repository>
- <id>inventive-repo</id>
- <url>https://repo.inventivetalent.org/content/groups/public/</url>
- </repository>
复制代码
然后,在<dependencies>....</dependencies>代码段中加入以下内容:
- <dependency>
- <groupId>org.inventivetalent.packetlistener</groupId>
- <artifactId>api</artifactId>
- <version>3.5.2-SNAPSHOT</version>
- </dependency>
复制代码
保存文件,你的Eclipse会在后台自动为你下载依赖。
你问我代码缩进?被论坛吃了,用你的IDE自动进行代码格式化吧。 | B.通过常规方法
这里的常规方法指的是通过直接创建默认的Java项目来开发插件的,我认为这是一种很不好的开发习惯。
- 下载插件,链接:点我
- 右键项目,点击属性。
- 在Java构建路径中,点击添加外部Jar。
- 选中刚刚下载好的插件,点击确定。
其实这些步骤就和你当初导入服务端核心是一样的。
| 在plugin.yml中声明依赖
打开plugin.yml,在里面添加下面这行代码:
- depend: [PacketListenerAPI]
复制代码 |
使用API
在你的插件中加入下面这样的代码,即可通过API管理数据包。
- PacketListenerAPI.addPacketHandler(new PacketHandler() {
- @Override
- public void onSend(SentPacket packet) {
- //发送数据时触发
- }
- @Override
- public void onReceive(ReceivedPacket packet) {
- //接收数据时触发
- }
- });
复制代码
然后,我们只需要在相应方法内进行判断即可:
- if (packet.getPacketName().equals("PacketPlayOutSpawnEntity")) {
- // 实体生成
- }
复制代码
以及修改内容..
- if(packet.getPacketName().equals("PacketPlayOutSpawnEntity")) {
- packet.setPacketValue("f", <EntityID>);//f 在这个数据包中的定义为实体类型,数据类型是整数。
- }
复制代码 这就是最简单的使用方法,以至于你如何使用,就看你的创造能力了。
后话
如果你在使用过程中遇到了问题,下面这些链接说不定能帮助到你:
如果你还有什么疑问,也可以在这个帖子下提出。
如果本帖有什么错误,还请各位批评指正!
最后,向API作者@inventivetalent致敬,一位了不起的人。 |