partirdezero/discord_integration/core/role_logic.py

39 lines
No EOL
1.5 KiB
Python

import discord
async def check_role_reaction(payload, client, target_message_id, target_role_id, target_emoji):
# 1. On vérifie si c'est le bon message
if payload.message_id != target_message_id:
return # On ignore si ce n'est pas le bon message
# 2. On vérifie si c'est le bon emoji
if str(payload.emoji) == target_emoji:
guild = client.get_guild(payload.guild_id)
if guild is None:
print("Erreur: Impossible de trouver le serveur (Guild is None).")
return
member = guild.get_member(payload.user_id)
if member is None:
print("Erreur: Impossible de trouver le membre (Member is None).")
return
role = guild.get_role(target_role_id)
if role is None:
print("Erreur : Le role n'existe pas.")
return
try:
await member.add_roles(role)
print(f"🎉 SUCCÈS : Rôle donné à {member.name} !")
try:
await member.send("Bienvenue ! Tu as accès aux salons.")
except:
print("Note: MP bloqués par l'utilisateur.")
except discord.Forbidden:
print("⛔ ERREUR PERMISSION : Je n'ai pas le droit de donner ce rôle !")
print(
"👉 SOLUTION : Va dans Paramètres Serveur > Rôles. Glisse le rôle 'PartirDeZero Bot' AU-DESSUS du rôle 'Membres'.")
except Exception as e:
print(f"❌ Erreur inconnue : {e}")