public async Task <bool> AddPermissionAsync(ulong userId, ulong guildId, string node) { var split = node.Split('.'); if (!_permissionService.IsValidPermission(split[0], split[1])) { return(false); } if (await HasPermissionAsync(userId, guildId, node)) { throw new Exception("User already has permission"); } var user = await _userProvider.GetOrCreateUserAsync(userId, guildId); user.Permissions.Add(new Permission { Category = split[0], Node = split[1] }); _logger.Log($"Added permission for {user.DiscordUserId}", LogSeverity.SEVERITY_ALERT); await _db.UpdateOne(user, x => x.DiscordUserId == userId, guildId.ToString()); return(true); }
public async Task PrefixAsync(string newPrefix) { var guildConfiguration = await _dbStorage.FindOne <HamburgerGuildConfiguration>(x => x.DiscordGuildId == Context.Guild.Id, Context.Guild.Id.ToString()); var oldPrefix = guildConfiguration.CommandPrefix; guildConfiguration.CommandPrefix = newPrefix; await _dbStorage.UpdateOne(guildConfiguration, x => x.DiscordGuildId == Context.Guild.Id, Context.Guild.Id.ToString()); var embed = new EmbedBuilder() .WithTitle("Command prefix changed") .WithDescription($"The command prefix was changed from `{oldPrefix}` to `{newPrefix}`") .Build(); await Context.Channel.SendMessageAsync("", false, embed); }