截至目前,这就是我所拥有的。
@client.command()
async def say(ctx,*,message):
await ctx.send(f"{message}")
这使得机器人会重复我说的话,但我也希望它删除命令。所以我希望能够说 %say Hello, I'm a bot
,然后机器人会删除它并重复我说的话。关于如何做到这一点的任何帮助?
答案 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