Je passe la variable messages.channel.purge() 1 qui lui indique le nombre de messages à supprimer mais quand j'exécute la commande, j'obtiens un message d'erreur disant qu'il prend 1 argument de position mais que 2 ont été donnés, j'ai lu quelque part que c'est parce que python passe toujours le "soi" mais je ne sais pas comment arrêter / incorporer l'argument du soi dans mon code

@client.event
async def on_message(message):
    # print message content
    print(message.content)
    # if the message came from the bot ignore it
    if message.author == client.user:
        return
    # if the message starts with "!repeat" then say the message in chat
    if message.content.startswith("!repeat"):
        sentmessage = message.content.replace("!repeat", "")
        await message.channel.send(sentmessage)

    if "hello" in message.content.lower():
        await message.channel.send("Hello!")

    if message.content.startswith("!cleanup"):
        num2c = 0
        num2c = int(message.content.replace("!cleanup", ""))
        print(num2c)
        await message.channel.purge(num2c)
        cleanmessage = str("Cleared  "+str(num2c)+" Messages.")
        await message.channel.send(cleanmessage)  
0
Odd's Adventures 29 nov. 2020 à 16:43

2 réponses

Meilleure réponse

Vous devez passer la limite en tant que kwarg

await message.channel.purge(limit=num2c)
0
Łukasz Kwieciński 29 nov. 2020 à 13:55
num2c = 0
List=message.content.slpit()
num2c = int(List[1])
await message.channel.purge(limit=num2c)

Cela devrait fonctionner .. :)

-1
Kr Gagandeo 29 nov. 2020 à 13:55