Final beta for tonight
This commit is contained in:
34
bot.py
34
bot.py
@ -74,14 +74,20 @@ async def enregistrer(interaction: discord.Interaction):
|
||||
async def adopter(interaction: discord.Interaction, enfant: discord.Member):
|
||||
parent = interaction.user
|
||||
|
||||
# Debug
|
||||
parent_gen = family.get_generation(str(parent.id))
|
||||
enfant_gen = family.get_generation(str(enfant.id))
|
||||
print(f"Adoption: {parent.display_name} (gen {parent_gen}) → {enfant.display_name} (gen {enfant_gen})")
|
||||
|
||||
# Validations
|
||||
if parent.id == enfant.id:
|
||||
await interaction.response.send_message("❌ Auto-adoption impossible !", ephemeral=True)
|
||||
return
|
||||
|
||||
if family.get_generation(str(enfant.id)) < family.get_generation(str(parent.id)):
|
||||
|
||||
# Nouvelle condition plus permissive
|
||||
if enfant_gen > parent_gen:
|
||||
await interaction.response.send_message(
|
||||
"❌ Structure familiale invalide !",
|
||||
"❌ Impossible d'adopter quelqu'un de plus ancien que vous !",
|
||||
ephemeral=True
|
||||
)
|
||||
return
|
||||
@ -111,14 +117,14 @@ async def adopter(interaction: discord.Interaction, enfant: discord.Member):
|
||||
try:
|
||||
await enfant.add_roles(role)
|
||||
message = f"✅ {parent.mention} a adopté {enfant.mention} !"
|
||||
|
||||
|
||||
# Mentionne le partenaire si existe
|
||||
partner_id = family.get_partner(str(parent.id))
|
||||
if partner_id:
|
||||
partner = interaction.guild.get_member(int(partner_id))
|
||||
if partner:
|
||||
message += f"\n👫 Partenaire : {partner.mention}"
|
||||
|
||||
|
||||
await interaction.response.send_message(message)
|
||||
except discord.Forbidden:
|
||||
await interaction.response.send_message(
|
||||
@ -131,6 +137,16 @@ async def adopter(interaction: discord.Interaction, enfant: discord.Member):
|
||||
ephemeral=True
|
||||
)
|
||||
|
||||
@bot.tree.command(name="racine", description="Définir un membre comme racine")
|
||||
@commands.has_permissions(administrator=True)
|
||||
async def racine(interaction: discord.Interaction, membre: discord.Member, est_racine: bool):
|
||||
success = family.set_as_root(str(membre.id), est_racine)
|
||||
await interaction.response.send_message(
|
||||
f"✅ {membre.mention} est maintenant {'une racine' if est_racine else 'plus une racine'} !"
|
||||
if success else "❌ Erreur",
|
||||
ephemeral=True
|
||||
)
|
||||
|
||||
@bot.tree.command(name="couple", description="Officialiser une relation")
|
||||
async def couple(interaction: discord.Interaction, partenaire: discord.Member):
|
||||
membre = interaction.user
|
||||
@ -170,7 +186,7 @@ async def renier(interaction: discord.Interaction, enfant: discord.Member):
|
||||
"PETIT_ENFANT" if generation == 2 else
|
||||
"ARRIERE_PETIT_ENFANT"
|
||||
)
|
||||
|
||||
|
||||
if role_id:
|
||||
role = interaction.guild.get_role(role_id)
|
||||
if role:
|
||||
@ -191,7 +207,7 @@ async def renier(interaction: discord.Interaction, enfant: discord.Member):
|
||||
@bot.tree.command(name="arbre", description="Afficher l'arbre généalogique")
|
||||
async def arbre(interaction: discord.Interaction):
|
||||
await interaction.response.defer()
|
||||
|
||||
|
||||
# Télécharge les avatars des membres
|
||||
members = family.get_all_members()
|
||||
for member_id in members:
|
||||
@ -203,7 +219,7 @@ async def arbre(interaction: discord.Interaction):
|
||||
|
||||
# Génère l'arbre
|
||||
generate_tree("family.json", "arbre.png", config["ROOT_MEMBER_ID"])
|
||||
|
||||
|
||||
# Envoie le résultat
|
||||
try:
|
||||
await interaction.followup.send(file=discord.File("arbre.png"))
|
||||
@ -238,7 +254,7 @@ async def init(ctx):
|
||||
for member in ctx.guild.members:
|
||||
await update_member(member)
|
||||
count += 1
|
||||
|
||||
|
||||
await ctx.send(f"✅ {count} membres initialisés !")
|
||||
|
||||
bot.run(TOKEN)
|
||||
|
Reference in New Issue
Block a user