Example #1
0
        public static async Task <string> Handle(Presence user, string[] args)
        {
            if (args.Length < 2)
            {
                return($"Usage: {Global.Config.CommandPrefix}restrict <safename> <reason>");
            }

            var username = Auth.GetSafeName(args[0]);
            var reason   = string.Join(" ", args.Skip(1));

            var toRestrict = await Presence.FromDatabase(username);

            if (toRestrict is null)
            {
                return($"User <{username}> not found");
            }

            if (toRestrict.Restricted)
            {
                return($"{toRestrict} is already restricted");
            }

            await toRestrict.Ban();

            return($"{toRestrict} has restricted for {reason}");
        }
Example #2
0
        public static async Task <string> Handle(Presence user, string[] args)
        {
            if (args.Length < 2)
            {
                return($"Usage: {Global.Config.CommandPrefix}ban <safename> <reason>");
            }

            var username = Auth.GetSafeName(args[0]);
            var reason   = string.Join(" ", args.Skip(1));

            var toBan = await Presence.FromDatabase(username);

            if (toBan is null)
            {
                return($"User <{username}> not found");
            }

            if (toBan.Restricted && (toBan.User.Privileges & Privileges.Restricted) == 0)
            {
                return($"{toBan} is already banned");
            }

            await toBan.Ban(false);

            return($"{toBan} has banned for {reason}");
        }
Example #3
0
        public static async Task <Presence> Login(string name, string pwMd5)
        {
            var safe = GetSafeName(name);

            if (safe == Global.Bot.SafeName)
            {
                return(null);
            }

            var user = await Presence.FromDatabase(GetSafeName(name));

            if (user is null)
            {
                return(null);
            }

            if (Global.BCryptCache.ContainsKey(user.User.Password))
            {
                return(Global.BCryptCache[user.User.Password] == pwMd5 ? user : null);
            }

            var valid = BCrypt.Net.BCrypt.Verify(pwMd5, user.User.Password);

            if (!valid)
            {
                return(null);
            }

            Global.BCryptCache[user.User.Password] = pwMd5;
            return(user);
        }