如何让机器人仅对含Embed的消息添加反应?附现有代码
代码修改方案及附件检测方法
仅对含Embed的消息添加反应
要让机器人只在目标频道的消息包含Embed时添加反应,只需在原有判断中加入message.embeds的检测——message.embeds是一个列表,只要列表不为空,就说明消息里存在Embed。修改后的代码如下:
channel = 1088438344024862810 if message.channel.id == channel and message.embeds: await message.add_reaction("⬆️")
检测消息中的附件
检测消息附件的逻辑和Embed类似:message.attachments同样是一个列表,列表不为空即代表消息带有附件。你可以这样实现检测:
# 检测消息是否包含附件 if message.attachments: # 示例操作:遍历并打印附件信息 for attachment in message.attachments: print(f"附件名称: {attachment.filename},下载链接: {attachment.url}")
如果要结合频道判断,比如只在目标频道检测带附件的消息:
channel = 1088438344024862810 if message.channel.id == channel and message.attachments: # 示例操作:添加附件对应的反应表情 await message.add_reaction("📎")
内容的提问来源于stack exchange,提问作者Alhasan Ahmed
相关产品推荐
相关产品推荐

