12 个版本 (重大变更)
0.10.2 | 2024 年 6 月 14 日 |
---|---|
0.9.1 | 2024 年 4 月 19 日 |
0.9.0 | 2023 年 12 月 5 日 |
0.8.0 | 2023 年 9 月 15 日 |
0.4.0 | 2022 年 11 月 19 日 |
#1652 in 网络编程
每月下载量:29
用于 2 crate
2MB
48K SLoC
杜鹃花协议
一个用于发送和接收 Minecraft 数据包的低级 crate。你可能需要使用 azalea
或 azalea-client
。
目标是仅支持最新的 Minecraft 版本,以简化开发。
这还不是完整的,请在代码中搜索 TODO
以查找需要完成的事情。
遗憾的是,使用 azalea-protocol 需要 Rust nightly,因为 专业化 还不稳定。使用 rustup default nightly
启用它。
添加新的数据包
添加新的数据包通常相当简单,但你将需要 Minecraft 的反编译源代码,你可以使用例如 DecompilerMC 等工具来获取。
- 首先,你需要数据包 ID。你可以从 azalea-protocol 错误信息或从 wiki.vg 获取。
- 运行
python codegen/newpacket.py [packet id] [clientbound or serverbound] \[game/handshake/login/status\]
\ - 转到它告诉你的数据包生成的目录。如果没有注释,你就完成了。否则,继续。
- 在 Minecraft 源代码中找到数据包。Minecraft 的数据包位于
net/minecraft/network/protocol/<state>
目录。你的数据包状态通常是game
。 - 从Minecraft源代码的读取或写入方法中添加字段。如果您不确定数据包的结构,可以查看wiki.vg,但请注意,wiki.vg对大多数事物使用不同的名称。
- 格式化代码,提交拉取请求,并等待审查。
实现数据包
您可以通过实现McBufReadable和McBufWritable手动实现数据包的读取和写入功能,但也可以通过从struct或enum派生McBuf来自动生成这些功能。
参考其他数据包作为示例。
依赖项
~23–36MB
~568K SLoC