示例#1
0
        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);
        }
示例#2
0
        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);
        }