Ajout de l'application discord_integration avec modèles, migrations, logique d'annonces et gestion des rôles dans Discord.
This commit is contained in:
parent
1354568495
commit
2ec4a5c065
18 changed files with 239 additions and 6 deletions
39
discord_integration/core/role_logic.py
Normal file
39
discord_integration/core/role_logic.py
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
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}")
|
||||
Loading…
Add table
Add a link
Reference in a new issue