nethergamesmc/bedrock-protocol

PHP 实现的 Minecraft: Bedrock 版本协议

dev-master 2024-09-17 14:29 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,请提出建议或更佳,提交拉取请求。