我写了一个不和谐的机器人来处理使用 discord.py 和 discord.ext.commands,到目前为止它一直按预期工作。但是,无论我尝试什么,我似乎都无法看到会员更新。 这是设置意图的代码
#declare our intents
intents = discord.Intents.default()
intents.members = True
intents.presences = True
#client settings, load intents
client = discord.Client(intents=intents)
client = commands.Bot(command_prefix = "!", guild_subscriptions=True)
这是应该看到成员更新的代码
@client.event
async def on_member_update(before, after):
print("just saw a member update!")
我还在应用程序门户中启用了状态和成员特权意图,并且该机器人在服务器上拥有完整的管理员权限,并且在服务器所有者之下拥有最高级别。代码是否存在问题,或者是否有其他因素阻止它看到更新?是否需要手动授予一些权限?它可以在同一服务器中使用几乎相同的代码查看 on_voice_state_update 和 on_message 事件。
答案 0 :(得分:1)
您在启用成员意图的情况下分配 Client
,他们立即用具有默认意图(因此成员意图被禁用)的 Bot
覆盖它。
将您的意图传递到 Bot
创建中。
#declare our intents
intents = discord.Intents.default()
intents.members = True
intents.presences = True
#client settings, load intents
client = commands.Bot(command_prefix = "!", guild_subscriptions=True, intents=intents)