Vicy_Publique/commandes/transactions.py
utilisateurqu 2e38d05152 Modularize bot: per-guild config system for roles/channels/categories
- Add utils/guild_config.py: centralized config loader per guild (data/guilds/{id}.json)
- Add commandes/config.py: /config set_role, /config set_channel, /config set_category, /config voir, /config reset
- Replace ALL hardcoded role IDs (banquier, gouvernement, citoyen, staff, ems, permis, fbm, ursaff, etc.) with guild_config lookups
- Replace ALL hardcoded channel IDs (welcome, candidature, questions, mp_reception) with guild_config lookups
- Replace ALL hardcoded category IDs (ticket) with guild_config lookups
- Remove duplicate commandes/welcome_message.py (kept utils/ version)
- Remove 20+ hardcoded snowflake IDs across 22 files
- Guilds configure via /config on Discord, no code changes needed
2026-08-17 00:12:57 +02:00

66 lines
2.6 KiB
Python

import discord
from discord import app_commands
from discord.ext import commands
from utils.banque_manager import BanqueManager
from utils.guild_config import has_role
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 has_role(member, "banquier"):
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))