import discord from discord import app_commands from discord.ext import commands from utils.banque_manager import BanqueManager BANQUIER_ROLE_ID = 1360314740567576616 # ID du rôle des banquiers # ID du rôle banquier banque_manager = BanqueManager() class Pret(commands.Cog): def __init__(self, bot): self.bot = bot @app_commands.command(name="calculer_pret", description="Accorde un prêt bancaire à un utilisateur (Réservé aux banquiers).") async def calculer_pret( self, interaction: discord.Interaction, utilisateur: discord.Member, banque: str, montant: float, duree_annees: int ): """Les banquiers peuvent accorder un prêt à un utilisateur si son solde le permet.""" # Vérification de si le joueur executant la commande est un banquier if not any(role.id == BANQUIER_ROLE_ID for role in interaction.user.roles): await interaction.response.send_message( "❌ Vous n'avez pas la permission d'accorder un prêt.", ephemeral=True ) return user_id = str(utilisateur.id) success, result = banque_manager.ajouter_pret(user_id, banque, montant, duree_annees) if not success: await interaction.response.send_message(result, ephemeral=True) return total_a_rembourser = result taux_interet = banque_manager.comptes[user_id]['prets'][-1]['taux_interet'] * 100 # Vérifier si l'utilisateur a assez d'argent pour rembourser solde_utilisateur = banque_manager.comptes[user_id].get("solde", 0) if solde_utilisateur < total_a_rembourser: await interaction.response.send_message( f"❌ {utilisateur.mention} n'a pas assez d'argent pour rembourser ce prêt.\n" f"💰 **Solde actuel** : {solde_utilisateur}€\n" f"💳 **Montant à rembourser** : {total_a_rembourser}€", ephemeral=True ) return # Débiter le solde de l'utilisateur banque_manager.comptes[user_id]["solde"] -= total_a_rembourser banque_manager.save_data() # Création de l'embed embed = discord.Embed( title="🏦 Prêt bancaire accordé", description=f"Le prêt a été accordé par {interaction.user.mention} pour {utilisateur.mention}.", color=discord.Color.green() ) embed.set_thumbnail(url="https://cdn-icons-png.flaticon.com/512/2910/2910827.png") # Icône banque embed.add_field(name="💰 Montant emprunté", value=f"{montant}€", inline=True) embed.add_field(name="📅 Durée", value=f"{duree_annees} ans", inline=True) embed.add_field(name="📈 Taux d'intérêt", value=f"{taux_interet}%", inline=True) embed.add_field(name="💳 Montant total à rembourser", value=f"{total_a_rembourser}€", inline=False) embed.add_field(name="💰 Solde après prêt", value=f"{banque_manager.comptes[user_id]['solde']}€", inline=True) embed.set_footer(text="Prêt enregistré dans le compte bancaire ✅") await interaction.response.send_message(embed=embed) async def setup(bot): await bot.add_cog(Pret(bot))