用户执行命令后,如何删除discord.py中的消息?

时间:2020-10-25 17:28:04

标签: discord discord.py

我正在尝试编写一个函数,该函数使用用户发送的命令删除消息。

例如:

  • 用户发送命令/ delmes
  • 启动向命令发送响应
  • Bot删除用户发送的消息

到目前为止,我能找到的所有东西(对我有帮助)是这个堆栈溢出线程:discord.py delete author message after executing command

但是,当我使用代码时,如解决方案中所述,我只收到 AttributeError:'Bot'对象没有属性'delete_message'

discord.py API参考(https://discordpy.readthedocs.io/en/latest/migrating.html#models-are-stateful / https://discordpy.readthedocs.io/en/latest/api.html?highlight=delete%20message#message)仅显示某些代码已随较新版本更改。 如果我正确解释的话,可以说 client.delete_message 将更改为 Message.delete()

将代码更改为我认为必须的代码后,我收到了: NameError:未定义名称“消息”

这是我最后的代码。 (我对discord.py相对较新,只在学校使用过Python)

import discord
from discord.ext import commands
import random
import json

client = commands.Bot(command_prefix = '/', case_insensitive=True)

@client.command(pass_context=True)
async def delcommes(ctx):
    await ctx.send("This is the response to the users command!")
    await Message.delete(ctx.message, delay=3)

1 个答案:

答案 0 :(得分:0)

我无法很好地理解您的问题,但据我所知,执行命令后,在bot发送消息后,您想要删除命令消息,在这种情况下,该消息为/delmes。您可以使用await ctx.message.delete()

@client.command(pass_context=True)
async def delcommes(ctx):
    await ctx.send("This is the response to the users command!")
    await ctx.message.delete()