diff options
| author | 2020-06-11 09:36:38 +0300 | |
|---|---|---|
| committer | 2020-06-11 09:36:38 +0300 | |
| commit | 4b194e288aaca445947ad7df2c2202989f76a076 (patch) | |
| tree | 880cffcda832214c245b50dad4764d6c53842966 | |
| parent | Jams: Move category checking and creation to another function (diff) | |
Jams: Move overwrites generation to outside of command
| -rw-r--r-- | bot/cogs/jams.py | 50 |
1 files changed, 28 insertions, 22 deletions
diff --git a/bot/cogs/jams.py b/bot/cogs/jams.py index 0ebff5428..2b4575d5f 100644 --- a/bot/cogs/jams.py +++ b/bot/cogs/jams.py @@ -1,4 +1,5 @@ import logging +import typing as t from discord import CategoryChannel, Member, PermissionOverwrite, utils from discord.ext import commands @@ -41,28 +42,7 @@ class CodeJams(commands.Cog): return code_jam_category = await self.get_category(ctx) - - # First member is always the team leader - team_channel_overwrites = { - members[0]: PermissionOverwrite( - manage_messages=True, - read_messages=True, - manage_webhooks=True, - connect=True - ), - ctx.guild.default_role: PermissionOverwrite(read_messages=False, connect=False), - ctx.guild.get_role(Roles.verified): PermissionOverwrite( - read_messages=False, - connect=False - ) - } - - # Rest of members should just have read_messages - for member in members[1:]: - team_channel_overwrites[member] = PermissionOverwrite( - read_messages=True, - connect=True - ) + team_channel_overwrites = self.get_overwrites(members, ctx) # Create a text channel for the team team_channel = await ctx.guild.create_text_channel( @@ -114,6 +94,32 @@ class CodeJams(commands.Cog): return code_jam_category + def get_overwrites(self, members: t.List[Member], ctx: commands.Context) -> t.Dict[Member, PermissionOverwrite]: + """Get Code Jam team channels permission overwrites.""" + # First member is always the team leader + team_channel_overwrites = { + members[0]: PermissionOverwrite( + manage_messages=True, + read_messages=True, + manage_webhooks=True, + connect=True + ), + ctx.guild.default_role: PermissionOverwrite(read_messages=False, connect=False), + ctx.guild.get_role(Roles.verified): PermissionOverwrite( + read_messages=False, + connect=False + ) + } + + # Rest of members should just have read_messages + for member in members[1:]: + team_channel_overwrites[member] = PermissionOverwrite( + read_messages=True, + connect=True + ) + + return team_channel_overwrites + def setup(bot: Bot) -> None: """Load the CodeJams cog.""" |