bedrockplaymc/bedrock-protocol

PHP实现的Minecraft: Bedrock Edition协议

dev-master 2023-11-22 10:30 UTC

This package is auto-updated.

Last update: 2024-09-08 09:45:57 UTC


README

CI

PHP实现的Minecraft: Bedrock Edition协议

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

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

解码数据包

假设您已经成功解密并解压缩了一个Minecraft数据包,接下来您将想要对其进行解码。使用此库,当前使用PacketBatch来完成,如下所示

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

编码数据包

这很简单

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

脚注

由于此库最初仅打算用于PocketMine-MP的使用,因此它的边缘有些粗糙。直到最近,这些混乱的部分才从核心分离出来,以便其他东西可以使用。这意味着可能需要进行API更改,您的反馈将有助于推动这些更改。如果您想改进BedrockProtocol,请提出建议,或者更好的是,提交pull请求。