Game creation: player channels are placed in turn order
This commit is contained in:
parent
77678878cc
commit
45c16cb9ad
|
|
@ -294,21 +294,30 @@ class Game:
|
||||||
}
|
}
|
||||||
self.config["observer_chan"] = (await game_category.create_text_channel("observers", overwrites = perms, position = 4)).id
|
self.config["observer_chan"] = (await game_category.create_text_channel("observers", overwrites = perms, position = 4)).id
|
||||||
logger.debug(f"[{self.guild}] Created observers channel")
|
logger.debug(f"[{self.guild}] Created observers channel")
|
||||||
|
|
||||||
tasks.append(asyncio.create_task(create_observers_chan()))
|
tasks.append(asyncio.create_task(create_observers_chan()))
|
||||||
|
|
||||||
async def create_player_channel(player: discord.Member, position: int):
|
async def create_player_channels():
|
||||||
|
create_player_channel_tasks = []
|
||||||
|
|
||||||
|
async def create_player_channel(player: discord.Member):
|
||||||
perms = {
|
perms = {
|
||||||
self.guild.default_role: discord.PermissionOverwrite(read_messages = False),
|
self.guild.default_role: discord.PermissionOverwrite(read_messages = False),
|
||||||
player: discord.PermissionOverwrite(read_messages = True),
|
player: discord.PermissionOverwrite(read_messages = True),
|
||||||
gm_role: discord.PermissionOverwrite(read_messages = True),
|
gm_role: discord.PermissionOverwrite(read_messages = True),
|
||||||
observer_role: discord.PermissionOverwrite(read_messages = True, send_messages = False),
|
observer_role: discord.PermissionOverwrite(read_messages = True, send_messages = False),
|
||||||
}
|
}
|
||||||
player_channel = await game_category.create_text_channel(player.name, overwrites = perms, position = position)
|
player_channel = await game_category.create_text_channel(player.name, overwrites = perms)
|
||||||
self.config["player_info"][str(player.id)]["channel"] = player_channel.id
|
self.config["player_info"][str(player.id)]["channel"] = player_channel.id
|
||||||
logger.debug(f"[{self.guild.name}] Created channel for player {player.name}")
|
logger.debug(f"[{self.guild.name}] Created channel for player {player.name}")
|
||||||
asyncio.create_task(player_channel.send(f"Hello! This is your private channel.\nIn here you can cast your votes, interact with the <@&{self.get_gm_role_id()}>, and write freely.\nHave a nice game!", allowed_mentions = discord.AllowedMentions(roles = True)))
|
asyncio.create_task(player_channel.send(f"Hello! This is your private channel.\nIn here you can cast your votes, interact with the <@&{self.get_gm_role_id()}>, and write freely.\nHave a nice game!", allowed_mentions = discord.AllowedMentions(roles = True)))
|
||||||
for i, player in enumerate(player_role.members):
|
|
||||||
tasks.append(asyncio.create_task(create_player_channel(player, 5 + i)))
|
for player in player_role.members:
|
||||||
|
create_player_channel_tasks.append(asyncio.create_task(create_player_channel(player)))
|
||||||
|
await asyncio.wait(create_player_channel_tasks)
|
||||||
|
logger.debug(f"[{self.guild.name}] Reordering player channels")
|
||||||
|
await asyncio.wait([asyncio.create_task(self.get_player_channel(player).edit(position = i + 4)) for i, player in enumerate(player_role.members)])
|
||||||
|
tasks.append(asyncio.create_task(create_player_channels()))
|
||||||
|
|
||||||
await asyncio.wait(tasks)
|
await asyncio.wait(tasks)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue