pocketmine/bedrock-protocol

Minecraft: Bedrock Edition 协议的 PHP 实现

34.0.0+bedrock-1.21.30 2024-09-18 20:58 UTC

This package is auto-updated.

Last update: 2024-09-18 21:02:21 UTC


README

CI

Minecraft: Bedrock Edition 协议的 PHP 实现

此库实现了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,请提出建议,或者更好的是,提交拉取请求。