我的机器人有一个“say”命令,它重复用户在命令消息中写的内容:
@commands.command(name = "say",
aliases = ['s'],
brief = "Repeats <message>",
help = "Repeats <message> passed in after the command."
)
@commands.cooldown(1, cmd_cd, commands.BucketType.user)
async def say(self, ctx, *, message):
if ctx.message.attachments:
await ctx.send(content=message, files=ctx.message.attachments)
await ctx.send(message)
我希望它也包括附件,如果用户包括任何,但我似乎无法让它工作。我不断得到错误:
Command raised an exception: InvalidArgument: files parameter must be a list of File
我做错了什么?在discord.py docs中,它表示ctx.message.attachments属性返回一个列表,那么为什么我会得到这个错误呢? 我只是希望它发送附件的方式与用户发送附件的方式完全相同。不使用嵌入就可以做到这一点吗
错误告诉您,它需要类型为
File
的List
变量,但是attachments
检索类型为attachment
的列表如果您检查文档中的
attachment
,可以看到它可以使用to_file()
方法轻松地转换为File
因此,要使函数正常工作,您需要向
files
传递一个包含以下文件的新列表:感谢@Shunya的帮助。在尝试他们的方法时,我发现了一种更简单的方法:
相关问题 更多 >
编程相关推荐