Пример #1
0
 private void ProcessUnban(IPlayer player, JObject clan)
 {
     foreach (var member in clan["members"])
     {
         var target = covalence.Players.FindPlayerById(Convert.ToString(member));
         if (type == 1)
         {
             EnhancedBanSystem.Call("TryUnBan", player.Name, new string[1] {
                 target.Id
             });
         }
         else
         {
             var exists = ServerUsers.Get(ulong.Parse(target.Id));
             if (exists != null && exists.group != ServerUsers.UserGroup.Banned)
             {
                 SendMessage(player, GetLang("AlreadyUnbanned", player.Id, target.Name));
                 return;
             }
             ServerUsers.Remove(ulong.Parse(target.Id));
             ServerUsers.Save();
             server.Broadcast(GetLang("PlayerUnbanned", null, target.Name));
         }
     }
     if (AnnounceToServer)
     {
         server.Broadcast(GetLang("UnbanMessage", null, clan["tag"]));
     }
 }
Пример #2
0
 public void Unban(string id)
 {
     if (this.IsBanned(id))
     {
         ServerUsers.Remove(UInt64.Parse(id));
         ServerUsers.Save();
     }
 }
Пример #3
0
 public void Unban(ulong id)
 {
     if (!this.IsBanned(id))
     {
         return;
     }
     ServerUsers.Remove(id);
     ServerUsers.Save();
 }
Пример #4
0
        /// <summary>
        /// Unbans the player
        /// </summary>
        public void Unban(BasePlayer player)
        {
            if (!IsBanned(player))
            {
                return;
            }

            ServerUsers.Remove(player.userID);
            ServerUsers.Save();
        }
Пример #5
0
        /// <summary>
        /// Unbans the player
        /// </summary>
        /// <param name="id"></param>
        public void Unban(string id)
        {
            if (!IsBanned(id))
            {
                return;
            }

            ServerUsers.Remove(ulong.Parse(id));
            ServerUsers.Save();
        }
Пример #6
0
        /// <summary>
        /// Unbans the user
        /// </summary>
        public void Unban()
        {
            // Check not banned
            if (!IsBanned)
            {
                return;
            }

            // Set to unbanned
            ServerUsers.Remove(steamId);
            ServerUsers.Save();
        }
Пример #7
0
        /// <summary>
        /// Unbans the user
        /// </summary>
        /// <param name="id"></param>
        public void Unban(string id)
        {
            // Check if unbanned already
            if (!IsBanned(id))
            {
                return;
            }

            // Set to unbanned
            ServerUsers.Remove(ulong.Parse(id));
            ServerUsers.Save();
        }
Пример #8
0
        /// <summary>
        /// Unbans the player
        /// </summary>
        public void Unban(BasePlayer player)
        {
            // Check if unbanned already
            if (!IsBanned(player))
            {
                return;
            }

            // Set to unbanned
            ServerUsers.Remove(player.userID);
            ServerUsers.Save();
        }
Пример #9
0
 public static void Set(ulong uid, ServerUsers.UserGroup group, string username, string notes)
 {
     ServerUsers.Remove(uid);
     ServerUsers.User user = new ServerUsers.User()
     {
         steamid  = uid,
         group    = group,
         username = username,
         notes    = notes
     };
     Interface.CallHook("IOnServerUsersSet", (object)uid, (object)group, (object)username, (object)notes);
     ServerUsers.users.Add(uid, user);
 }
Пример #10
0
 void ClearLocalBans(ConsoleSystem.Arg arg)
 {
     if (!arg.IsAdmin)
     {
         return;
     }
     LoadingServerUsers = true;
     foreach (var ban in ServerUsers.GetAll(ServerUsers.UserGroup.Banned).ToList())
     {
         ServerUsers.Remove(ban.steamid);
     }
     LoadingServerUsers = false;
     Puts($"Cleared Server Bans");
 }
Пример #11
0
        public static void unban(ConsoleSystem.Arg arg)
        {
            ulong num = arg.GetUInt64(0, (ulong)0);

            if (num < 70000000000000000L)
            {
                arg.ReplyWith(string.Concat("This doesn't appear to be a 64bit steamid: ", num));
                return;
            }
            ServerUsers.User user = ServerUsers.Get(num);
            if (user == null || user.@group != ServerUsers.UserGroup.Banned)
            {
                arg.ReplyWith(string.Concat("User ", num, " isn't banned"));
                return;
            }
            ServerUsers.Remove(num);
            arg.ReplyWith(string.Concat("Unbanned User: ", num));
        }
Пример #12
0
        public static void unban(Arg arg)
        {
            ulong uInt = arg.GetUInt64(0, 0uL);

            if (uInt < 70000000000000000L)
            {
                arg.ReplyWith($"This doesn't appear to be a 64bit steamid: {uInt}");
                return;
            }
            ServerUsers.User user = ServerUsers.Get(uInt);
            if (user == null || user.group != ServerUsers.UserGroup.Banned)
            {
                arg.ReplyWith($"User {uInt} isn't banned");
                return;
            }
            ServerUsers.Remove(uInt);
            arg.ReplyWith("Unbanned User: " + uInt);
        }
Пример #13
0
        public static void removeowner(Arg arg)
        {
            ulong uInt = arg.GetUInt64(0, 0uL);

            if (uInt < 70000000000000000L)
            {
                arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + uInt);
                return;
            }
            ServerUsers.User user = ServerUsers.Get(uInt);
            if (user == null || user.group != ServerUsers.UserGroup.Owner)
            {
                arg.ReplyWith("User " + uInt + " isn't an owner");
                return;
            }
            ServerUsers.Remove(uInt);
            arg.ReplyWith("Removed Owner: " + uInt);
        }
Пример #14
0
        public static void unban(ConsoleSystem.Arg arg)
        {
            ulong uint64 = arg.GetUInt64(0, 0UL);

            if (uint64 < 70000000000000000UL)
            {
                arg.ReplyWith("This doesn't appear to be a 64bit steamid: " + (object)uint64);
            }
            else
            {
                ServerUsers.User user = ServerUsers.Get(uint64);
                if (user == null || user.group != ServerUsers.UserGroup.Banned)
                {
                    arg.ReplyWith("User " + (object)uint64 + " isn't banned");
                }
                else
                {
                    ServerUsers.Remove(uint64);
                    arg.ReplyWith("Unbanned User: " + (object)uint64);
                }
            }
        }
Пример #15
0
        private void PullBansFromServer()
        {
            var query = string.Format(MySqlConstants.SELECT_ALL_BANS, Settings.Instance.DatabaseName, Settings.Instance.TableName);

            PerformDatabaseQuery(query, (responseRows) =>
            {
                if (responseRows == null)
                {
                    return;
                }

                HashSet <ulong> localBans = new HashSet <ulong>(ServerUsers.GetAll(ServerUsers.UserGroup.Banned).Select(x => x.steamid));

                Settings.Instance.databaseBans.Clear();

                if (responseRows.Any())
                {
                    //Add all database bans to local file
                    foreach (var row in responseRows)
                    {
                        var playerID = row["steamid"].ToString();

                        if (string.IsNullOrEmpty(playerID))
                        {
                            continue;
                        }

                        ulong steamID;
                        if (!ulong.TryParse(playerID, out steamID))
                        {
                            return;
                        }

                        var username = row["name"].ToString();
                        var reason   = row["reason"].ToString();

                        Settings.Instance.databaseBans.Add(steamID, new PlayerBan(steamID, reason));

                        if (!UsernameValid(steamID, username))
                        {
                            UnnamedBans.Add(new PlayerBan(steamID, reason));
                        }

                        if (localBans.Remove(steamID)) //No need to reban people
                        {
                            continue;
                        }

                        ServerUsers.Set(steamID, ServerUsers.UserGroup.Banned, playerID, reason);

                        BasePlayer player = BasePlayer.FindByID(steamID);

                        if (player != null)
                        {
                            player.Kick("Bans share across servers :)");
                        }
                    }

                    //Dont want to delete local ban list accidently
                    foreach (var player in localBans) //Unban users who aren't found on the database
                    {
                        ServerUsers.Remove(player);
                    }

                    if (UnnamedBans.Count > 0)
                    {
                        timer.In(10f, UpdateDatabaseUsernames);
                    }

                    Puts($"Updated ban list - {responseRows.Count} bans pulled from database");

                    Settings.Save();
                }
            });
        }