aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2020-04-13 11:45:48 -0700
committerGravatar MarkKoz <[email protected]>2020-04-17 11:43:32 -0700
commit427c954903a62fe75aa22cf0fde9a52d2d6f2287 (patch)
treee3186850393cb210ebd1e7da5a4a805e6d0d8022
parentHelpChannels: add helper function to check for claimant role (diff)
HelpChannels: clear roles when resetting permissions
Claimants will have a special role that needs to be removed rather than using member overwrites for the category.
-rw-r--r--bot/cogs/help_channels.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/bot/cogs/help_channels.py b/bot/cogs/help_channels.py
index d47a42ca6..5dc90ee8e 100644
--- a/bot/cogs/help_channels.py
+++ b/bot/cogs/help_channels.py
@@ -632,18 +632,16 @@ class HelpChannels(Scheduler, commands.Cog):
await category.set_permissions(member, **permissions)
async def reset_send_permissions(self) -> None:
- """Reset send permissions for members with it set to False in the Available category."""
+ """Reset send permissions in the Available category for claimants."""
log.trace("Resetting send permissions in the Available category.")
+ guild = self.bot.get_guild(constants.Guild.id)
- for member, overwrite in self.available_category.overwrites.items():
- if isinstance(member, discord.Member) and overwrite.send_messages is False:
+ # TODO: replace with a persistent cache cause checking every member is quite slow
+ for member in guild.members:
+ if self.is_claimant(member):
log.trace(f"Resetting send permissions for {member} ({member.id}).")
-
- # We don't use the permissions helper function here as we may have to reset multiple overwrites
- # and we don't want to enforce the permissions synchronization in each iteration.
- await self.available_category.set_permissions(member, overwrite=None)
-
- log.trace(f"Ensuring channels in `Help: Available` are synchronized after permissions reset.")
+ role = discord.Object(constants.Roles.help_cooldown)
+ await member.remove_roles(role)
async def reset_claimant_send_permission(self, channel: discord.TextChannel) -> None:
"""Reset send permissions in the Available category for the help `channel` claimant."""