Esempio n. 1
0
        public void SendProto(MAPAPI.IProto proto)
        {
            string text = Convert.ToBase64String(MAPAPI.Proto.Serialize(proto));

            text = proto._Name + " " + text;
            SendPacket(text);
        }
Esempio n. 2
0
        private void OnPacketReceived(string packet)
        {
            var data = packet.Split(" ".ToCharArray());

            byte[] array = Convert.FromBase64String(data[1]);
            var    type  = Type.GetType($"MAPAPI.Response.{data[0]}, MAPAPI");

            if (type is null)
            {
                Console.WriteLine("Received Unknown Response: " + data[0]);
            }
            else
            {
                MAPAPI.IProto item = typeof(MAPAPI.Proto).GetMethod("Deserialize").MakeGenericMethod(new Type[]
                {
                    type
                }).Invoke(null, new object[]
                {
                    array
                }) as MAPAPI.IProto;

                switch (item)
                {
                case MAPAPI.Response.MapServerMap _:
                    FinishMapDownloading((MAPAPI.Response.MapServerMap)item);
                    break;

                case MAPAPI.Response.DeleteMap DM:
                    if (_cache.ContainsKey(DM.MapName.ToLowerInvariant()))
                    {
                        _cache.Remove(DM.MapName.ToLowerInvariant());
                    }
                    break;

                case MAPAPI.Response.DebugMessage msg:
#if DEBUG
                    Console.WriteLine(msg);
#endif
                    IsLoggedIn = true;
                    break;
                }
            }
        }