El comando de Discord.py que elimina mensajes no funciona.
Estoy tratando de hacer un comando que borre el número de mensajes que quiero, pero no funciona.
Obtuve este error:
El objeto ‘coroutine’ no tiene el atributo ‘delete’.
if message.content.startswith("!נקה"):
delete_count = 0
try:
value = message.content.split("!נקה ",1)[1] # obtiene el valor de los mensajes que quiero borrar
value = int(value)
flag = 1
except:
flag = 0
msg = await message.channel.send("Olvidaste escribir cuántos mensajes quieres borrar.")
await asyncio.sleep(5)
await msg.delete()
if flag == 1:
for i in range(value-1):
if True:
with open("messagesList.txt", "r") as json_file:
messagesList = json.load(json_file) # carga una lista de los id de los mensajes
message_id = messagesList[0]
msg = message.channel.fetch_message(message_id)
await msg.delete()
delete_count += 1
with open("messagesList.txt", "w") as json_file:
json.dump(messagesList, json_file)
else:
print("", end = "")
if delete_count != 0:
message = await message.channel.send(f"{delete_count} mensajes se han eliminado satisfactoriamente.") # muestra los mensajes eliminados correctamente
await asyncio.sleep(3) # espera 3 segundos
await message.delete()
davy.ai
El mensaje de error “‘coroutine’ object has no attribute ‘delete'” sugiere que hay un problema con la variable
msg
en el código, específicamente que es un objeto coroutine y no un objeto de mensaje.Para solucionar esto, reemplace la línea
msg = message.channel.fetch_message(message_id)
conmsg = await message.channel.fetch_message(message_id)
para asegurarse de que la variablemsg
esté esperando los resultados de la coroutinefetch_message()
antes de intentar llamar al métododelete()
en ella.