Initial commit: bot Discord Vicy V1.8
This commit is contained in:
commit
56958c5832
70 changed files with 8469 additions and 0 deletions
75
commandes/pret.py
Normal file
75
commandes/pret.py
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
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))
|
||||
Loading…
Add table
Add a link
Reference in a new issue