Discord Python机器人仅监听单个频道图片消息的实现咨询
解决方案
步骤1:获取目标频道ID
- 先开启Discord开发者模式:进入
用户设置→高级→打开开发者模式开关 - 回到你的服务器,右键点击你想要监听的指定频道,选择
复制ID,拿到纯数字格式的频道ID值
步骤2:修改on_message事件代码
只需要在事件逻辑最开头增加频道ID校验,不是目标频道的消息直接跳过处理即可,修改后的代码如下:
# 把这里替换成你刚才复制的目标频道ID TARGET_CHANNEL_ID = 123456789012345678 async def on_message(message): # 非目标频道的消息直接不处理 if message.channel.id != TARGET_CHANNEL_ID: return if len(message.attachments) > 0: #Checks if there are attachments for file in message.attachments: for ext in pic_ext: if file.filename.endswith(ext): print(f"This message has an Image called: {file.filename}")
补充说明
如果你的机器人需要同时监听多个指定频道,把TARGET_CHANNEL_ID改成ID列表,判断逻辑换成if message.channel.id not in TARGET_CHANNEL_IDS即可。
内容的提问来源于stack exchange,提问作者Oma_Inge
相关产品推荐
相关产品推荐

