Пример #1
0
        public void BanUser(string mod, ModerationBanType type, string banValue, string reason, double expireTimestamp)
        {
            var banType = type == ModerationBanType.Ip ? "ip" : type == ModerationBanType.Machine ? "machine" : "user";

            using (var dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery(
                    "REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('" +
                    banType +
                    "', '" +
                    banValue +
                    "', @reason, " +
                    expireTimestamp +
                    ", '" +
                    mod +
                    "', '" +
                    PlusEnvironment.GetUnixTimestamp() +
                    "');");
                dbClient.AddParameter("reason", reason);
                dbClient.RunQuery();
            }
            if (type == ModerationBanType.Machine || type == ModerationBanType.Username)
            {
                if (!_bans.ContainsKey(banValue))
                {
                    _bans.Add(banValue, new ModerationBan(type, banValue, reason, expireTimestamp));
                }
            }
        }
Пример #2
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="ModerationBan" /> struct.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="variable">The variable.</param>
 /// <param name="reasonMessage">The reason message.</param>
 /// <param name="expire">The expire.</param>
 internal ModerationBan(ModerationBanType type, string variable, string reasonMessage, double expire)
 {
     Type          = type;
     Variable      = variable;
     ReasonMessage = reasonMessage;
     Expire        = expire;
 }
Пример #3
0
 public ModerationBan(ModerationBanType banType, string banValue, string banReason, double banExpirationDate)
 {
     _banType           = banType;
     _banValue          = banValue;
     _banReason         = banReason;
     _banExpirationDate = banExpirationDate;
 }
Пример #4
0
        public void AddBan(string moderatorUsername, ModerationBanType banType, string banValue, string banReason, double expireTimestamp)
        {
            var type = (banType == ModerationBanType.ByIp ? "ip" : banType == ModerationBanType.ByMachine ? "machine" : "user");

            using (var mysqlConnection = Sahara.GetServer().GetMySql().GetConnection())
            {
                mysqlConnection.OpenConnection();
                mysqlConnection.AddParameter("banType", type);
                mysqlConnection.AddParameter("banValue", banValue);
                mysqlConnection.AddParameter("reason", banReason);
                mysqlConnection.AddParameter("expireTimestamp", expireTimestamp);
                mysqlConnection.AddParameter("moderatorUsername", moderatorUsername);
                mysqlConnection.AddParameter("addedTimestamp", UnixTimestampGenerator.GetNow());
                mysqlConnection.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`, `added_date`) VALUES (@banType, @banValue, @reason, @expireTimestamp, @moderatorUsername, @addedTimestamp)");
                mysqlConnection.RunQuery();
                mysqlConnection.CloseConnection();
            }

            if (banType != ModerationBanType.ByMachine && banType != ModerationBanType.ByUsername)
            {
                return;
            }

            if (!_moderationBans.ContainsKey(banValue))
            {
                _moderationBans.Add(banValue, new ModerationBan(banType, banValue, banReason, expireTimestamp));
            }
        }
Пример #5
0
        public void Initialise(DatabaseClient dbClient)
        {
            Console.BackgroundColor = ConsoleColor.Black;
            Logging.Write("Lädt bans..");

            this.Bans.Clear();

            DataTable dataTable = dbClient.ReadDataTable("SELECT bantype,value,reason,expire FROM bans WHERE expire > '" + HabboIM.GetUnixTimestamp() + "'");

            if (dataTable != null)
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    ModerationBanType Type = ModerationBanType.IP;
                    if ((string)dataRow["bantype"] == "user")
                    {
                        Type = ModerationBanType.USERNAME;
                    }


                    if ((string)dataRow["bantype"] == "static_id")
                    {
                        Type = ModerationBanType.STATICID;
                    }


                    this.Bans.Add(new ModerationBan(Type, (string)dataRow["value"], (string)dataRow["reason"], (double)dataRow["expire"]));
                }

                Logging.WriteLine("Fertig!", ConsoleColor.Green);
            }
        }
Пример #6
0
 public ModerationBan(ModerationBanType type, string value, string reason, double expire)
 {
     Type   = type;
     Value  = value;
     Reason = reason;
     Expire = expire;
 }
Пример #7
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="ModerationBan" /> struct.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="variable">The variable.</param>
 /// <param name="reasonMessage">The reason message.</param>
 /// <param name="expire">The expire.</param>
 internal ModerationBan(ModerationBanType type, string variable, string reasonMessage, double expire)
 {
     Type = type;
     Variable = variable;
     ReasonMessage = reasonMessage;
     Expire = expire;
 }
Пример #8
0
 public ModerationBan(ModerationBanType Type, string Value, string Reason, Double Expire)
 {
     this.Type = Type;
     this.Value = Value;
     this.Reason = Reason;
     this.Expire = Expire;
 }
Пример #9
0
 internal ModerationBan(ModerationBanType Type, string Variable, string ReasonMessage, Double Expire)
 {
     this.Type          = Type;
     this.Variable      = Variable;
     this.ReasonMessage = ReasonMessage;
     this.Expire        = Expire;
 }
Пример #10
0
 internal ModerationBan(ModerationBanType Type, string Variable, string ReasonMessage, Double Expire)
 {
     this.Type = Type;
     this.Variable = Variable;
     this.ReasonMessage = ReasonMessage;
     this.Expire = Expire;
 }
Пример #11
0
 public ModerationBan(ModerationBanType mType, string mVariable, string mReasonMessage, double mExpire)
 {
     this.Type          = mType;
     this.Variable      = mVariable;
     this.ReasonMessage = mReasonMessage;
     this.Expire        = mExpire;
 }
Пример #12
0
 /// <summary>
 /// The moderation ban constructor.
 /// </summary>
 /// <param name="Type"></param>
 /// <param name="Value"></param>
 /// <param name="Reason"></param>
 /// <param name="Expire"></param>
 public ModerationBan(ModerationBanType Type, string Value, string Reason, double Expire)
 {
     this.Type   = Type;
     this.Value  = Value;
     this.Reason = Reason;
     this.Expire = Expire;
 }
Пример #13
0
		public ModerationBan(ModerationBanType mType, string mVariable, string mReasonMessage, double mExpire)
		{
			this.Type = mType;
			this.Variable = mVariable;
			this.ReasonMessage = mReasonMessage;
			this.Expire = mExpire;
		}
Пример #14
0
 public ModerationBan(ModerationBanType type, string value, string reason, Double expire)
 {
     this.Type   = type;
     this.Value  = value;
     this.Reason = reason;
     this.Expire = expire;
 }
Пример #15
0
        public void BanUser(GameClient client, string Mod, ModerationBanType Type, string BanValue, string Reason, double ExpireTimestamp)
        {
            string BanType   = (Type == ModerationBanType.IP ? "ip" : Type == ModerationBanType.MACHINE ? "machine" : "user");
            double BanExpire = Plus.GetUnixTimeStamp() + ExpireTimestamp;

            using (IQueryAdapter dbClient = Plus.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("INSERT INTO `users_bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('" + BanType + "', '" + BanValue + "', @reason, " + BanExpire + ", '" + Mod + "', '" + DateTime.Now.ToLongDateString() + "');");
                dbClient.AddParameter("reason", Reason);
                dbClient.RunQuery();
            }

            if (Type == ModerationBanType.MACHINE || Type == ModerationBanType.USERNAME)
            {
                if (!this._bans.ContainsKey(BanValue))
                {
                    this._bans.Add(BanValue, new ModerationBan(Type, BanValue, Reason, BanExpire));
                }
            }

            using (IQueryAdapter dbClient = Plus.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunFastQuery("UPDATE `users_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + client.GetHabbo().Id + "' LIMIT 1");
            }

            client.Disconnect("banned");
        }
Пример #16
0
 public static string FromModerationBanType(ModerationBanType Type)
 {
     switch (Type)
     {
         default:
         case ModerationBanType.USERNAME:
             return "user";
         case ModerationBanType.IP:
             return "ip";
         case ModerationBanType.MACHINE:
             return "machine";
     }
 }
        public static string FromModerationBanType(ModerationBanType Type)
        {
            switch (Type)
            {
            default:
            case ModerationBanType.USERNAME:
                return("user");

            case ModerationBanType.IP:
                return("ip");

            case ModerationBanType.MACHINE:
                return("machine");
            }
        }
Пример #18
0
        public static string FromModerationBanType(ModerationBanType type)
        {
            switch (type)
            {
            default:
            case ModerationBanType.Username:
                return("user");

            case ModerationBanType.Ip:
                return("ip");

            case ModerationBanType.Machine:
                return("machine");
            }
        }
Пример #19
0
        public void BanUser(string Mod, ModerationBanType Type, string BanValue, string Reason, double ExpireTimestamp)
        {
            string BanType = (Type == ModerationBanType.IP ? "ip" : Type == ModerationBanType.MACHINE ? "machine" : "user");
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('" + BanType + "', '" + BanValue + "', @reason, " + ExpireTimestamp + ", '" + Mod + "', '" + PlusEnvironment.GetUnixTimestamp() + "');");
                dbClient.AddParameter("reason", Reason);
                dbClient.RunQuery();
            }

            if (Type == ModerationBanType.MACHINE || Type == ModerationBanType.USERNAME)
            {
                if (!this._bans.ContainsKey(BanValue))
                    this._bans.Add(BanValue, new ModerationBan(Type, BanValue, Reason, ExpireTimestamp));
            }
        }
Пример #20
0
        public void BanUser(string Mod, ModerationBanType Type, string BanValue, string Reason, double ExpireTimestamp)
        {
            string BanType = (Type == ModerationBanType.IP ? "ip" : Type == ModerationBanType.MACHINE ? "machine" : "user");
            using (IQueryAdapter dbClient = CloudServer.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('" + BanType + "', '" + BanValue + "', @reason, " + ExpireTimestamp + ", '" + Mod + "', '" + CloudServer.GetUnixTimestamp() + "');");
                dbClient.AddParameter("reason", Reason);
                dbClient.RunQuery();
            }

            if (Type == ModerationBanType.MACHINE || Type == ModerationBanType.USERNAME)
            {
                if (!this._bans.ContainsKey(BanValue))
                    this._bans.Add(BanValue, new ModerationBan(Type, BanValue, Reason, ExpireTimestamp));
            }
        }
Пример #21
0
        public void BanUser(string Mod, ModerationBanType Type, string BanValue, string Reason, double ExpireTimestamp)
        {
            var BanType = Type == ModerationBanType.IP ? "ip" : Type == ModerationBanType.Machine ? "machine" : "user";

            using (var dbClient = Program.DatabaseManager.GetQueryReactor())
            {
                dbClient.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('" + BanType + "', '" + BanValue + "', @reason, " + ExpireTimestamp + ", '" + Mod + "', '" + UnixUtilities.GetNow() + "');");
                dbClient.AddParameter("reason", Reason);
                dbClient.RunQuery();
            }

            if (Type == ModerationBanType.Machine || Type == ModerationBanType.Username)
            {
                if (!_bans.ContainsKey(BanValue))
                {
                    _bans.Add(BanValue, new ModerationBan(Type, BanValue, Reason, ExpireTimestamp));
                }
            }
        }
Пример #22
0
        public void method_0(DatabaseClient class6_0)
        {
            Logging.smethod_0("Loading bans..");
            this.list_0.Clear();
            DataTable dataTable = class6_0.ReadDataTable("SELECT bantype,value,reason,expire FROM bans WHERE expire > '" + GoldTree.GetUnixTimestamp() + "'");

            if (dataTable != null)
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    ModerationBanType Type = ModerationBanType.IP;
                    if ((string)dataRow["bantype"] == "user")
                    {
                        Type = ModerationBanType.USERNAME;
                    }
                    this.list_0.Add(new ModerationBan(Type, (string)dataRow["value"], (string)dataRow["reason"], (double)dataRow["expire"]));
                }
                Logging.WriteLine("completed!");
            }
        }
Пример #23
0
        public void LoadBans(DatabaseClient dbClient)
        {
            Logging.Write("Loading bans..");
            this.Bans.Clear();
            DataTable dataTable = dbClient.ReadDataTable("SELECT bantype,value,reason,expire FROM bans WHERE expire > '" + PhoenixEnvironment.GetUnixTimestamp() + "'");

            if (dataTable != null)
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    ModerationBanType iP = ModerationBanType.IP;
                    if ((string)dataRow["bantype"] == "user")
                    {
                        iP = ModerationBanType.USERNAME;
                    }
                    this.Bans.Add(new ModerationBan(iP, (string)dataRow["value"], (string)dataRow["reason"], (double)dataRow["expire"]));
                }
                Logging.WriteLine("completed!");
            }
        }
        public void Initialise(DatabaseClient dbClient)
        {
            Logging.Write("Loading bans..");

            this.Bans.Clear();

            DataTable dataTable = dbClient.ReadDataTable("SELECT bantype,value,reason,expire FROM bans WHERE expire > '" + GoldTree.GetUnixTimestamp() + "'");

            if (dataTable != null)
            {
                foreach (DataRow dataRow in dataTable.Rows)
                {
                    ModerationBanType Type = ModerationBanType.IP;
                    if ((string)dataRow["bantype"] == "user")
                    {
                        Type = ModerationBanType.USERNAME;
                    }

                    this.Bans.Add(new ModerationBan(Type, (string)dataRow["value"], (string)dataRow["reason"], (double)dataRow["expire"]));
                }

                Logging.WriteLine("completed!", ConsoleColor.Green);
            }
        }
        public void BanUser(GameClient Session, string string_0, double length, string reason, bool banIp)
        {
            if (!Session.GetHabbo().IsJuniori)
            {
                ModerationBanType enum4_  = ModerationBanType.USERNAME;
                string            text    = Session.GetHabbo().Username;
                string            object_ = "user";

                double timestamp = GoldTree.GetUnixTimestamp() + length;

                if (banIp)
                {
                    enum4_ = ModerationBanType.IP;

                    if (!ServerConfiguration.IPLastBan)
                    {
                        text = Session.GetConnection().Address;
                    }
                    else
                    {
                        using (DatabaseClient dbClient = GoldTree.GetDatabase().GetClient())
                        {
                            text = dbClient.ReadString("SELECT ip_last FROM users WHERE Id = " + Session.GetHabbo().Id + " LIMIT 1;");
                        }
                    }
                    object_ = "ip";
                }

                this.Bans.Add(new ModerationBan(enum4_, text, reason, timestamp));

                using (DatabaseClient dbClient = GoldTree.GetDatabase().GetClient())
                {
                    dbClient.AddParamWithValue("rawvar", object_);
                    dbClient.AddParamWithValue("var", text);
                    dbClient.AddParamWithValue("reason", reason);
                    dbClient.AddParamWithValue("mod", string_0);

                    dbClient.ExecuteQuery(string.Concat(new object[]
                    {
                        "INSERT INTO bans (bantype,value,reason,expire,added_by,added_date,appeal_state) VALUES (@rawvar,@var,@reason,'",
                        timestamp,
                        "',@mod,'",
                        DateTime.Now.ToLongDateString(),
                        "', '1')"
                    }));
                }

                if (banIp)
                {
                    DataTable dataTable = null;

                    using (DatabaseClient dbClient = GoldTree.GetDatabase().GetClient())
                    {
                        dbClient.AddParamWithValue("var", text);
                        dataTable = dbClient.ReadDataTable("SELECT Id FROM users WHERE ip_last = @var");
                    }

                    if (dataTable != null)
                    {
                        IEnumerator enumerator = dataTable.Rows.GetEnumerator();
                        try
                        {
                            while (enumerator.MoveNext())
                            {
                                DataRow dataRow = (DataRow)enumerator.Current;
                                using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                                {
                                    @class.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + (uint)dataRow["Id"] + "' LIMIT 1");
                                }
                            }
                        }
                        finally
                        {
                            IDisposable disposable = enumerator as IDisposable;
                            if (disposable != null)
                            {
                                disposable.Dispose();
                            }
                        }
                    }
                }

                using (DatabaseClient dbClient = GoldTree.GetDatabase().GetClient())
                {
                    dbClient.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }

                Session.NotifyBan("You have been banned: " + reason);
                Session.method_12();
            }
        }
Пример #26
0
        internal void BanUser(GameClient Client, string Moderator, double LengthSeconds, string Reason, bool IpBan, bool Machine)
        {
            ModerationBanType type  = ModerationBanType.USERNAME;
            string            text  = Client.GetHabbo().Username;
            string            query = "user";
            double            num   = (double)CyberEnvironment.GetUnixTimestamp() + LengthSeconds;

            if (IpBan)
            {
                type = ModerationBanType.IP;
                using (IQueryAdapter queryreactor = CyberEnvironment.GetDatabaseManager().getQueryReactor())
                {
                    queryreactor.setQuery("SELECT ip_last FROM users WHERE username='******' LIMIT 1");
                    text = queryreactor.getString();
                }
                query = "ip";
            }
            if (Machine)
            {
                type  = ModerationBanType.MACHINE;
                query = "machine";
                text  = Client.MachineId;
            }
            ModerationBan moderationBan = new ModerationBan(type, text, Reason, num);

            if (moderationBan.Type == ModerationBanType.IP)
            {
                if (this.bannedIPs.Contains(text))
                {
                    this.bannedIPs[text] = moderationBan;
                }
                else
                {
                    this.bannedIPs.Add(text, moderationBan);
                }
            }
            else
            {
                if (moderationBan.Type == ModerationBanType.MACHINE)
                {
                    if (this.bannedMachines.ContainsKey(text))
                    {
                        this.bannedMachines[text] = moderationBan;
                    }
                    else
                    {
                        this.bannedMachines.Add(text, moderationBan);
                    }
                }
                else
                {
                    if (this.bannedUsernames.Contains(text))
                    {
                        this.bannedUsernames[text] = moderationBan;
                    }
                    else
                    {
                        this.bannedUsernames.Add(text, moderationBan);
                    }
                }
            }
            using (IQueryAdapter queryreactor2 = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                queryreactor2.setQuery(string.Concat(new object[]
                {
                    "INSERT INTO bans (bantype,value,reason,expire,added_by,added_date) VALUES (@rawvar,@var,@reason,'",
                    num,
                    "',@mod,'",
                    DateTime.Now.ToLongDateString(),
                    "')"
                }));
                queryreactor2.addParameter("rawvar", query);
                queryreactor2.addParameter("var", text);
                queryreactor2.addParameter("reason", Reason);
                queryreactor2.addParameter("mod", Moderator);
                queryreactor2.runQuery();
            }
            if (IpBan)
            {
                DataTable dataTable = null;
                using (IQueryAdapter queryreactor3 = CyberEnvironment.GetDatabaseManager().getQueryReactor())
                {
                    queryreactor3.setQuery("SELECT id FROM users WHERE ip_last = @var");
                    queryreactor3.addParameter("var", text);
                    dataTable = queryreactor3.getTable();
                }
                if (dataTable != null)
                {
                    using (IQueryAdapter queryreactor4 = CyberEnvironment.GetDatabaseManager().getQueryReactor())
                    {
                        foreach (DataRow dataRow in dataTable.Rows)
                        {
                            queryreactor4.runFastQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = " + Convert.ToUInt32(dataRow["id"]));
                        }
                    }
                }
                this.BanUser(Client, Moderator, LengthSeconds, Reason, false, false);
                return;
            }
            using (IQueryAdapter queryreactor5 = CyberEnvironment.GetDatabaseManager().getQueryReactor())
            {
                queryreactor5.runFastQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = " + Client.GetHabbo().Id);
            }
            Client.Disconnect();
        }
Пример #27
0
        public void method_2(GameClient Session, string string_0, double double_0, string string_1, bool bool_0)
        {
            if (!Session.GetHabbo().isJuniori)
            {
                ModerationBanType enum4_  = ModerationBanType.USERNAME;
                string            text    = Session.GetHabbo().Username;
                string            object_ = "user";
                double            num     = GoldTree.GetUnixTimestamp() + double_0;
                if (bool_0)
                {
                    enum4_ = ModerationBanType.IP;
                    if (!LicenseTools.bool_20)
                    {
                        text = Session.GetConnection().String_0;
                    }
                    else
                    {
                        using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                        {
                            text = @class.ReadString("SELECT ip_last FROM users WHERE Id = " + Session.GetHabbo().Id + " LIMIT 1;");
                        }
                    }
                    object_ = "ip";
                }
                this.list_0.Add(new ModerationBan(enum4_, text, string_1, num));
                using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                {
                    @class.AddParamWithValue("rawvar", object_);
                    @class.AddParamWithValue("var", text);
                    @class.AddParamWithValue("reason", string_1);
                    @class.AddParamWithValue("mod", string_0);
                    @class.ExecuteQuery(string.Concat(new object[]
                    {
                        "INSERT INTO bans (bantype,value,reason,expire,added_by,added_date,appeal_state) VALUES (@rawvar,@var,@reason,'",
                        num,
                        "',@mod,'",
                        DateTime.Now.ToLongDateString(),
                        "', '1')"
                    }));
                }
                if (bool_0)
                {
                    DataTable dataTable = null;
                    using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                    {
                        @class.AddParamWithValue("var", text);
                        dataTable = @class.ReadDataTable("SELECT Id FROM users WHERE ip_last = @var");
                    }
                    if (dataTable == null)
                    {
                        goto IL_268;
                    }
                    IEnumerator enumerator = dataTable.Rows.GetEnumerator();
                    try
                    {
                        while (enumerator.MoveNext())
                        {
                            DataRow dataRow = (DataRow)enumerator.Current;
                            using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                            {
                                @class.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + (uint)dataRow["Id"] + "' LIMIT 1");
                            }
                        }
                        goto IL_268;
                    }
                    finally
                    {
                        IDisposable disposable = enumerator as IDisposable;
                        if (disposable != null)
                        {
                            disposable.Dispose();
                        }
                    }
                }
                using (DatabaseClient @class = GoldTree.GetDatabase().GetClient())
                {
                    @class.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }
IL_268:
                Session.method_7("You have been banned: " + string_1);
                Session.method_12();
            }
        }
Пример #28
0
        /// <summary>
        ///     Bans the user.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="moderator">The moderator.</param>
        /// <param name="lengthSeconds">The length seconds.</param>
        /// <param name="reason">The reason.</param>
        /// <param name="ipBan">if set to <c>true</c> [ip ban].</param>
        /// <param name="machine">if set to <c>true</c> [machine].</param>
        internal void BanUser(GameClient client, string moderator, double lengthSeconds, string reason, bool ipBan,
            bool machine)
        {
            ModerationBanType type = ModerationBanType.UserName;
            string text = client.GetHabbo().UserName;
            string typeStr = "user";
            double num = Yupi.GetUnixTimeStamp() + lengthSeconds;

            if (ipBan)
            {
                type = ModerationBanType.Ip;

                using (IQueryAdapter queryReactor = Yupi.GetDatabaseManager().GetQueryReactor())
                {
                    queryReactor.SetQuery("SELECT ip_last FROM users WHERE username = @name LIMIT 1");
                    queryReactor.AddParameter("name", text);
                    text = queryReactor.GetString();
                }

                typeStr = "ip";
            }
            if (machine)
            {
                type = ModerationBanType.Machine;
                typeStr = "machine";
                text = client.MachineId;
            }

            ModerationBan moderationBan = new ModerationBan(type, text, reason, num);

            switch (moderationBan.Type)
            {
                case ModerationBanType.Ip:
                    if (_bannedIPs.Contains(text)) _bannedIPs[text] = moderationBan;
                    else _bannedIPs.Add(text, moderationBan);
                    break;

                case ModerationBanType.Machine:
                    if (_bannedMachines.ContainsKey(text)) _bannedMachines[text] = moderationBan;
                    else _bannedMachines.Add(text, moderationBan);
                    break;

                default:
                    if (_bannedUsernames.Contains(text)) _bannedUsernames[text] = moderationBan;
                    else _bannedUsernames.Add(text, moderationBan);
                    break;
            }

            using (IQueryAdapter queryreactor2 = Yupi.GetDatabaseManager().GetQueryReactor())
            {
                queryreactor2.SetQuery(
                    "INSERT INTO users_bans (bantype,value,reason,expire,added_by,added_date) VALUES (@rawvar,@var,@reason,@num,@mod,@time)");
                queryreactor2.AddParameter("rawvar", typeStr);
                queryreactor2.AddParameter("var", text);
                queryreactor2.AddParameter("reason", reason);
                queryreactor2.AddParameter("num", num);
                queryreactor2.AddParameter("mod", moderator);
                queryreactor2.AddParameter("time", DateTime.Now.ToLongDateString());
                queryreactor2.RunQuery();
            }

            if (ipBan)
            {
                DataTable dataTable;

                using (IQueryAdapter queryreactor3 = Yupi.GetDatabaseManager().GetQueryReactor())
                {
                    queryreactor3.SetQuery("SELECT id FROM users WHERE ip_last = @var");
                    queryreactor3.AddParameter("var", text);
                    dataTable = queryreactor3.GetTable();
                }

                if (dataTable != null)
                {
                    using (IQueryAdapter queryreactor4 = Yupi.GetDatabaseManager().GetQueryReactor())
                    {
                        foreach (DataRow dataRow in dataTable.Rows)
                            queryreactor4.RunFastQuery(
                                $"UPDATE users_info SET bans = bans + 1 WHERE user_id = {Convert.ToUInt32(dataRow["id"])}");
                    }
                }

                BanUser(client, moderator, lengthSeconds, reason, false, false);
                return;
            }

            using (IQueryAdapter queryreactor5 = Yupi.GetDatabaseManager().GetQueryReactor())
                queryreactor5.RunFastQuery(
                    $"UPDATE users_info SET bans = bans + 1 WHERE user_id = {client.GetHabbo().Id}");

            client.Disconnect("banned");
        }
Пример #29
0
        public async void BanUser(int targetUserId, Session moderator, string reason, int duration, ModerationBanType type, int topic)
        {
            Player target = await Alias.Server.PlayerManager.ReadPlayerByIdAsync(targetUserId);

            if (target.Rank >= moderator.Player.Rank)
            {
                return;
            }

            //todo: insert ban
            if (target.Session != null)
            {
                target.Session.Disconnect();
            }
        }
Пример #30
0
 public void BanUser(GameClient Client, string Moderator, double LengthSeconds, string Reason, bool IpBan)
 {
     if (!Client.GetHabbo().isAaron)
     {
         ModerationBanType uSERNAME = ModerationBanType.USERNAME;
         string            username = Client.GetHabbo().Username;
         string            val      = "user";
         double            Expire   = PhoenixEnvironment.GetUnixTimestamp() + LengthSeconds;
         if (IpBan)
         {
             uSERNAME = ModerationBanType.IP;
             if (!GlobalClass.UseIP_Last)
             {
                 username = Client.GetConnection().ipAddress;
             }
             else
             {
                 using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                 {
                     username = adapter.ReadString("SELECT ip_last FROM users WHERE Id = " + Client.GetHabbo().Id + " LIMIT 1;");
                 }
             }
             val = "ip";
         }
         this.Bans.Add(new ModerationBan(uSERNAME, username, Reason, Expire));
         using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
         {
             adapter.AddParamWithValue("rawvar", val);
             adapter.AddParamWithValue("var", username);
             adapter.AddParamWithValue("reason", Reason);
             adapter.AddParamWithValue("mod", Moderator);
             adapter.ExecuteQuery("INSERT INTO bans (bantype,value,reason,expire,added_by,added_date,appeal_state) VALUES (@rawvar,@var,@reason,'" + Expire + "',@mod,'" + DateTime.Now.ToLongDateString() + "', '1')");
         }
         if (IpBan)
         {
             DataTable table = null;
             using (DatabaseClient client3 = PhoenixEnvironment.GetDatabase().GetClient())
             {
                 client3.AddParamWithValue("var", username);
                 table = client3.ReadDataTable("SELECT id FROM users WHERE ip_last = @var");
             }
             if (table != null)
             {
                 foreach (DataRow row in table.Rows)
                 {
                     using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
                     {
                         adapter.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + ((uint)row["id"]) + "' LIMIT 1");
                     }
                 }
             }
         }
         else
         {
             using (DatabaseClient adapter = PhoenixEnvironment.GetDatabase().GetClient())
             {
                 adapter.ExecuteQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = '" + Client.GetHabbo().Id + "' LIMIT 1");
             }
         }
         Client.SendBanMessage("You have been banned: " + Reason);
         Client.Disconnect();
     }
 }
Пример #31
0
        // PENDING REWRITE
        internal void BanUser(GameClient Client, string Moderator, Double LengthSeconds, string Reason, Boolean IpBan)
        {
            ModerationBanType Type   = ModerationBanType.USERNAME;
            string            Var    = Client.GetHabbo().Username;
            string            RawVar = "user";
            Double            Expire = FirewindEnvironment.GetUnixTimestamp() + LengthSeconds;

            if (IpBan)
            {
                Type   = ModerationBanType.IP;
                Var    = Client.GetConnection().getIp();
                RawVar = "ip";
            }

            ModerationBan ban = new ModerationBan(Type, Var, Reason, Expire);

            if (ban.Type == ModerationBanType.IP)
            {
                if (bannedIPs.ContainsKey(Var))
                {
                    bannedIPs[Var] = ban;
                }
                else
                {
                    bannedIPs.Add(Var, ban);
                }
            }
            else
            {
                if (bannedUsernames.ContainsKey(Var))
                {
                    bannedUsernames[Var] = ban;
                }
                else
                {
                    bannedUsernames.Add(Var, ban);
                }
            }

            using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.setQuery("INSERT INTO bans (bantype,value,reason,expire,added_by,added_date) VALUES (@rawvar,@var,@reason,'" + Expire + "',@mod,'" + DateTime.Now.ToLongDateString() + "')");
                dbClient.addParameter("rawvar", RawVar);
                dbClient.addParameter("var", Var);
                dbClient.addParameter("reason", Reason);
                dbClient.addParameter("mod", Moderator);
                dbClient.runQuery();
            }

            if (IpBan)
            {
                DataTable UsersAffected = null;

                using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.setQuery("SELECT id FROM users WHERE ip_last = @var");
                    dbClient.addParameter("var", Var);
                    UsersAffected = dbClient.getTable();
                }

                if (UsersAffected != null)
                {
                    using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
                    {
                        foreach (DataRow Row in UsersAffected.Rows)
                        {
                            dbClient.runFastQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = " + Convert.ToUInt32(Row["id"]));
                        }
                    }
                }


                BanUser(Client, Moderator, LengthSeconds, Reason, false);
            }
            else
            {
                using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor())
                {
                    dbClient.runFastQuery("UPDATE user_info SET bans = bans + 1 WHERE user_id = " + Client.GetHabbo().Id);
                }

                Client.SendBanMessage(LanguageLocale.GetValue("moderation.banned") + " " + Reason);
                Client.Disconnect();
            }
        }