Exemplo n.º 1
0
        /// <summary>
        /// Handle data received by a client.
        /// </summary>
        /// <param name="packet">The client update packet to handle.</param>
        public void HandleClientPacket(ClientUpdatePacket packet)
        {
            // Execute corresponding packet handlers for normal packet data
            UnpackPacketDataDict(packet.GetPacketData(), ExecuteClientPacketHandler);

            // Execute corresponding packet handlers for addon packet data of each addon in the packet
            foreach (var idPacketDataPair in packet.GetAddonPacketData())
            {
                var addonId        = idPacketDataPair.Key;
                var packetDataDict = idPacketDataPair.Value.PacketData;

                UnpackPacketDataDict(
                    packetDataDict,
                    (packetId, packetData) => ExecuteClientAddonPacketHandler(addonId, packetId, packetData)
                    );
            }
        }