[2LS] HamsterAPI
作者:Sammwy
发布时间:2020年5月14日
原生版本:未知
测试支持:1.8,1.9,1.10,1.11,1.12,1.13,1.14,1.15,1.16,1.17
简单易用的API读写包。
点此下载插件详细介绍
HamsterAPI 是一个小型库,用于监听传入和传出的数据包,并能读取、修改和取消它们。它还允许你轻松地向玩家发送数据包,而无需在你的插件中使用反射或 NMS。
🎉HamsterAPI 简介
HamsterAPI 可以做什么?
- 向玩家发送 Title、Subtitle、ActionBar 和数据包。
- 监听基于优先级和取消的传入和传出数据包事件。
- 安全/立即断开玩家连接。
- 与 BungeeCord 通信(踢出、切换服务器、发送消息通道等)。
未来,HamsterAPI 还将包含:
- BossBar API
- 客户端 <-> 服务器通过自定义通道通信(适用于 Modded 客户端)
- Bungeecord 监听器
如何使用 HamsterAPI?
起步
第一步是获取 HamsterAPI 实例,以便使用静态方法 HamsterAPI.getInstance() 访问 API 的大多数方法。
从 HamsterAPI 实例,你可以访问以下方法:
getBufferIO()- 用于将 bytebufs 分割/解压缩/解码为数据包的工具。getBungeeMessenger()- 用于简化与 BungeeCord 的 CustomPayload 通信的工具。getReflection()- 优化的工具,用于获取 NMS 和 CraftBukkit 类,而不会失去兼容性。getPacketInjector()- 用于从玩家的管道中注入/移除 HamsterAPI 的工具。
你可以监听以下事件:
PacketDecodeEventPacketReceiveEventPacketSendEvent
Decode 在管道中的 splitter 和 decompress 之后运行,并允许你访问 bytebuf 对象。 你可以使用 BufferIO 解码它以获得 PacketWrapper 对象。(非常适合修复漏洞和安全问题)
Receive/Send 在管道中的 decode 之后运行,并允许你访问 PacketWrapper 对象。(非常适合美化/通用内容)
要了解如何监听事件,请阅读以下指南:https://www.spigotmc.org/wiki/using-the-event-api/
发送 Title 和 Subtitle
HamsterAPI.getInstance().getHamsterPlayerManager().get(player).sendTitle(String title, String subtitle, int fadeInTime, int showTime, int fadeOutTime);
发送 Actionbar
HamsterAPI.getInstance().getHamsterPlayerManager().get(player)
.sendActionbar(String message);
安全断开连接 (Packet Kick)
HamsterAPI.getInstance().getHamsterPlayerManager().get(player).disconnect(String reason);
关闭连接 (Instant)
HamsterAPI.getInstance().getHamsterPlayerManager().get(player).closeChannel();
发送到 Bungee 服务器
HamsterAPI.getInstance().getHamsterPlayerManager().get(player).sendServer(String serverName);
💡开发者须知
请记住在你的 "plugin.yml" 文件中将 HamsterAPI 作为依赖项。