Vicy_Publique/commandes/pret.py
2026-08-16 19:37:15 +02:00

75 lines
No EOL
3.2 KiB
Python

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))