首页 > 解决方案 > 如何让我的机器人重复我的消息并删除命令

问题描述

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

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

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

标签: pythondiscorddiscord.py

解决方案


你似乎想要的是

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

对于 command %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

课程信息Messagehttps ://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


推荐阅读