Various fixes on tree and removing a member
This commit is contained in:
47
bot.py
47
bot.py
@ -173,35 +173,32 @@ async def couple(interaction: discord.Interaction, partenaire: discord.Member):
|
||||
ephemeral=True
|
||||
)
|
||||
|
||||
@bot.tree.command(name="renier", description="Renier un enfant")
|
||||
@bot.tree.command(name="renier", description="Renier et supprimer un enfant")
|
||||
async def renier(interaction: discord.Interaction, enfant: discord.Member):
|
||||
parent = interaction.user
|
||||
success = family.remove_child(str(parent.id), str(enfant.id))
|
||||
|
||||
if success:
|
||||
# Retire le rôle
|
||||
generation = family.get_generation(str(enfant.id))
|
||||
role_id = config["ROLE_IDS"].get(
|
||||
"ENFANT" if generation == 1 else
|
||||
"PETIT_ENFANT" if generation == 2 else
|
||||
"ARRIERE_PETIT_ENFANT"
|
||||
)
|
||||
|
||||
if role_id:
|
||||
role = interaction.guild.get_role(role_id)
|
||||
if role:
|
||||
try:
|
||||
await enfant.remove_roles(role)
|
||||
except discord.Forbidden:
|
||||
pass # On continue même si échec du retrait de rôle
|
||||
|
||||
await interaction.response.send_message(
|
||||
f"❌ {parent.mention} a renié {enfant.mention} !"
|
||||
)
|
||||
|
||||
# Supprime d'abord le lien parental
|
||||
family.remove_child(str(parent.id), str(enfant.id))
|
||||
|
||||
# Vérifie si l'enfant n'a plus aucun parent
|
||||
parents_restants = family.get_parents(str(enfant.id))
|
||||
|
||||
if not parents_restants:
|
||||
# Suppression complète
|
||||
if family.remove_member(str(enfant.id)):
|
||||
await interaction.response.send_message(
|
||||
f"❌ {parent.mention} a renié et supprimé {enfant.mention} de la famille !"
|
||||
)
|
||||
else:
|
||||
await interaction.response.send_message(
|
||||
"❌ Erreur lors de la suppression",
|
||||
ephemeral=True
|
||||
)
|
||||
else:
|
||||
# Cas où l'enfant a d'autres parents
|
||||
await interaction.response.send_message(
|
||||
"❌ Aucun lien parental trouvé.",
|
||||
ephemeral=True
|
||||
f"⚠️ {enfant.mention} a encore des parents ({len(parents_restants)}). "
|
||||
f"Seul le lien avec {parent.mention} a été rompu."
|
||||
)
|
||||
|
||||
@bot.tree.command(name="arbre", description="Afficher l'arbre généalogique")
|
||||
|
Reference in New Issue
Block a user