コード例 #1
0
ファイル: FilterService.cs プロジェクト: Nielk1/NadekoBot
        public async Task <bool> FilterInvites(IGuild guild, IUserMessage usrMsg)
        {
            if (guild is null)
            {
                return(false);
            }
            if (usrMsg is null)
            {
                return(false);
            }

            if ((InviteFilteringChannels.Contains(usrMsg.Channel.Id) ||
                 InviteFilteringServers.Contains(guild.Id)) &&
                usrMsg.Content.IsDiscordInvite())
            {
                try
                {
                    await usrMsg.DeleteAsync().ConfigureAwait(false);

                    return(true);
                }
                catch (HttpException ex)
                {
                    Log.Warning("I do not have permission to filter invites in channel with id " + usrMsg.Channel.Id, ex);
                    return(true);
                }
            }
            return(false);
        }
コード例 #2
0
ファイル: FilterCommands.cs プロジェクト: Lelouch99/bot_cc
            public async Task SrvrFilterInv()
            {
                var channel = (ITextChannel)Context.Channel;

                bool enabled;
                using (var uow = DbHandler.UnitOfWork())
                {
                    var config = uow.GuildConfigs.For(channel.Guild.Id, set => set);
                    enabled = config.FilterInvites = !config.FilterInvites;
                    await uow.CompleteAsync().ConfigureAwait(false);
                }

                if (enabled)
                {
                    InviteFilteringServers.Add(channel.Guild.Id);
                    await ReplyConfirmLocalized("invite_filter_server_on").ConfigureAwait(false);
                }
                else
                {
                    InviteFilteringServers.TryRemove(channel.Guild.Id);
                    await ReplyConfirmLocalized("invite_filter_server_off").ConfigureAwait(false);
                }
            }
コード例 #3
0
            public async Task SrvrFilterInv(IUserMessage imsg)
            {
                var channel = (ITextChannel)imsg.Channel;

                bool enabled;

                using (var uow = DbHandler.UnitOfWork())
                {
                    var config = uow.GuildConfigs.For(channel.Guild.Id);
                    enabled = config.FilterInvites = !config.FilterInvites;
                    await uow.CompleteAsync().ConfigureAwait(false);
                }

                if (enabled)
                {
                    InviteFilteringServers.Add(channel.Guild.Id);
                    await channel.SendMessageAsync("`Invite filtering enabled on this server.`").ConfigureAwait(false);
                }
                else
                {
                    InviteFilteringServers.TryRemove(channel.Guild.Id);
                    await channel.SendMessageAsync("`Invite filtering disabled on this server.`").ConfigureAwait(false);
                }
            }