using System; using System.Text; using Newtonsoft.Json; using Newtonsoft.Json.Linq; namespace MafiaCommon.Packets { public class PacketConverter { public static byte[] toBytes(Packet packet) { return Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(packet)); } public static Packet toPacket(String json) { PacketType packetType = ((JObject)JsonConvert.DeserializeObject(json)).GetValue("PacketType").ToObject(); Packet packet = null; switch (packetType) { case PacketType.ServerShutdown: packet = JsonConvert.DeserializeObject(json); break; case PacketType.Connect: packet = JsonConvert.DeserializeObject(json); break; case PacketType.Welcome: packet = JsonConvert.DeserializeObject(json); break; case PacketType.Disconnect: packet = JsonConvert.DeserializeObject(json); break; case PacketType.PlayerConnected: packet = JsonConvert.DeserializeObject(json); break; case PacketType.PlayerDisconnected: packet = JsonConvert.DeserializeObject(json); break; case PacketType.MessageReceivePacket: packet = JsonConvert.DeserializeObject(json); break; case PacketType.MessageSendPacket: packet = JsonConvert.DeserializeObject(json); break; case PacketType.GameStartPacket: packet = JsonConvert.DeserializeObject(json); break; case PacketType.EndGame: packet = JsonConvert.DeserializeObject(json); break; } return packet; } } }