donc, j'essaie de faire une commande pour mon bot de discordance qui est un constructeur d'intégration. Je souhaite que l'utilisateur de la commande puisse saisir une valeur hexagone pour la couleur de l'intégration. Voici ce que j'ai essayé:
value = message.content
embed=discord.Embed(title='Hey', description="How are you?", color=value)
await output.edit(content=None, embed=embed)
Cependant, quand je le fais, je reçois l'erreur:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: Expected discord.Colour, int, or Embed.Empty but received str instead.
Comment puis-je réparer ça? Merci.
Je vais aller de l'avant et supposer que l'entrée que vous attendez est quelque chose dans le sens de #ffffff
, et s'il vous plaît, corrigez-moi si je me trompe. Afin de convertir cela en quelque chose que la discorde peut lire, nous pouvons utiliser la méthode suivante. Je vais supposer que message
est l'objet de message que vous attendez de répondre avec.
sixteenIntegerHex = int(message.content.replace("#", ""), 16)
readableHex = int(hex(sixteenIntegerHex), 0)
embed = discord.Embed(
title = "Hey",
description = "How are you?",
color = readableHex
)
Vous pouvez même fusionner les deux déclarations de conversion entier en une seule!
readableHex = int(hex(int(message.content.replace("#", ""), 16)), 0)
questions = ["What should be the name of the embed?",
"What should be the desc",
"What is the colour of the embed?"]
answers = []
def check(m):
return m.author == ctx.author and m.channel == ctx.channel
for i in questions:
await ctx.send(i)
try:
msg = await client.wait_for('message', timeout=15.0, check=check)
except asyncio.TimeoutError:
await ctx.send('You didn\'t answer in time, please be quicker next time!')
return
else:
answers.append(msg.content)
title = answers[1]
desc = answers[2]
colour = answers[3]
embed = discord.Embed(title = f"{title}", description = f"{desc}", color = colour)
embed.set_footer(text = f"My embed")
await channel.send(embed = embed)
@client.command()
async def embed(ctx, content, colour):
embed=discord.Embed(title='Embed', description=f"{content}", color=colour)
await output.edit(content=None, embed=embed)
Cela fonctionne-t-il dans votre situation?