75 lines
No EOL
3.2 KiB
Python
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)) |