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
|
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()
|
@bot.command()
|
||||||
@commands.has_permissions(administrator=True)
|
@commands.has_permissions(administrator=True)
|
||||||
async def init(ctx):
|
async def init(ctx):
|
||||||
|
13
family.py
13
family.py
@ -200,3 +200,16 @@ class FamilyManager:
|
|||||||
"""Liste toutes les racines"""
|
"""Liste toutes les racines"""
|
||||||
data = self._load()
|
data = self._load()
|
||||||
return data.get("roots", [])
|
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