McProtoNet Help

Как создаются экземпляры серверных пакетов?

Класс MinecraftClient читает "сырые" серверные пакеты, которые нужно преобразовать в конкретный класс. Этого можно добиться с помощью метода CreateClientboundPacket из статического класс PacketFactory. Этот метод принимает в качестве аргументов версию протокола, идентификатор прочитанного пакета, а также PacketState (пакет какого состояния нужно создать).

Пример кода

MinecraftClient client = //... await foreach(InputPacket packet = client.ReceivePackets()) { IServerPacket createdPacket = PacketFactory.CreateClientboundPacket( client.ProtocolVersion, packet.Id, PacketState.Play); // Deserialize and handling ... }

Хотя Вы можете так делать, но для упрощения разработки рекомендуется использовать методы расширения OnPacket<TPacket>, OnAllPackets.

await foreach(IServerPacket packet in client.OnAllPackets(PacketState.Play)) { Console.WriteLine($"Received packet: {packet.GetPacketId()}"); }
Last modified: 17 February 2025