public void SendProto(MAPAPI.IProto proto) { string text = Convert.ToBase64String(MAPAPI.Proto.Serialize(proto)); text = proto._Name + " " + text; SendPacket(text); }
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; } } }