Discord机器人Echo命令无法处理图片问题求助
修复Discord机器人Echo命令以支持图片重复
原代码仅能处理文本消息,无法识别并重复消息中的图片(附件),导致无法满足需求。以下是修改后的代码,可同时支持文本、图片及图文结合的消息重复:
@bot.command(aliases=['echo']) @commands.is_owner() async def e(ctx, *, message=None): # 将原消息中的附件转换为可发送的文件对象 attachments = [await att.to_file() for att in ctx.message.attachments] # 设置默认文本(当无输入文本时使用) content = message or "Napisz co chcesz powtórzyć" # 删除用户触发命令的消息 await ctx.message.delete() # 同时发送文本内容和附件(无附件时自动忽略files参数) await ctx.send(content, files=attachments)
关键修改说明:
- 新增对
ctx.message.attachments的处理:这部分是用户消息中的所有附件(包括图片、文档等),通过to_file()方法转换为Discord机器人可发送的文件格式。 - 发送消息时同时传入
content和files参数:确保不管是纯文本、纯图片还是两者结合的消息,都能完整重复。
这样修改后,无论你发送纯文本、粘贴图片,还是同时发送文本和图片,机器人都会准确重复对应的内容。
内容的提问来源于stack exchange,提问作者ProgramowanskoCompany
相关产品推荐
相关产品推荐

