xpocketmc/bedrockprotocol

PHP 实现的 Minecraft: Bedrock 版本协议

1.0.0+1.21.30 2024-09-18 05:56 UTC

This package is not auto-updated.

Last update: 2024-09-19 04:13:03 UTC


README

CI

PHP 实现的 Minecraft: Bedrock 版本协议

此库实现了 Minecraft: Bedrock 版本协议中的所有数据包,以及一些支持它们所需的其他功能。然而,在撰写本文时,它不包括以下内容:

  • 与 JWT 处理/验证相关的内容
  • 与加密相关的内容
  • 与压缩相关的内容

解码数据包

假设你已经成功解密并解压缩了 Minecraft 数据包,接下来你需要对其进行解码。使用此库,这可以通过 PacketBatch 实现,如下所示:

foreach(PacketBatch::decodePackets(new BinaryStream($payload), PacketPool::getInstance()) as $packetObject){
    var_dump($packetObject); //tada
}

编码数据包

这很简单

/** @var Packet[] $packets */
$stream = new BinaryStream();
PacketBatch::encodePackets($stream, $packets);
$batchPayload = $stream->getBuffer();

脚注

由于这个库原本只打算用于 PocketMine-MP,所以它边缘的处理有些粗糙。最近,这个混乱的代码才从核心分离出来,以便其他东西可以使用。这意味着可能需要更改 API,你的反馈将有助于推动这些更改。如果你想要改进 BedrockProtocol,请提出建议,或者更好的是,提交 pull request。