34 lines
1.2 KiB
Python
34 lines
1.2 KiB
Python
import discord
|
|
import logging
|
|
from database.helpers import ConfigurationHelper
|
|
from discord import Member
|
|
|
|
async def assignAutoRole(bot: discord.Client, member: Member):
|
|
"""Attribue automatiquement un rôle aux nouveaux membres"""
|
|
config = ConfigurationHelper()
|
|
|
|
if not config.getValue('autorole_enable'):
|
|
return
|
|
|
|
role_id = config.getIntValue('autorole_role_id')
|
|
if not role_id:
|
|
logging.warning('Auto-role activé mais aucun rôle configuré')
|
|
return
|
|
|
|
# Chercher le rôle dans le serveur du membre
|
|
role = member.guild.get_role(role_id)
|
|
if not role:
|
|
logging.error(f'Rôle auto-role {role_id} introuvable dans le serveur {member.guild.name}')
|
|
return
|
|
|
|
try:
|
|
await member.add_roles(role, reason='Auto-role: Attribution automatique à l\'arrivée')
|
|
logging.info(f'Auto-role: Rôle "{role.name}" attribué à {member.name} sur {member.guild.name}')
|
|
except discord.Forbidden:
|
|
logging.error(f'Auto-role: Permission refusée pour attribuer le rôle "{role.name}" à {member.name}')
|
|
except discord.HTTPException as e:
|
|
logging.error(f'Auto-role: Erreur HTTP lors de l\'attribution du rôle : {e}')
|
|
except Exception as e:
|
|
logging.error(f'Auto-role: Erreur inattendue : {e}')
|
|
|