Discord.py on_member_join将不会打印

时间:2020-10-26 11:50:01

标签: python discord.py

@client.event
async def on_member_join(member):
    print(member)

    role = discord.utils.get(member.guild.roles, name="☾│Unregister Of Hyperion")
    await member.add_roles(role)

这是我的代码,它应该在加入用户时显示用户昵称,但不是。该机器人具有该角色,但不会打印。相同的代码可在我的其他机器人上使用。我不知道为什么它不起作用。

1 个答案:

答案 0 :(得分:0)

在新版本的discord.py(1.5.x)中,对Intents进行了一些更新。意图类似于权限,您必须定义意图以获取频道,成员和某些事件等。必须在定义client = discord.Bot(prefix='')之前对其进行定义。

import discord

intents = discord.Intent().all()
client = discord.Bot(prefix='', intents=intents)

@client.event
async def on_member_join(member):
    print(member)
    role = discord.utils.get(member.guild.roles, name="☾│Unregister Of Hyperion")
    await member.add_roles(role)

如果要获取有关Intent的更多信息,可以查看API References