From ae6d491c44a7c5659cd41e06fe21b349e438f6b6 Mon Sep 17 00:00:00 2001 From: Mow910 Date: Sun, 16 Aug 2026 22:01:11 +0200 Subject: [PATCH] Prevent repeated rules acceptance role changes --- discordbot/rules_ack.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/discordbot/rules_ack.py b/discordbot/rules_ack.py index b69ea44..eeb4cf0 100644 --- a/discordbot/rules_ack.py +++ b/discordbot/rules_ack.py @@ -87,6 +87,16 @@ async def handle_rules_accept(interaction: discord.Interaction) -> None: presentation_ch = presentation_ch if isinstance(presentation_ch, TextChannel) else None success_text = _rules_ack_button_success_text(validated_role, presentation_ch) + # Le retrait du rôle d'arrivée est la marque persistante de l'acceptation. + # Le rôle validé peut ensuite être remplacé par le système de présentation ; + # dans ce cas, un nouveau clic ne doit surtout pas rejouer l'attribution. + if arrival_role and arrival_role not in member.roles: + await interaction.response.send_message( + "Tu as déjà accepté le règlement. Tes rôles ne seront pas modifiés.", + ephemeral=True, + ) + return + if validated_role in member.roles: await interaction.response.send_message(success_text, ephemeral=True) return