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); }
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); } }
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); } }