Skip to content

Commit 95ca55b

Browse files
committed
create command for creating club
1 parent 09ca5b0 commit 95ca55b

3 files changed

Lines changed: 59 additions & 6 deletions

File tree

bot.toml.example

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,22 @@ log_level = "INFO"
55
[guild]
66
id = <the id of the server here>
77

8-
[guild.club.1] # AE
8+
[guild.clubs.1] # AE
99
president_role_id = <role id>
1010
member_role_id = <role id>
11-
[guild.club.29] # Club Welcome
11+
[guild.clubs.29] # Club Welcome
1212
president_role_id = <role id>
1313
member_role_id = <role id>
14-
[guild.club.38] # Troll Penché
14+
[guild.clubs.38] # Troll Penché
1515
president_role_id = <role id>
1616
member_role_id = <role id>
17-
[guild.club.43] # Reflex
17+
[guild.clubs.43] # Reflex
1818
president_role_id = <role id>
1919
member_role_id = <role id>
20-
[guild.club.79] # Cook'UT
20+
[guild.clubs.79] # Cook'UT
2121
president_role_id = <role id>
2222
member_role_id = <role id>
2323

2424
[sith_api]
2525
api_key = "<your sith api token here>"
26+
url = "https://ae.utbm.fr/"

src/commands/admin.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,7 @@ def __init__(self, bot: AeBot):
1919
async def sync_commands(self, ctx: Context):
2020
"""Actualise les commandes du bot."""
2121
synced: list[AppCommand] = await self._bot.tree.sync()
22-
msg = "\n".join([f"- {cmd.name}" for cmd in synced])
22+
await self._bot.tree.sync(guild=ctx.guild)
23+
cmd_list = "\n".join([f"- {cmd.name}" for cmd in synced])
24+
msg = f"Commandes synchronisées :\n{cmd_list}"
2325
await ctx.reply(msg)

src/commands/club.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from typing import TYPE_CHECKING
44

5+
import discord
56
from discord import Interaction, Member, app_commands
67
from discord.app_commands import Choice, Transform, Transformer
78
from discord.ext import commands
@@ -70,3 +71,52 @@ async def add_club_member(
7071
return
7172
await member.add_roles(interaction.guild.get_role(club.member_role_id))
7273
await interaction.followup.send("Rôle attribué :thumbs_up:")
74+
75+
@app_commands.command(name="create")
76+
@app_commands.autocomplete(club=autocomplete_club)
77+
async def create_club(self, interaction: Interaction, club: int):
78+
await interaction.response.defer(thinking=True)
79+
serv = interaction.guild
80+
clu = await self.club_service.get_club(club)
81+
if clu is None:
82+
await interaction.followup.send("Erreur : Club introuvable.")
83+
return
84+
club_name = clu.name
85+
86+
# region create the role for member, presidence and treasurer
87+
await serv.create_role(
88+
name=f"Président {club_name}", color=discord.Color.from_str("#FFFFFF")
89+
)
90+
await serv.create_role(
91+
name=f"Trésorier {club_name}", color=discord.Color.from_str("#FFFFFF")
92+
)
93+
await serv.create_role(
94+
name=f"Membre {club_name}", color=discord.Color.from_str("#FFFFFF")
95+
)
96+
# endregion
97+
98+
# region create the clubs category
99+
"""keep in memory roles for the club"""
100+
president = discord.utils.get(serv.roles, name=f"Président {club_name}")
101+
membre = discord.utils.get(serv.roles, name=f"Membre {club_name}")
102+
tresorier = discord.utils.get(serv.roles, name=f"Trésorier {club_name}")
103+
104+
overwrites = {
105+
serv.default_role: discord.PermissionOverwrite(read_messages=False),
106+
president: discord.PermissionOverwrite(
107+
read_messages=True, manage_channels=True
108+
),
109+
membre: discord.PermissionOverwrite(read_messages=True),
110+
tresorier: discord.PermissionOverwrite(read_messages=True),
111+
}
112+
113+
await serv.create_category(club_name, overwrites=overwrites)
114+
# enderegion
115+
116+
# region create default channel
117+
categorie = discord.utils.get(serv.categories, name=club_name)
118+
await serv.create_text_channel(f"Général-{club_name}", category=categorie)
119+
await serv.create_voice_channel(f"Général-{club_name}", category=categorie)
120+
121+
await interaction.followup.send(club_name)
122+
# endregion

0 commit comments

Comments
 (0)