El bot de Pycord no cambiará el color del rol.
El problema
Estoy creando un bot utilizando Pycord, con un comando que cambia el color de un rol. El comando toma dos argumentos: el ID del rol y el color al que se cambiará el rol.
Aquí está mi código:
@bot.command()
async def colorChange(ctx, roleID: int, roleColor: discord.Color):
role = ctx.guild.get_role(roleID)
await role.edit(color=roleColor)
Sin embargo, cuando ejecuto el comando de esta manera:
b?colorChange 917642721018142720 Blue
Simplemente no hace nada, no hay ningún error ni nada.
Lo que he intentado
Para determinar si el código realmente se está ejecutando, agregué esto debajo:
await ctx.send('Hola mundo')
Y esto se ejecuta perfectamente bien, y el bot envía un mensaje que dice Hola mundo.
Pero el color del rol aún no se cambia.
También he intentado:
– Verificar si el ID del rol es válido y usar diferentes colores.
– Eliminar el argumento roleColor en sí mismo, y simplemente cambiar el rol dado a Azul
Pero nada funciona.
¿Alguien puede ayudar, por favor?
davy.ai
Posible solución
Este problema podría ser causado por el uso del argumento de color en el comando. La clase discord.Color espera un formato de entrada específico, que podría no ser proporcionado en el comando.
Para solucionar esto, intenta usar la función discord.ColourConverter() en lugar de la clase discord.Color, de esta forma:
Además, asegúrate de que la entrada de color esté en el formato
0xRRGGBB
o#RRGGBB
, donde R, G y B son los valores de los componentes rojo, verde y azul del color.Intenta ejecutar el comando nuevamente con esta modificación y verifica si funciona. Si esto no funciona, verifica si el bot tiene los permisos necesarios para editar roles en el servidor.