Exemple #1
0
        public static void ban(Arg arg)
        {
            BasePlayer player = ArgEx.GetPlayer(arg, 0);

            if (!player || player.net == null || player.net.connection == null)
            {
                arg.ReplyWith("Player not found");
                return;
            }
            ServerUsers.User user = ServerUsers.Get(player.userID);
            if (user != null && user.group == ServerUsers.UserGroup.Banned)
            {
                arg.ReplyWith($"User {player.userID} is already banned");
                return;
            }
            string @string = arg.GetString(1, "No Reason Given");
            long   expiry;
            string durationSuffix;

            if (TryGetBanExpiry(arg, 2, out expiry, out durationSuffix))
            {
                ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, @string, expiry);
                string text = "";
                if (player.IsConnected && player.net.connection.ownerid != 0L && player.net.connection.ownerid != player.net.connection.userid)
                {
                    text += $" and also banned ownerid {player.net.connection.ownerid}";
                    ServerUsers.Set(player.net.connection.ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, $"Family share owner of {player.net.connection.userid}"), -1L);
                }
                ServerUsers.Save();
                arg.ReplyWith($"Kickbanned User{durationSuffix}: {player.userID} - {player.displayName}{text}");
                Chat.Broadcast("Kickbanning " + player.displayName + durationSuffix + " (" + @string + ")", "SERVER", "#eee", 0uL);
                Network.Net.sv.Kick(player.net.connection, "Banned" + durationSuffix + ": " + @string);
            }
        }
        public static void ban(ConsoleSystem.Arg arg)
        {
            BasePlayer player = arg.GetPlayer(0);

            if (!player || player.net == null || player.net.connection == null)
            {
                arg.ReplyWith("Player not found");
                return;
            }
            ServerUsers.User user = ServerUsers.Get(player.userID);
            if (user != null && user.@group == ServerUsers.UserGroup.Banned)
            {
                arg.ReplyWith(string.Concat("User ", player.userID, " is already banned"));
                return;
            }
            string str = arg.GetString(1, "No Reason Given");

            ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, str);
            string str1 = "";

            if (player.IsConnected && player.net.connection.ownerid != player.net.connection.userid)
            {
                str1 = string.Concat(str1, " and also banned ownerid ", player.net.connection.ownerid);
                ServerUsers.Set(player.net.connection.ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, string.Concat("Family share owner of ", player.net.connection.userid)));
            }
            ServerUsers.Save();
            arg.ReplyWith(string.Concat(new object[] { "Kickbanned User: "******" - ", player.displayName, str1 }));
            Chat.Broadcast(string.Concat(new string[] { "Kickbanning ", player.displayName, " (", str, ")" }), "SERVER", "#eee", (ulong)0);
            Network.Net.sv.Kick(player.net.connection, string.Concat("Banned: ", str));
        }
        //Not really a hook but sorta as we are copy paste overwriting it
        void OverwriteBanCommand(ConsoleSystem.Arg arg)
        {
            BasePlayer player = ArgEx.GetPlayer(arg, 0);

            if (!(bool)player || player.net == null || player.net.connection == null)
            {
                arg.ReplyWith("Player not found");
            }
            else
            {
                ServerUsers.User user = ServerUsers.Get(player.userID);
                if (user != null && user.group == ServerUsers.UserGroup.Banned)
                {
                    arg.ReplyWith("User " + player.userID + " is already banned");
                }
                else
                {
                    string @string = arg.GetString(1, "No Reason Given");
                    ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, @string);
                    string text = string.Empty;
                    if (player.IsConnected && player.net.connection.ownerid != player.net.connection.userid)
                    {
                        text = text + " and also banned ownerid " + player.net.connection.ownerid;
                        ServerUsers.Set(player.net.connection.ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, "Family share owner of " + player.net.connection.userid));
                    }
                    //We don't actually have to save, because we save on user group changed
                    //OnServerSaveUsers();
                    //ServerUsers.Save();
                    arg.ReplyWith("Kickbanned User: "******" - " + player.displayName + text);
                    PrintToChat("Kickbanning " + player.displayName + " (" + @string + ")", "SERVER", "#eee", 0uL);
                    Network.Net.sv.Kick(player.net.connection, "Banned: " + @string);
                }
            }
        }
Exemple #4
0
        public static void ban(ConsoleSystem.Arg arg)
        {
            BasePlayer player = arg.GetPlayer(0);

            if (!Object.op_Implicit((Object)player) || player.net == null || player.net.get_connection() == null)
            {
                arg.ReplyWith("Player not found");
            }
            else
            {
                ServerUsers.User user = ServerUsers.Get(player.userID);
                if (user != null && user.group == ServerUsers.UserGroup.Banned)
                {
                    arg.ReplyWith("User " + (object)player.userID + " is already banned");
                }
                else
                {
                    string notes = arg.GetString(1, "No Reason Given");
                    ServerUsers.Set(player.userID, ServerUsers.UserGroup.Banned, player.displayName, notes);
                    string str = "";
                    if (player.IsConnected && player.net.get_connection().ownerid != player.net.get_connection().userid)
                    {
                        str = str + " and also banned ownerid " + (object)(ulong)player.net.get_connection().ownerid;
                        ServerUsers.Set((ulong)player.net.get_connection().ownerid, ServerUsers.UserGroup.Banned, player.displayName, arg.GetString(1, "Family share owner of " + (object)(ulong)player.net.get_connection().userid));
                    }
                    ServerUsers.Save();
                    arg.ReplyWith("Kickbanned User: "******" - " + player.displayName + str);
                    Chat.Broadcast("Kickbanning " + player.displayName + " (" + notes + ")", "SERVER", "#eee", 0UL);
                    ((Server)Net.sv).Kick(player.net.get_connection(), "Banned: " + notes);
                }
            }
        }
 public static ServerUsers.User Get(ulong uid)
 {
     ServerUsers.User user = (ServerUsers.User)null;
     if (ServerUsers.users.TryGetValue(uid, out user))
     {
         return(user);
     }
     return((ServerUsers.User)null);
 }
 public static bool Is(ulong uid, ServerUsers.UserGroup group)
 {
     ServerUsers.User user = ServerUsers.Get(uid);
     if (user == null)
     {
         return(false);
     }
     return(user.group == group);
 }
 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);
 }
Exemple #8
0
 public void OnNewConnection(Connection connection)
 {
     connection.connected = false;
     if (connection.token == null || connection.token.Length < 32)
     {
         Reject(connection, "Invalid Token");
         return;
     }
     if (connection.userid == 0L)
     {
         Reject(connection, "Invalid SteamID");
         return;
     }
     if (connection.protocol != 2306)
     {
         if (!DeveloperList.Contains(connection.userid))
         {
             Reject(connection, "Incompatible Version");
             return;
         }
         DebugEx.Log("Not kicking " + connection.userid + " for incompatible protocol (is a developer)");
     }
     if (ServerUsers.Is(connection.userid, ServerUsers.UserGroup.Banned))
     {
         ServerUsers.User user  = ServerUsers.Get(connection.userid);
         string           text  = user?.notes ?? "no reason given";
         string           text2 = ((user != null && user.expiry > 0) ? (" for " + (user.expiry - Epoch.Current).FormatSecondsLong()) : "");
         Reject(connection, "You are banned from this server" + text2 + " (" + text + ")");
         return;
     }
     if (ServerUsers.Is(connection.userid, ServerUsers.UserGroup.Moderator))
     {
         DebugEx.Log(connection.ToString() + " has auth level 1");
         connection.authLevel = 1u;
     }
     if (ServerUsers.Is(connection.userid, ServerUsers.UserGroup.Owner))
     {
         DebugEx.Log(connection.ToString() + " has auth level 2");
         connection.authLevel = 2u;
     }
     if (DeveloperList.Contains(connection.userid))
     {
         DebugEx.Log(connection.ToString() + " is a developer");
         connection.authLevel = 3u;
     }
     if (Interface.CallHook("IOnUserApprove", connection) == null)
     {
         m_AuthConnection.Add(connection);
         StartCoroutine(AuthorisationRoutine(connection));
     }
 }
    private bool CanJumpQueue(Connection connection)
    {
        object obj = Interface.CallHook("CanBypassQueue", (object)connection);

        if (obj is bool)
        {
            return((bool)obj);
        }
        if (DeveloperList.Contains((ulong)connection.userid))
        {
            return(true);
        }
        ServerUsers.User user = ServerUsers.Get((ulong)connection.userid);
        return(user != null && user.group == ServerUsers.UserGroup.Moderator || user != null && user.group == ServerUsers.UserGroup.Owner);
    }
        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));
        }
Exemple #11
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);
        }
Exemple #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);
        }
Exemple #13
0
        public static void ownerid(Arg arg)
        {
            ulong  uInt    = arg.GetUInt64(0, 0uL);
            string @string = arg.GetString(1, "unnamed");
            string string2 = arg.GetString(2, "no reason");

            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 + " is already an Owner");
                return;
            }
            ServerUsers.Set(uInt, ServerUsers.UserGroup.Owner, @string, string2, -1L);
            arg.ReplyWith("Added owner " + @string + ", steamid " + uInt);
        }
        public static void banid(ConsoleSystem.Arg arg)
        {
            ulong  num  = arg.GetUInt64(0, (ulong)0);
            string str  = arg.GetString(1, "unnamed");
            string str1 = arg.GetString(2, "no reason");

            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, " is already banned"));
                return;
            }
            ServerUsers.Set(num, ServerUsers.UserGroup.Banned, str, str1);
            arg.ReplyWith(string.Concat(new object[] { "Banned User: "******" - ", str }));
        }
Exemple #15
0
        public static void banid(Arg arg)
        {
            ulong  uInt    = arg.GetUInt64(0, 0uL);
            string text    = arg.GetString(1, "unnamed");
            string @string = arg.GetString(2, "no reason");

            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 + " is already banned");
            }
            else
            {
                long   expiry;
                string durationSuffix;
                if (!TryGetBanExpiry(arg, 3, out expiry, out durationSuffix))
                {
                    return;
                }
                string     text2      = "";
                BasePlayer basePlayer = BasePlayer.FindByID(uInt);
                if (basePlayer != null && basePlayer.IsConnected)
                {
                    text = basePlayer.displayName;
                    if (basePlayer.IsConnected && basePlayer.net.connection.ownerid != 0L && basePlayer.net.connection.ownerid != basePlayer.net.connection.userid)
                    {
                        text2 += $" and also banned ownerid {basePlayer.net.connection.ownerid}";
                        ServerUsers.Set(basePlayer.net.connection.ownerid, ServerUsers.UserGroup.Banned, basePlayer.displayName, arg.GetString(1, $"Family share owner of {basePlayer.net.connection.userid}"), expiry);
                    }
                    Chat.Broadcast("Kickbanning " + basePlayer.displayName + durationSuffix + " (" + @string + ")", "SERVER", "#eee", 0uL);
                    Network.Net.sv.Kick(basePlayer.net.connection, "Banned" + durationSuffix + ": " + @string);
                }
                ServerUsers.Set(uInt, ServerUsers.UserGroup.Banned, text, @string, expiry);
                arg.ReplyWith($"Banned User{durationSuffix}: {uInt} - \"{text}\" for \"{@string}\"{text2}");
            }
        }
Exemple #16
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);
                }
            }
        }
Exemple #17
0
        public static void banid(ConsoleSystem.Arg arg)
        {
            ulong  uint64   = arg.GetUInt64(0, 0UL);
            string username = arg.GetString(1, "unnamed");
            string notes    = arg.GetString(2, "no reason");

            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 + " is already banned");
                }
                else
                {
                    ServerUsers.Set(uint64, ServerUsers.UserGroup.Banned, username, notes);
                    arg.ReplyWith("Banned User: "******" - " + username);
                }
            }
        }
Exemple #18
0
 private bool UsernameValid(ServerUsers.User user)
 {
     return(UsernameValid(user.steamid, user.username));
 }
Exemple #19
0
 public PlayerBan(ServerUsers.User user)
 {
     SteamID  = user.steamid;
     Username = user.username;
     Reason   = user.notes;
 }