public bool handlePacket(ENetPeer *peer, byte[] data, Channel channelID)
        {
            Sniffer.getInstance().Send(data, false);

            var header  = new IntWarsSharp.Logic.Packets.PacketHeader(data);
            var handler = GetHandler(header.cmd, channelID);

            // printPacket(data, "Received: ");
            if (header.cmd != PacketCmdC2S.PKT_C2S_StatsConfirm && header.cmd != PacketCmdC2S.PKT_C2S_MoveConfirm)
            {
                Console.WriteLine("Requested " + header.cmd.ToString());
            }

            if (handler != null)
            {
                if (!handler.HandlePacket(peer, data, game))
                {
                    Console.WriteLine("Handle failed for " + header.cmd.ToString());
                    return(false);
                }
                return(true);
            }
            else
            {
                Logger.LogCoreWarning("Unhandled OpCode " + header.cmd);
                printPacket(data, "Error: ");
            }
            return(false);
        }
        public bool handlePacket(ENetPeer* peer, byte[] data, Channel channelID)
        {
            Sniffer.getInstance().Send(data, false);

            var header = new IntWarsSharp.Logic.Packets.PacketHeader(data);
            var handler = GetHandler(header.cmd, channelID);
            // printPacket(data, "Received: ");
            if (header.cmd != PacketCmdC2S.PKT_C2S_StatsConfirm && header.cmd != PacketCmdC2S.PKT_C2S_MoveConfirm)
                Console.WriteLine("Requested " + header.cmd.ToString());

            if (handler != null)
            {
                if (!handler.HandlePacket(peer, data, game))
                {
                    Console.WriteLine("Handle failed for " + header.cmd.ToString());
                    return false;
                }
                return true;
            }
            else
            {
                Logger.LogCoreWarning("Unhandled OpCode " + header.cmd);
                printPacket(data, "Error: ");
            }
            return false;
        }