如何让我的机器人重复我的消息并删除命令

时间:2021-03-16 14:29:59

标签: python discord discord.py

截至目前,这就是我所拥有的。

@client.command()
async def say(ctx,*,message):
    await ctx.send(f"{message}")

这使得机器人会重复我说的话,但我也希望它删除命令。所以我希望能够说 %say Hello, I'm a bot,然后机器人会删除它并重复我说的话。关于如何做到这一点的任何帮助?

1 个答案:

答案 0 :(得分:2)

你似乎想要的是

@client.command()
async def say(ctx, message):
    await ctx.send(message)
    await ctx.message.delete()

在命令 %say "Hello this is my message" 的情况下,这将返回 Hello this is my message 并删除原始命令。

正如评论中所指出的,此命令只会打印双引号内的文本。要解决此问题,您可以将原始代码与添加的 message.delete():

一起使用
@client.command()
async def say(ctx,*,message):
    await ctx.send(f"{message}")
    await ctx.message.delete()

有关调用上下文 (ctx) 的信息:https://discordpy.readthedocs.io/en/latest/ext/commands/api.html#context

关于 Message 类的信息:https://discordpy.readthedocs.io/en/latest/api.html#discord.Message

有关 Message.delete() 方法的信息:https://discordpy.readthedocs.io/en/latest/api.html#discord.Message.delete

有关无引号语法的信息:https://discordpy.readthedocs.io/en/latest/ext/commands/commands.html#variable