aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2020-06-11 09:36:38 +0300
committerGravatar ks129 <[email protected]>2020-06-11 09:36:38 +0300
commit4b194e288aaca445947ad7df2c2202989f76a076 (patch)
tree880cffcda832214c245b50dad4764d6c53842966
parentJams: Move category checking and creation to another function (diff)
Jams: Move overwrites generation to outside of command
-rw-r--r--bot/cogs/jams.py50
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."""