/// <summary> /// /// </summary> private void ProcessRawPacket(byte[] payload) { using (var stream = new MemoryStream(payload)) { using (var reader = new BinaryReader(stream)) { ClientRawOpcode opcode = (ClientRawOpcode)reader.ReadPackedUInt32(); ClientRawPacket packet = PacketManager.CreateRawPacket(opcode); if (packet != null) { packet.Read(reader); PacketManager.InvokeRawPacketHandler(this, opcode, packet); } } } }
/// <summary> /// /// </summary> public static void InvokeRawPacketHandler(NetworkSession session, ClientRawOpcode opcode, ClientRawPacket packet) { if (!rawPacketHandlers.TryGetValue(opcode, out RawPacketHandler handler)) { log.Warn($"Received unhandled raw opcode 0x{opcode:X}!"); return; } handler.Invoke(session, packet); }