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}"); }
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}"); }
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); }