Final fixes
This commit is contained in:
41
bot.py
41
bot.py
@ -275,6 +275,47 @@ async def enfants(interaction: discord.Interaction):
|
||||
ephemeral=True
|
||||
)
|
||||
|
||||
@bot.tree.command(name="separer", description="Mettre fin à une relation")
|
||||
async def separer(interaction: discord.Interaction, partenaire: discord.Member):
|
||||
membre = interaction.user
|
||||
|
||||
# Validation
|
||||
if membre.id == partenaire.id:
|
||||
await interaction.response.send_message(
|
||||
"❌ Impossible de se séparer de soi-même !",
|
||||
ephemeral=True
|
||||
)
|
||||
return
|
||||
|
||||
# Vérifie que le couple existe
|
||||
if not family.get_partner(str(membre.id)) == str(partenaire.id):
|
||||
await interaction.response.send_message(
|
||||
"❌ Vous n'êtes pas en couple avec cette personne",
|
||||
ephemeral=True
|
||||
)
|
||||
return
|
||||
|
||||
# Exécute la séparation
|
||||
if family.remove_couple(str(membre.id), str(partenaire.id)):
|
||||
# Message avec mention des enfants s'il y en a
|
||||
enfants = family.get_children(str(membre.id)) + family.get_children(str(partenaire.id))
|
||||
|
||||
if enfants:
|
||||
enfants_mentions = ' '.join([f"<@{e}>" for e in enfants])
|
||||
message = (
|
||||
f"💔 {membre.mention} et {partenaire.mention} ont rompu.\n"
|
||||
f"👶 Enfant(s) concerné(s) : {enfants_mentions}"
|
||||
)
|
||||
else:
|
||||
message = f"💔 {membre.mention} et {partenaire.mention} ont rompu."
|
||||
|
||||
await interaction.response.send_message(message)
|
||||
else:
|
||||
await interaction.response.send_message(
|
||||
"❌ Erreur lors de la séparation",
|
||||
ephemeral=True
|
||||
)
|
||||
|
||||
@bot.command()
|
||||
@commands.has_permissions(administrator=True)
|
||||
async def init(ctx):
|
||||
|
13
family.py
13
family.py
@ -200,3 +200,16 @@ class FamilyManager:
|
||||
"""Liste toutes les racines"""
|
||||
data = self._load()
|
||||
return data.get("roots", [])
|
||||
def remove_couple(self, member1_id: str, member2_id: str) -> bool:
|
||||
"""
|
||||
Supprime un lien de couple entre deux membres
|
||||
:return: True si suppression effectuée, False si couple introuvable
|
||||
"""
|
||||
data = self._load()
|
||||
couple = sorted([str(member1_id), str(member2_id)])
|
||||
|
||||
if couple in data["couples"]:
|
||||
data["couples"].remove(couple)
|
||||
self._save(data)
|
||||
return True
|
||||
return False
|
||||
|
Reference in New Issue
Block a user