//Administrative commands: kick, ban. static void ProcessCommand(string cmd) { try { string[] commands = cmd.Split('~'); switch (commands[0]) { case "kick": ClientFromUsername(commands[1]).Disconnect(); break; case "ban": BanUser(commands[1]); GetBanList(); ClientFromUsername(commands[1]).Disconnect();//Last in-case the user isn't Connected. break; case "globalmsg": UserState bChannel = new UserState(); byte[] data = Packer.Serialize((byte)ServerPacket.GlobalMsg, commands[1]); Broadcast(bChannel.Channel, data); break; case "list": BanList.ForEach(Console.WriteLine); break; } } catch (Exception ex) { System.Diagnostics.Debug.Print(ex.ToString()); } }
public void Disconnect() { if (Processing[0]) return; else Processing[0] = true; bool Raise = Connection; _Connection = false; if (Handle != null) Handle.Close(); if (Operation != null) Operation.Clear(); if (Raise) OnClient_State(false); Value = null; _EndPoint = null; }
static object[] GetProfile(ServerPacket header, string username) { List<object> profile = new List<object> {(byte) header}; MySqlCommand q = new MySqlCommand("SELECT * FROM users WHERE Username=@Username;", SQL); q.Parameters.AddWithValue("@Username", username); MySqlDataReader r = q.ExecuteReader(); bool success = r.Read(); if (success) { string link = r.GetString("ProfileLink"); int points = r.GetInt32("Points"); byte rank = r.GetByte("Rank"); string bio = r.GetString("Bio"); string avatar = r.GetString("Avatar"); UserState state = new UserState() { Points = points, Rank = rank }; state.AddPoints(0); profile.AddRange(new object[] { username, link, rank, bio, avatar, state.Percentage }); r.Close(); r.Dispose(); } else { profile.AddRange(new object[] { username, "", 0, "", "", 0 }); r.Close(); r.Dispose(); } return profile.ToArray(); }
public void Disconnect() { if (_processing[0]) return; _processing[0] = true; bool raise = Connected; Connected = false; if (_handle != null) _handle.Close(); if (_sendQueue != null) _sendQueue.Clear(); _sendBuffer = new byte[0]; _readBuffer = new byte[0]; if (raise) OnClientState(false); Value = null; _endPoint = null; }