From 567e044b998503a918821810e97991e4621a926c Mon Sep 17 00:00:00 2001 From: Endyya Date: Sun, 8 Dec 2024 21:12:07 +0100 Subject: [PATCH] Self role attribution working (some cases still missing) --- src/SilicaAnimus/discord_client.py | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/SilicaAnimus/discord_client.py b/src/SilicaAnimus/discord_client.py index 61015e4..b9992a4 100644 --- a/src/SilicaAnimus/discord_client.py +++ b/src/SilicaAnimus/discord_client.py @@ -62,17 +62,28 @@ async def button_get(self, interaction: discord.Interaction, button: discord.ui.Button): member_role = interaction.guild.get_role(678922012109963294) - embed = MessageTemplate( - description = f"Vous possédez déjà le rôle {member_role.mention}.") - if not member_role in interaction.user.roles: + embed = MessageTemplate() + + member_info = ( + await self.client.gsheet_client.get_member_by_discord_name( + interaction.user.name) + ) + + if member_role in interaction.user.roles: + embed.description = f"Vous possédez déjà le rôle {member_role.mention}." + await interaction.response.send_message(embed = embed, + ephemeral = True) + + elif member_info.in_spreadsheet and member_info.member_current_year: + await interaction.user.add_roles(member_role) + + embed.description = f"Rôle {member_role.mention} ajouté avec succès" + await interaction.response.send_message(embed = embed) + else: membership = MemberProcessModal() await interaction.response.send_modal(membership) await membership.wait() - - else: - await interaction.response.send_message(embed = embed, - ephemeral = True) - + @discord.ui.button(label = 'Signaler un problème', style = discord.ButtonStyle.danger) async def button_report(self, interaction: discord.Interaction, @@ -357,7 +368,8 @@ async def get_membership(interaction: discord.Interaction): embed = MessageTemplate( title = 'Obtenir votre role de membre sur le discord', description = '') - buttons = MemberProcessView(timeout = None, client = self.client) + buttons = MemberProcessView(timeout = None, + client = self.client.parent_client) await interaction.response.send_message(embed = embed, view = buttons)