python - 如何让我的机器人重复我的消息并删除命令
问题描述
截至目前,这就是我所拥有的。
@client.command()
async def say(ctx,*,message):
await ctx.send(f"{message}")
这使得机器人会重复我说的话,但我也希望它删除命令。所以我希望能够说%say Hello, I'm a bot
,然后机器人会删除它并重复我说的话。关于如何做到这一点的任何帮助?
解决方案
你似乎想要的是
@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
课程信息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
推荐阅读
- javascript - 我正在尝试使用 join() 函数从 JavaScript 数组中创建一个大字符串,如果可能的话,是否可以包含 html
- c++ - 为什么发出空 asm 命令会交换变量?
- python - 运行返回使用 opencv 的网络摄像头捕获的帧的函数时出现问题
- python - 我正在使用 selenuim webdriver 自动执行一项任务。如何修复:get() 缺少 1 个必需的位置参数:'url'
- laravel - 在 laravel 6 中,队列在执行几个作业后自动停止,但不是全部
- sql - 如何关闭按功能分组排序,因为它占用大量资源并且在我的情况下不需要
- flutter - 如何在颤动中将剪裁器添加到导航抽屉
- sql - 如何显示每个月的总利润,当oracle中当月没有记录时显示null
- django - 如何在 Django 中渲染模板并重定向到模板的某个片段?
- swift - 异步api调用后如何执行同步api调用