public void Execute(string message) { string[] packet = message.Split(ChatConstants.MSG_SEPERATOR); switch (packet[0]) { case ChatConstants.CMD_USER_LOGIN: var loginPacket = message.Replace("@", "%").Split('%'); var userId = Convert.ToInt32(loginPacket[3]); /* * if (Program.IsUserBanned(Username)) * { * _handler.Shutdown(SocketShutdown.Both); * _handler.Close(); * _handler = null; * return; * } */ GameSession = GameManager.GetGameSession(userId); Clan = loginPacket[7] == "noclan" ? "" : GameSession.Player.GetClanTag(); Permission = (Permissions)QueryManager.GetChatPermission(GameSession.Player.Id); if (ServerManager.ChatClients.ContainsKey(GameSession.Player.Id)) { ServerManager.ChatClients[GameSession.Player.Id].Socket.Shutdown(SocketShutdown.Both); ServerManager.ChatClients[GameSession.Player.Id].Socket.Close(); ServerManager.ChatClients[GameSession.Player.Id].Socket = null; var chat = this; ServerManager.ChatClients.TryRemove(GameSession.Player.Id, out chat); } ServerManager.AddChatClient(this); Send("bv%" + GameSession.Player.Id + "#"); var servers = Room.Rooms.Aggregate(String.Empty, (current, chat) => current + chat.Value.ToString()); servers = servers.Remove(servers.Length - 1); Send("by%" + servers + "#"); ChatsJoined.Add(Room.Rooms.FirstOrDefault().Value.Id); break; case ChatConstants.CMD_USER_MSG: SendMessage(message); break; case ChatConstants.CMD_USER_JOIN: var newchat = Convert.ToInt32(message.Split('%')[2].Split('@')[0]); if (Room.Rooms.ContainsKey(newchat)) { if (!ChatsJoined.Contains(newchat)) { ChatsJoined.Add(newchat); } } else { /* * var inviterPlayer = GameManager.Players.Values.FirstOrDefault(x => x.DuelInvites.ContainsValue(Player)); * AcceptDuel(inviterPlayer); */ } break; } }