Skip to content

Commit cb487e7

Browse files
committed
inventaire carte fini en attente des cartes + bvn base
1 parent ad5bb34 commit cb487e7

23 files changed

+567
-10
lines changed

app/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
DISCORD_TOKEN_F1F = YOUR_TOKEN
1+
DISCORD_TOKEN_F1F = MTMzNTkzODIzNDU5NjcyMDc1MQ.GIyW56.baFjYX-oJ0TFh5gS4k7-cUM9LRmZoMERYpxDH0
46 Bytes
Binary file not shown.
2.33 KB
Binary file not shown.
1.08 KB
Binary file not shown.
22 KB
Binary file not shown.

app/_app.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
from typing import Literal
1414
import economie as eco
1515
import boutique as shop
16+
import inventaire as card
17+
import bvn as bvn
1618

1719

1820
@bot.event
@@ -518,12 +520,50 @@ async def boutic(interaction: discord.Interaction):
518520

519521
# _______________________________________________________________________________________________________________________________
520522

523+
521524
@tree.command(name="admin_send_mess", description="Le bot envoi le message de ton choix")
522525
async def send_mess(interaction: discord.Interaction):
523526
await interaction.response.defer()
524527
await tool.envoie_de_message(interaction, conf.PRONOS)
525528
logger.info(f"{interaction.user} a envoyé un message via le bot.")
526529

530+
# _______________________________________________________________________________________________________________________________
531+
532+
533+
@tree.command(name="boutique_carte", description="Ouvre la boutique")
534+
async def boutic_carte(interaction: discord.Interaction):
535+
await interaction.response.defer()
536+
await card.boutique_carte(interaction)
537+
logger.info(f"{interaction.user} a ouvert la boutique de carte.")
538+
539+
# _______________________________________________________________________________________________________________________________
540+
541+
542+
@tree.command(name="show_inventaire", description="Affiche ton inventaire")
543+
async def show_invent(interaction: discord.Interaction):
544+
await card.afficher_cartes_inventaire(interaction)
545+
logger.info(f"{interaction.user} a ouvert son inventaire")
546+
547+
@bot.event
548+
async def on_member_join(member: discord.Member):
549+
# Générer l'image
550+
image_path = bvn.generate_welcome_image(member)
551+
552+
# Trouver le salon où envoyer le message
553+
channel = discord.utils.get(member.guild.text_channels, name="🤖・commandes-bots")
554+
if channel is None:
555+
logger.warning("Salon 🤖・commandes-bots introuvable")
556+
return
557+
558+
# Créer le fichier à envoyer
559+
file = discord.File(image_path, filename="welcome.png")
560+
561+
# Créer l'embed avec l'image en attachment
562+
embed = discord.Embed(title=f"Bienvenue {member.display_name} !", color=conf.EMBED_COLOR_GOLD)
563+
embed.set_image(url="attachment://welcome.png")
564+
565+
# Envoyer le message avec fichier et embed
566+
await channel.send(file=file, embed=embed)
527567

528568

529569
bot.run(TOKEN)

app/boutique.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -417,12 +417,9 @@ def __init__(self):
417417
discord.SelectOption(
418418
label="📰 Publicité", description="Envoi ta pub dans le salon", value="PUB"),
419419
discord.SelectOption(
420-
label="Citation", description="Envoi ta citation dans le salon sitation pour 3 000", value="CT"),
420+
label="📜 Citation", description="Envoi ta citation dans le salon sitation pour 3 000", value="CT"),
421421
discord.SelectOption(label="=== Cosmétique ==="),
422422
discord.SelectOption(label="🖍️ Couleur de role", description="Tu veux changer de couleur ? Seulement 250 000", value="RC"),
423-
424-
425-
426423
]
427424
super().__init__(placeholder="Choisis un article...",
428425
options=options, min_values=1, max_values=1)

app/bvn.py

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import discord
2+
import requests
3+
from PIL import Image, ImageDraw, ImageFont
4+
from io import BytesIO
5+
6+
intents = discord.Intents.default()
7+
intents.members = True
8+
9+
def generate_welcome_image(member: discord.Member) -> str:
10+
"""
11+
Génère une image de bienvenue à partir du template et de l'avatar du membre.
12+
Retourne le chemin du fichier final.
13+
"""
14+
15+
# Charger l'image template
16+
template = Image.open("sprites/welcome.png").convert("RGBA")
17+
18+
# Récupérer l'avatar du membre (correctement avec display_avatar)
19+
avatar_url = member.display_avatar.url
20+
response = requests.get(avatar_url)
21+
avatar = Image.open(BytesIO(response.content)).convert("RGBA")
22+
23+
# Redimensionner l'avatar pour qu'il rentre dans le cercle prévu
24+
avatar_size = (350, 350) # Ajuster selon ton image
25+
avatar = avatar.resize(avatar_size)
26+
27+
# Créer un masque circulaire
28+
mask = Image.new("L", avatar.size, 0)
29+
draw_mask = ImageDraw.Draw(mask)
30+
draw_mask.ellipse((0, 0, avatar.size[0], avatar.size[1]), fill=255)
31+
avatar.putalpha(mask)
32+
33+
# Coller l'avatar sur le template (coordonnées à ajuster)
34+
template.paste(avatar, (650, 275), avatar)
35+
36+
# Ajouter le texte avec le pseudo
37+
draw = ImageDraw.Draw(template)
38+
font = ImageFont.truetype("sprites/Font/Formula1-Black.ttf", 70) # Tu peux mettre une autre police
39+
draw.text((500, 700), f"Bienvenue \n {member.display_name} !", font=font, fill=(255, 215, 0)) # Jaune or
40+
41+
# Sauvegarder l'image finale
42+
output_path = f"sprites/bvn_craft/welcome_{member}.png"
43+
template.save(output_path)
44+
45+
return output_path

app/config.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,13 @@
8585
COMMANDE_BOTS = 928612687263444992
8686
PRONOS = 1346557436730937436
8787

88+
# === 🏆 Récompense ===
89+
90+
PIECE_CHEVRE_EN_OR = "https://media.discordapp.net/attachments/1093252067407188110/1401164466468688022/ChatGPT_Image_18_avr._2025__12_29_46-removebg-preview.png?ex=68988219&is=68973099&hm=4e84cc42e6f019e6a39353e88afc7901c81d9652b0c3efe5ae381648037a2fcc&=&format=webp&quality=lossless&width=789&height=789"
91+
92+
93+
# === 🃏 Carte ===
94+
95+
CHARLES_LECLERC = "https://cdn.discordapp.com/attachments/1212852209491116113/1402020719881097257/Carte_Pilote_Charles_Leclerc.png?ex=6892650b&is=6891138b&hm=129d62c31192041704bc064fd468e5d9f87e8a30a1912a0fd730677bf5a9e258&"
96+
JACK_DOOHAN = "https://media.discordapp.net/attachments/1212854217069428797/1401492321572360202/Carte_pilote_Doohan.png?ex=6891ca6f&is=689078ef&hm=945c4c66f2590c86cdb9e9b0f877a4f851b1a301d6867dfa9b718042793dfda8&=&format=webp&quality=lossless&width=444&height=789"
97+
OSCAR_PIASTRI = "https://media.discordapp.net/attachments/1212854217069428797/1401492322000306187/Carte_pilote_Piastri.png?ex=6891ca70&is=689078f0&hm=16d641e62880015cad811065d337ea8302ab84518e4180b6d03839f36dfae1a5&=&format=webp&quality=lossless&width=444&height=789"

0 commit comments

Comments
 (0)