2024-12-15 14:59:41 +01:00
import discord
import aiosqlite
from discord . ext import commands
from discord import app_commands
import logging
import sys
from public_env import *
from GammaRPBot_Define import GammaRPBot
formatter = discord . utils . _ColourFormatter ( )
handler = logging . StreamHandler ( sys . stdout )
handler . setFormatter ( formatter )
logging . basicConfig ( level = logging . INFO , handlers = [ handler ] )
logger = logging . getLogger ( )
intents = discord . Intents . all ( )
bot = GammaRPBot ( intents )
@bot.event
async def on_ready ( ) :
bot . db = await aiosqlite . connect ( " main.db " )
await bot . load_extension ( " perso_commands " )
await bot . tree . sync ( )
print ( f " Logged in as { bot . user } " )
2024-12-15 15:45:33 +01:00
@bot.tree.command ( name = " s " , description = " Envoyer un message en tant que personnage " , aliases = [ " say " , " dire " , " écrire " ] )
async def say ( interaction : discord . Interaction , id : str , message : str ) :
res = await bot . db . execute ( " SELECT * FROM personnages WHERE uuid=? AND (guild_id=? OR guild_id IS NULL) AND nom_court=? " , ( interaction . user . id , interaction . guild . id , id ) )
row = await res . fetchone ( )
await res . close ( )
if row is None :
await interaction . response . send_message ( " Personnage non trouvé " , ephemeral = True )
return
short_name = row [ 0 ]
full_name = row [ 1 ]
perso_image = row [ 2 ]
webhook = None
if discord . utils . get ( interaction . channel . webhooks ( ) , name = short_name ) is None :
webhook = await interaction . channel . create_webhook ( name = short_name , avatar = perso_image )
else :
webhook = discord . utils . get ( interaction . channel . webhooks ( ) , name = short_name )
await webhook . send ( message , username = full_name , avatar_url = perso_image )
await interaction . response . send_message ( " Message envoyé " , ephemeral = True )
2024-12-15 14:59:41 +01:00
bot . run ( bot_token )