Ajout de la gestion des messages envoyés par les utilisateurs et amélioration de la fonction d'envoi de messages en tant que personnage
This commit is contained in:
parent
2c7fcb6fc5
commit
e5f578128e
1 changed files with 25 additions and 7 deletions
32
main-bot.py
32
main-bot.py
|
@ -25,22 +25,40 @@ async def on_ready():
|
|||
print(f"Logged in as {bot.user}")
|
||||
|
||||
|
||||
@bot.event
|
||||
async def on_message(message):
|
||||
if message.author.bot:
|
||||
return
|
||||
if message.content.startswith("g!"):
|
||||
short_name = message.content.split(" ")[0][2:]
|
||||
uuid = message.author.id
|
||||
guild_id = message.guild.id
|
||||
message_str = message.content.split(" ")[1]
|
||||
say_message(uuid,guild_id,short_name,message_str,message.channel)
|
||||
|
||||
@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))
|
||||
if not await say_message(interaction.user.id,interaction.guild.id,id,message,interaction.channel):
|
||||
await interaction.response.send_message("Vous n'avez pas ce personnage",ephemeral=True)
|
||||
return
|
||||
await interaction.response.send_message("Message envoyé",ephemeral=True)
|
||||
|
||||
|
||||
async def say_message(userid:int, guildid:int, shortname:str, message:str,channel:discord.TextChannel):
|
||||
res = await bot.db.execute("SELECT * FROM personnages WHERE uuid=? AND (guild_id=? OR guild_id IS NULL) AND nom_court=?",(userid,guildid,short_name))
|
||||
row = await res.fetchone()
|
||||
await res.close()
|
||||
if row is None:
|
||||
await interaction.response.send_message("Personnage non trouvé",ephemeral=True)
|
||||
return
|
||||
return False
|
||||
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)
|
||||
if discord.utils.get(channel.webhooks(),name=short_name) is None:
|
||||
webhook = await channel.create_webhook(name=short_name,avatar=perso_image)
|
||||
else:
|
||||
webhook = discord.utils.get(interaction.channel.webhooks(),name=short_name)
|
||||
webhook = discord.utils.get(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)
|
||||
return True
|
||||
|
||||
bot.run(bot_token)
|
Loading…
Reference in a new issue