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 # ID du rôle des banquiers banque_manager = BanqueManager() class Transactions(commands.Cog): def __init__(self, bot): self.bot = bot @app_commands.command(name="transactions", description="Affiche les transactions d'un utilisateur (réservé aux banquiers).") async def transactions(self, interaction: discord.Interaction, utilisateur: discord.Member): """Affiche l'historique des transactions d'un utilisateur (banquiers uniquement).""" # ✅ Récupération du vrai membre pour avoir les rôles member = interaction.guild.get_member(interaction.user.id) if not member: await interaction.response.send_message("❌ Impossible de vérifier vos permissions.", ephemeral=True) return # ✅ Vérification du rôle banquier if not any(role.id == BANQUIER_ROLE_ID for role in member.roles): await interaction.response.send_message("❌ Vous n'avez pas la permission de voir les transactions.", ephemeral=True) return banque_manager.load_data() user_id = str(utilisateur.id) # ✅ Vérification si l'utilisateur a des transactions if user_id not in banque_manager.comptes or "transactions" not in banque_manager.comptes[user_id]: await interaction.response.send_message(f"❌ {utilisateur.mention} n'a pas d'historique de transactions.", ephemeral=True) return transactions = banque_manager.comptes[user_id].get("transactions", []) if not transactions: await interaction.response.send_message(f"📜 {utilisateur.mention} n'a encore effectué aucune transaction.", ephemeral=True) return # ✅ Création de l'embed embed = discord.Embed( title=f"📜 Historique des transactions de {utilisateur.name}", color=discord.Color.gold() ) for t in transactions[-10:]: embed.add_field( name=f"📅 {t['date']}", value=( f"**Type**: {t['type']}\n" f"💰 **Montant**: {t['montant']}€\n" f"📤 **Émetteur**: <@{t['emetteur']}>\n" f"📥 **Destinataire**: <@{t['destinataire']}>" ), inline=False ) embed.set_footer(text="Seules les 10 dernières transactions sont affichées.") await interaction.response.send_message(embed=embed) async def setup(bot): await bot.add_cog(Transactions(bot))