Ejemplo n.º 1
0
        public async Task RemoveUnverifyFromWebAsync(long userId, SocketGuildUser fromUser)
        {
            var unverify = await GrillBotRepository.UnverifyRepository.FindUnverifyByID(userId);

            if (unverify == null)
            {
                return;
            }

            var guild = DiscordClient.GetGuild(unverify.User.GuildIDSnowflake);

            if (guild == null)
            {
                GrillBotRepository.Remove(unverify);
                await GrillBotRepository.CommitAsync();

                Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == unverify.User.GuildIDSnowflake && o.UserId == unverify.User.UserIDSnowflake);
                return;
            }

            var user = await guild.GetUserFromGuildAsync(unverify.User.UserIDSnowflake);

            if (user == null)
            {
                GrillBotRepository.Remove(unverify);
                await GrillBotRepository.CommitAsync();

                Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == guild.Id && o.UserId == unverify.User.UserIDSnowflake);
                return;
            }

            await RemoveUnverifyAsync(guild, user, fromUser);

            Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == guild.Id && o.UserId == user.Id);
        }
Ejemplo n.º 2
0
        public async Task RemoveReplyAsync(SocketGuild guild, int id)
        {
            if (!BotState.AutoReplyItems.Any(o => o.GuildIDSnowflake == guild.Id && o.ID == id))
            {
                throw new ArgumentException($"Automatická odpověď s ID **{id}** neexistuje.");
            }

            var entity = await GrillBotRepository.AutoReplyRepository.FindItemByIdAsync(id);

            GrillBotRepository.Remove(entity);
            await GrillBotRepository.CommitAsync();

            BotState.AutoReplyItems.RemoveAll(o => o.ID == id);
        }
Ejemplo n.º 3
0
        public async Task OnUserLeftGuildAsync(SocketGuildUser user)
        {
            Queue.TryRemove <UnverifyBackgroundTask>(o => o.GuildId == user.Guild.Id && o.UserId == user.Id);

            var unverify = await GrillBotRepository.UnverifyRepository.FindUnverifyByUser(user.Guild.Id, user.Id);

            if (unverify == null)
            {
                return;
            }

            GrillBotRepository.Remove(unverify);
            await GrillBotRepository.CommitAsync();
        }
Ejemplo n.º 4
0
        public async Task DeleteItemAsync(long id)
        {
            var item = await GrillBotRepository.AuditLogs.FindItemByIdAsync(id);

            if (item == null)
            {
                return;
            }

            if (item.Files.Count > 0)
            {
                GrillBotRepository.RemoveCollection(item.Files);
            }

            GrillBotRepository.Remove(item);
            await GrillBotRepository.CommitAsync();
        }
Ejemplo n.º 5
0
        public async Task AutoUnverifyRemoveAsync(ulong guildID, ulong userID)
        {
            try
            {
                var unverify = await GrillBotRepository.UnverifyRepository.FindUnverifyByUser(guildID, userID);

                if (unverify == null)
                {
                    return;
                }

                var guild = DiscordClient.GetGuild(guildID);

                if (guild == null)
                {
                    GrillBotRepository.Remove(unverify);
                    await GrillBotRepository.CommitAsync();

                    return;
                }

                var user = await guild.GetUserFromGuildAsync(userID);

                if (user == null)
                {
                    GrillBotRepository.Remove(unverify);
                    await GrillBotRepository.CommitAsync();

                    return;
                }

                await RemoveUnverifyAsync(guild, user, DiscordClient.CurrentUser, true);
            }
            catch (Exception ex)
            {
                var message = new LogMessage(LogSeverity.Error, nameof(UnverifyService), "An error occured when unverify returning access.", ex);
                await Logger.OnLogAsync(message);
            }
        }