Exemple #1
0
 //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()); }
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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;
        }