discord.py、on_member_update() 未检测到状态更新,但检测到其他事件

discord.py, on_member_update() not detecting status updates, but detects other events

我仍在学习 python/discord.py 并正在尝试构建一个简单的机器人来检测用户状态的变化 (online/offline);下面显示的是一个应该检测所有成员更新的实现。

from discord.ext import commands
import discord

intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix="$", intents=intents)

target_channel_id = <id here>

@bot.event
async def on_ready():
    print("bot ready")

@bot.event
async def on_member_update(before, after):
    channel = bot.get_channel(target_channel_id)
    await channel.send("Member updated!")
    print("member updated!")

bot.run("<token here>")

我已经正确启用了我的意图,正如机器人响应 name/role 变化所证明的那样,但是状态变化似乎没有任何反应。就像我说的,我对 python 和 discord.py 还是新手,所以我不确定我是不是不知道什么,但在文档中它说 on_member_update()应该调用状态更改,所以我不确定问题是什么。感谢阅读!

在您的代码中启用以下三个意图,如果发生状态更新,您的代码将开始工作

intents = discord.Intents( guilds=True,members=True,presences=True)