925
收录服务器
1188
注册
92 988
玩家
[2LS] HamsterAPI
简单易用的API读写包。
作 者 Sammwy
发布时间 2020年5月14日
支持核心 Spigot
原生版本
支持版本 1.8,1.9,1.10,1.11,1.12,1.13,1.14,1.15,1.16,1.17
点此下载

HamsterAPI 是一个小型库,用于监听传入和传出的数据包,并能读取、修改和取消它们。它还允许你轻松地向玩家发送数据包,而无需在你的插件中使用反射或 NMS。

🎉

HamsterAPI 简介

HamsterAPI 可以做什么?

  • 向玩家发送 Title、Subtitle、ActionBar 和数据包。
  • 监听基于优先级和取消的传入和传出数据包事件。
  • 安全/立即断开玩家连接。
  • 与 BungeeCord 通信(踢出、切换服务器、发送消息通道等)。

未来,HamsterAPI 还将包含:

  1. BossBar API
  2. 客户端 <-> 服务器通过自定义通道通信(适用于 Modded 客户端)
  3. Bungeecord 监听器
🚀

如何使用 HamsterAPI?

起步

第一步是获取 HamsterAPI 实例,以便使用静态方法 HamsterAPI.getInstance() 访问 API 的大多数方法。

从 HamsterAPI 实例,你可以访问以下方法:

  • getBufferIO() - 用于将 bytebufs 分割/解压缩/解码为数据包的工具。
  • getBungeeMessenger() - 用于简化与 BungeeCord 的 CustomPayload 通信的工具。
  • getReflection() - 优化的工具,用于获取 NMS 和 CraftBukkit 类,而不会失去兼容性。
  • getPacketInjector() - 用于从玩家的管道中注入/移除 HamsterAPI 的工具。

你可以监听以下事件:

  • PacketDecodeEvent
  • PacketReceiveEvent
  • PacketSendEvent

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 作为依赖项。