数据包记录器

数据包记录器

带有Web界面的客户端数据包记录器

管理

⚠️ 项目不再维护(以及前端的后续安排)

由于我没有时间同时维护前端和后端,我将停止这个 PacketLogger 项目。但别担心,前端不会白费。
同时开发两端会占用大量时间,尤其是当你想要在前端实现炫酷的新功能,而后端却存在必须修复以帮助用户的 bug 时。同时做这两件事一直很艰难,我不想再这样下去了。我主要是一名 Web 开发者,我想继续这份热情。
这就是为什么我将停止开发这个模组。
但是: 前端将迁移到 wisp-forest/gadget。至少目前的想法是这样。一切就绪可能需要几周时间,所以如果你现在就需要替代方案,我强烈建议你切换到 gadget。

在 packetlogger 上工作是一段愉快的旅程。我学到了很多关于 Minecraft 模组开发本身、Minecraft 数据包结构的知识,并在此过程中遇到了很多很棒的人。如果你有问题,可以通过 Twitter 或 Discord 联系我。

Fabric Packet Logger

我在 thejocraft.net 开发时使用这个。是的,代码可能不是最好的。如果你想改进它,尽管去做并提交一个 pull request。

功能

  • Web UI(默认端口 8080)
  • WebSocket 连接(默认端口 1337)
  • 游戏内配置

支持的 Minecraft 版本

Minecraft 版本 状态 备注
1.19.3 ⚠️ 一个相当粗糙的版本,因为 1.19.4 的支持早于 1.19.3 存在,所以 1.19.3 是从 1.19.4 中创建出来的
1.19.4 ✔️

⚠️ = 数据包已实现但未验证
✔️ = 已支持

关联仓库

命令

  • /packetlogger 是所有子命令的基础命令。你应该能够自动补全它们
  • /packetlogger logging on/off - 切换日志记录状态
  • /packetlogger open - 在浏览器中打开 Web UI
  • /packetlogger export - 将当前存储的数据以 json 格式导出

支持的数据包

客户端绑定
100%
100%
100%

服务端绑定
100%
100%
100%
100%

由于为每个数据包开发序列化器需要大量时间,并非所有数据包都受支持。我会随着时间的推移添加更多数据包。如果你想帮忙,欢迎提交 pull request。

为什么不使用反射来转换数据包数据?

我不用反射有一些原因。以下是主要原因:

  • 反射很慢
    • 我喜欢实时流式传输数据,而不是分析转储
  • 我用反射的做法很糟糕(参见 reflection-rewrite/dev 分支)
  • 使用自定义序列化器我可能能做更多事情
  • 而且我有自己的美味映射

如果你仍然偏好基于反射的方法,请查看 wisp-forest/gadget

WebSocket

默认情况下,Web UI 连接到 WebSocket 并通过 json 数据接收数据包信息。你也可以连接到此 WebSocket 并接收与 Web UI 相同的数据。我建议在 Firefox 上使用 insomnia 或 weasel。
已经为 WebSocket 定义了一个协议。它使用数据分块和数据包信息的懒加载来减少流量。更多信息请参见 protocol.md。

预览

视频:

MapUpdateAdapter: https://cdn.discordapp.com/attachments/598256161212596235/1093635306244280431/image.png https://cdn.discordapp.com/attachments/598256161212596235/1093668040752762920/image.png