Fix des bugs de rôle & Amélioration du système de validation des formulaire whitelist
This commit is contained in:
parent
e61c568f77
commit
c40c3f1f12
2 changed files with 76 additions and 29 deletions
|
|
@ -508,18 +508,65 @@ class Ticket(commands.Cog):
|
|||
citoyen_role = discord.utils.get(message.guild.roles, id=int(citoyen_role_id))
|
||||
|
||||
if attente_oral_role in user.roles:
|
||||
# Deuxième "validé" détecté
|
||||
if attente_oral_role: await user.remove_roles(attente_oral_role)
|
||||
if citoyen_role: await user.add_roles(citoyen_role)
|
||||
await message.channel.edit(name=f"{user.name}-citoyen")
|
||||
# Deuxième "validé" détecté -> Citoyen / Accepté
|
||||
if attente_oral_role:
|
||||
await user.remove_roles(attente_oral_role)
|
||||
if citoyen_role:
|
||||
await user.add_roles(citoyen_role)
|
||||
|
||||
new_name = f"accepté-{user.display_name}"
|
||||
new_name = new_name.replace(" ", "-").lower()[:100]
|
||||
await message.channel.edit(name=new_name)
|
||||
|
||||
# DM Professionnel
|
||||
try:
|
||||
embed_dm = discord.Embed(
|
||||
title="🎉 Félicitations - Citoyenneté Validée !",
|
||||
description=f"Nous avons le plaisir de t'annoncer que ton passage sur **{message.guild.name}** a été validé avec succès !",
|
||||
color=discord.Color.green()
|
||||
)
|
||||
embed_dm.add_field(name="🏙️ Nouveau Statut", value="Citoyen", inline=True)
|
||||
embed_dm.add_field(name="📍 Serveur", value=message.guild.name, inline=True)
|
||||
embed_dm.add_field(name="📋 Prochaine étape", value="Tu peux désormais te connecter au serveur et commencer ton aventure RP. N'oublie pas de consulter les salons d'informations !", inline=False)
|
||||
embed_dm.add_field(name="🔗 Lien vers ton ticket", value=f"[Clique ici pour voir ton ticket]({message.channel.jump_url})", inline=False)
|
||||
embed_dm.set_footer(text=f"L'équipe {message.guild.name}")
|
||||
embed_dm.set_thumbnail(url=message.guild.icon.url if message.guild.icon else None)
|
||||
|
||||
await user.send(embed=embed_dm)
|
||||
except (discord.Forbidden, discord.HTTPException):
|
||||
kuby_logger.warning(f"Impossible d'envoyer le DM de validation finale à {user} (DMs fermés)")
|
||||
|
||||
else:
|
||||
# Premier "validé" détecté
|
||||
if candidature_a_faire_role: await user.remove_roles(candidature_a_faire_role)
|
||||
if attente_oral_role: await user.add_roles(attente_oral_role)
|
||||
await message.channel.edit(name=f"{user.name}-oral")
|
||||
# Premier "validé" détecté -> Oral à faire
|
||||
if candidature_a_faire_role:
|
||||
await user.remove_roles(candidature_a_faire_role)
|
||||
if attente_oral_role:
|
||||
await user.add_roles(attente_oral_role)
|
||||
|
||||
new_name = f"oral-à-faire-{user.display_name}"
|
||||
new_name = new_name.replace(" ", "-").lower()[:100]
|
||||
await message.channel.edit(name=new_name)
|
||||
|
||||
# DM Professionnel
|
||||
try:
|
||||
embed_dm = discord.Embed(
|
||||
title="📝 Validation Étape Écrite",
|
||||
description=f"Ta candidature écrite sur **{message.guild.name}** a été examinée et validée par notre équipe !",
|
||||
color=discord.Color.orange()
|
||||
)
|
||||
embed_dm.add_field(name="🎤 Statut Actuel", value="Attente Oral", inline=True)
|
||||
embed_dm.add_field(name="🛠️ Action Requise", value="Merci de te rendre dans le salon vocal 'Attente Oral' dès que tu es disponible pour passer ton entretien.", inline=False)
|
||||
embed_dm.add_field(name="🔗 Lien vers ton ticket", value=f"[Clique ici pour voir ton ticket]({message.channel.jump_url})", inline=False)
|
||||
embed_dm.set_footer(text=f"L'équipe {message.guild.name}")
|
||||
embed_dm.set_thumbnail(url=message.guild.icon.url if message.guild.icon else None)
|
||||
|
||||
await user.send(embed=embed_dm)
|
||||
except (discord.Forbidden, discord.HTTPException):
|
||||
kuby_logger.warning(f"Impossible d'envoyer le DM de validation écrite à {user} (DMs fermés)")
|
||||
|
||||
except Exception as e:
|
||||
print(f"Erreur lors du traitement du ticket : {e}")
|
||||
kuby_logger.error(f"Erreur lors du traitement du ticket whitelist : {e}", exc_info=True)
|
||||
await message.channel.send(f"❌ Une erreur est survenue lors de l'attribution des rôles : {e}")
|
||||
|
||||
async def setup(bot):
|
||||
await bot.add_cog(Ticket(bot))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue