xpocketmp/bedrockprotocol

PHP中Minecraft: Bedrock Edition协议的实现

1.0.0+1.21.30 2024-08-12 13:42 UTC

README

CI

PHP中Minecraft: Bedrock Edition协议的实现

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

  • 与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,请提交带有建议的问题,或者更好的是,提交拉取请求。