You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.py如何获取触发bot消息之前紧邻的上一条消息的发送者

实现方法

你可以通过消息所属频道的history()接口拉取最近两条消息,默认拉取规则是最新发送的消息排在最前,因此返回结果的第二个元素就是你需要的正上方紧邻的前一条消息。

完整可运行代码
@commands.Cog.listener('on_message')
async def cool(self, message):
    if message.author == self.bot.user :
        return
    
    elif "cool" in message.content.lower():
        # 拉取频道最近2条消息
        recent_messages = [msg async for msg in message.channel.history(limit=2)]
        # 边界处理:频道内仅有当前触发消息时避免索引报错
        if len(recent_messages) < 2:
            return
        # 索引1对应上一条消息,mention属性直接生成@提及格式
        prev_author = recent_messages[1].author
        response = f"{prev_author.mention} is cool!"
        await message.channel.send(response)
补充说明
  • 如果需要获取上一条消息的内容、发送时间等其他属性,直接访问recent_messages[1]的对应字段即可
  • 若你的机器人运行环境有权限配置限制,请确认已经给机器人开启了频道消息读取权限,否则会拉取历史消息失败

内容的提问来源于stack exchange,提问作者Padsworth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:36:09