39 lines
No EOL
1.5 KiB
Python
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}") |