so I'm trying to make a command for my discord bot that is an embed builder. I want the user of the command to be able to input a hex value for the color of the embed. Here is what I've tried:
value = message.content
embed=discord.Embed(title='Hey', description="How are you?", color=value)
await output.edit(content=None, embed=embed)
However when I do this I get the error:
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: Expected discord.Colour, int, or Embed.Empty but received str instead.
How do I fix this? Thanks.
I'm going to go ahead and assume that the input you are expecting is something along the lines of #ffffff
, and please do correct me if I am mistaken. In order to convert this into something that Discord can read, we can use the following method. I'm going to me assuming that message
is the message object that you wait for them to respond with.
sixteenIntegerHex = int(message.content.replace("#", ""), 16)
readableHex = int(hex(sixteenIntegerHex), 0)
embed = discord.Embed(
title = "Hey",
description = "How are you?",
color = readableHex
)
You could even merge the two integer conversion statements into one!
readableHex = int(hex(int(message.content.replace("#", ""), 16)), 0)