diff --git a/Uchu.Core/Handlers/Commands/StandardCommandHandler.cs b/Uchu.Core/Handlers/Commands/StandardCommandHandler.cs index 634af068..d496a027 100644 --- a/Uchu.Core/Handlers/Commands/StandardCommandHandler.cs +++ b/Uchu.Core/Handlers/Commands/StandardCommandHandler.cs @@ -23,9 +23,9 @@ await UchuServer.Api.RunCommandAsync( public static string AddUser(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_AddUser_ArgumentsNullException); - + if (arguments.Length != 1) { return "adduser "; @@ -68,9 +68,9 @@ public static string AddUser(string[] arguments) public static string RemoveUser(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_RemoveUser_ArgumentsNullException); - + if (arguments.Length != 1) { return "removeuser "; @@ -100,9 +100,9 @@ public static string RemoveUser(string[] arguments) public static async Task BanUser(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_BanUser_ArgumentsNullException); - + if (arguments.Length != 2) { return $"{arguments[0]} "; @@ -133,9 +133,9 @@ public static async Task BanUser(string[] arguments) public static async Task PardonUser(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_PardonUser_ArgumentsNullException); - + if (arguments.Length != 1) { return $"{arguments[0]} "; @@ -176,9 +176,9 @@ public static string GetUsers() public static async Task ApproveUsernames(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_ApproveUsername_ArgumentsNullException); - + await using var ctx = new UchuContext(); if (arguments.Length == 0 || arguments[0].ToLower() == "*" || string.IsNullOrEmpty(arguments[0])) { @@ -225,9 +225,9 @@ public static async Task ApproveUsernames(string[] arguments) public static async Task RejectUserNames(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_RejectUserNames_ArgumentsNullException); - + await using var ctx = new UchuContext(); if (arguments.Length == 0 || arguments[0].ToLower() == "all") { @@ -267,9 +267,9 @@ public static async Task RejectUserNames(string[] arguments) public static async Task SetGameMasterLevel(string[] arguments) { if (arguments == null) - throw new ArgumentNullException(nameof(arguments), + throw new ArgumentNullException(nameof(arguments), ResourceStrings.StandardCommandHandler_SetGameMasterLevel_ArgumentsNullException); - + if (arguments.Length != 2) { return "gamemaster "; @@ -286,24 +286,18 @@ public static async Task SetGameMasterLevel(string[] arguments) return $"No user with the username of: {username}"; } - if (!Enum.TryParse(arguments[1], out var level)) + if (!Enum.TryParse(arguments[1], out var level) || + !Enum.IsDefined(typeof(GameMasterLevel), level)) { return "Invalid "; } - - if (Enum.IsDefined(typeof(GameMasterLevel), int.Parse(arguments[1]))) - { - user.GameMasterLevel = (int) level; - await ctx.SaveChangesAsync().ConfigureAwait(false); + user.GameMasterLevel = (int) level; - return$"Successfully set {user.Username}'s Game Master " + - $"level to {(GameMasterLevel) user.GameMasterLevel}"; - } - else - { - return "Invalid "; - } + await ctx.SaveChangesAsync().ConfigureAwait(false); + + return$"Successfully set {user.Username}'s Game Master " + + $"level to {(GameMasterLevel) user.GameMasterLevel}"; } private static string GetPassword() @@ -333,4 +327,4 @@ private static string GetPassword() return pwd.ToString(); } } -} \ No newline at end of file +} diff --git a/Uchu.Master/Api/AccountCommands.cs b/Uchu.Master/Api/AccountCommands.cs index 966729a0..bd051be4 100644 --- a/Uchu.Master/Api/AccountCommands.cs +++ b/Uchu.Master/Api/AccountCommands.cs @@ -18,14 +18,14 @@ public async Task CreateAccount(string accountName, string accountPasswo if (string.IsNullOrWhiteSpace(accountName)) { response.FailedReason = "username null"; - + return response; } if (string.IsNullOrWhiteSpace(accountPassword)) { response.FailedReason = "password null"; - + return response; } @@ -36,10 +36,10 @@ public async Task CreateAccount(string accountName, string accountPasswo if (duplicate) { response.FailedReason = "duplicate username"; - + return response; } - + var password = BCrypt.Net.BCrypt.EnhancedHashPassword(accountPassword); await ctx.Users.AddAsync(new User @@ -62,7 +62,7 @@ await ctx.Users.AddAsync(new User response.Username = user.Username; response.Hash = user.Password; } - + return response; } @@ -77,7 +77,7 @@ public async Task DeleteAccount(string accountName) return response; } - + await using (var ctx = new UchuContext()) { var user = await ctx.Users.FirstOrDefaultAsync(u => u.Username == accountName); @@ -99,12 +99,12 @@ public async Task DeleteAccount(string accountName) return response; } - + [ApiCommand("account/level")] public async Task AdminAccount(string accountName, string level) { var response = new AccountAdminResponse(); - + if (string.IsNullOrWhiteSpace(accountName)) { response.FailedReason = "username null"; @@ -129,11 +129,12 @@ public async Task AdminAccount(string accountName, string level) return response; } - - if (!Enum.TryParse(level, out var gameMasterLevel)) + + if (!Enum.TryParse(level, out var gameMasterLevel) || + !Enum.IsDefined(typeof(GameMasterLevel), gameMasterLevel)) { response.FailedReason = "invalid level"; - + return response; } @@ -192,7 +193,7 @@ public async Task BanAccount(string accountName, string reason) return response; } - + [ApiCommand("account/pardon")] public async Task PardonAccount(string accountName) { @@ -204,7 +205,7 @@ public async Task PardonAccount(string accountName) return response; } - + await using (var ctx = new UchuContext()) { var user = await ctx.Users.FirstOrDefaultAsync(u => u.Username == accountName); @@ -267,7 +268,7 @@ public async Task AccountInfo(string accountName) public async Task Accounts() { var response = new AccountListResponse(); - + await using var ctx = new UchuContext(); response.Success = true;