mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-21 18:27:59 -05:00
[Mod] Move ignored guilds and channels to core (#3472)
* Move ignored guilds and channels to core Add caching for ignored guilds and channels Add caching for whitelist and blacklist Fix #3220 Add consume-rest for whitelist and blacklist commands to add multiple users or roles in one command * Add ability to ignore channel categories * black * moveignorechannels should be owner only and cleanup changes * add changelog entries * address Feedback
This commit is contained in:
@@ -47,84 +47,3 @@ class MoveToCore(MixinMeta):
|
||||
|
||||
await asyncio.sleep(delay)
|
||||
await _delete_helper(message)
|
||||
|
||||
# When the below are moved to core, the global check in .modcore needs to be moved as well.
|
||||
@commands.group()
|
||||
@commands.guild_only()
|
||||
@checks.admin_or_permissions(manage_channels=True)
|
||||
async def ignore(self, ctx: commands.Context):
|
||||
"""Add servers or channels to the ignore list."""
|
||||
if ctx.invoked_subcommand is None:
|
||||
await ctx.send(await self.count_ignored())
|
||||
|
||||
@ignore.command(name="channel")
|
||||
async def ignore_channel(self, ctx: commands.Context, channel: discord.TextChannel = None):
|
||||
"""Ignore commands in the channel.
|
||||
|
||||
Defaults to the current channel.
|
||||
"""
|
||||
if not channel:
|
||||
channel = ctx.channel
|
||||
if not await self.settings.channel(channel).ignored():
|
||||
await self.settings.channel(channel).ignored.set(True)
|
||||
await ctx.send(_("Channel added to ignore list."))
|
||||
else:
|
||||
await ctx.send(_("Channel already in ignore list."))
|
||||
|
||||
@ignore.command(name="server", aliases=["guild"])
|
||||
@checks.admin_or_permissions(manage_guild=True)
|
||||
async def ignore_guild(self, ctx: commands.Context):
|
||||
"""Ignore commands in this server."""
|
||||
guild = ctx.guild
|
||||
if not await self.settings.guild(guild).ignored():
|
||||
await self.settings.guild(guild).ignored.set(True)
|
||||
await ctx.send(_("This server has been added to the ignore list."))
|
||||
else:
|
||||
await ctx.send(_("This server is already being ignored."))
|
||||
|
||||
@commands.group()
|
||||
@commands.guild_only()
|
||||
@checks.admin_or_permissions(manage_channels=True)
|
||||
async def unignore(self, ctx: commands.Context):
|
||||
"""Remove servers or channels from the ignore list."""
|
||||
if ctx.invoked_subcommand is None:
|
||||
await ctx.send(await self.count_ignored())
|
||||
|
||||
@unignore.command(name="channel")
|
||||
async def unignore_channel(self, ctx: commands.Context, channel: discord.TextChannel = None):
|
||||
"""Remove a channel from ignore the list.
|
||||
|
||||
Defaults to the current channel.
|
||||
"""
|
||||
if not channel:
|
||||
channel = ctx.channel
|
||||
|
||||
if await self.settings.channel(channel).ignored():
|
||||
await self.settings.channel(channel).ignored.set(False)
|
||||
await ctx.send(_("Channel removed from ignore list."))
|
||||
else:
|
||||
await ctx.send(_("That channel is not in the ignore list."))
|
||||
|
||||
@unignore.command(name="server", aliases=["guild"])
|
||||
@checks.admin_or_permissions(manage_guild=True)
|
||||
async def unignore_guild(self, ctx: commands.Context):
|
||||
"""Remove this server from the ignore list."""
|
||||
guild = ctx.message.guild
|
||||
if await self.settings.guild(guild).ignored():
|
||||
await self.settings.guild(guild).ignored.set(False)
|
||||
await ctx.send(_("This server has been removed from the ignore list."))
|
||||
else:
|
||||
await ctx.send(_("This server is not in the ignore list."))
|
||||
|
||||
async def count_ignored(self):
|
||||
ch_count = 0
|
||||
svr_count = 0
|
||||
for guild in self.bot.guilds:
|
||||
if not await self.settings.guild(guild).ignored():
|
||||
for channel in guild.text_channels:
|
||||
if await self.settings.channel(channel).ignored():
|
||||
ch_count += 1
|
||||
else:
|
||||
svr_count += 1
|
||||
msg = _("Currently ignoring:\n{} channels\n{} guilds\n").format(ch_count, svr_count)
|
||||
return box(msg)
|
||||
|
||||
Reference in New Issue
Block a user