Initial commit: bot Discord Vicy V1.8
This commit is contained in:
commit
56958c5832
70 changed files with 8469 additions and 0 deletions
65
commandes/voir_carte_identite.py
Normal file
65
commandes/voir_carte_identite.py
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
import discord
|
||||
from discord import app_commands
|
||||
from discord.ext import commands
|
||||
from utils.data_manager import DataManager
|
||||
from utils.card_generator import CardGenerator
|
||||
|
||||
card_generator = CardGenerator()
|
||||
|
||||
class VoirIdentite(commands.Cog):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
@app_commands.command(name="voir_carte_identite", description="Afficher votre carte d'identité ou celle d'un autre utilisateur")
|
||||
async def voir_carte_identite(self, interaction: discord.Interaction, utilisateur: discord.Member = None):
|
||||
"""Affiche la carte d'identité d'un utilisateur"""
|
||||
|
||||
# Remplacer par l'ID de ton rôle gouvernement
|
||||
GOUVERNEMENT_ROLE_ID = 1360236421872484403
|
||||
|
||||
target_user = utilisateur or interaction.user
|
||||
|
||||
# 🔒 Vérification si l'utilisateur peut voir la carte d'un autre
|
||||
if utilisateur and utilisateur != interaction.user:
|
||||
gouvernement_role = interaction.guild.get_role(GOUVERNEMENT_ROLE_ID)
|
||||
if gouvernement_role not in interaction.user.roles:
|
||||
await interaction.response.send_message(
|
||||
"🚫 Vous n'avez pas l'autorisation de voir la carte d'identité d'un autre utilisateur.",
|
||||
ephemeral=True
|
||||
)
|
||||
return
|
||||
|
||||
user_id = str(target_user.id)
|
||||
|
||||
# 🧠 Recréer un DataManager à chaque commande
|
||||
data_manager = DataManager()
|
||||
|
||||
# 🔎 Récupération des données
|
||||
identity_data = data_manager.identities.get(user_id)
|
||||
|
||||
if identity_data is None:
|
||||
await interaction.response.send_message(
|
||||
"❌ Cet utilisateur ne possède pas de carte d'identité.",
|
||||
ephemeral=True
|
||||
)
|
||||
return
|
||||
|
||||
# 🛡️ Vérification que l'identité est complète
|
||||
if "date_expiration" not in identity_data:
|
||||
identity_data["date_expiration"] = "Non spécifiée"
|
||||
|
||||
# 🖼️ Génération de l'image de la carte
|
||||
card_buffer = await card_generator.create_identity_card(target_user, identity_data)
|
||||
|
||||
# 📩 Envoi du fichier + embed
|
||||
file = discord.File(card_buffer, filename="carte_identite.png")
|
||||
embed = discord.Embed(
|
||||
title=f"🪪 Carte d'identité de {target_user.display_name}",
|
||||
color=0x2ecc71
|
||||
)
|
||||
embed.set_image(url="attachment://carte_identite.png")
|
||||
|
||||
await interaction.response.send_message(file=file, embed=embed, ephemeral=False)
|
||||
|
||||
async def setup(bot):
|
||||
await bot.add_cog(VoirIdentite(bot))
|
||||
Loading…
Add table
Add a link
Reference in a new issue