在discord.py中调用on_member_update时如何访问成员?
How to access member when calling on_member_update in discord.py?
我正在尝试创建一个 discord 机器人,一旦成员离开 offline/invisible,它就会为该成员添加一个特定的角色。
这是我的代码。
@ bot.event
async def on_member_update(before, after):
if str(before.status) == "online":
if str(after.status) == "offline":
guild = bot.get_guild(1234567890)
role = discord.utils.find(lambda r: r.name == 'rolename', guild.roles)
await member.add_roles(role)
每次我 运行 它时,我都会收到一条错误消息,指出该成员未定义。如何将成员定义为更新状态的人?谢谢
参数before
和after
都是成员对象,这意味着您可以只使用其中一个来添加角色:
@bot.event
async def on_member_update(before, after):
if str(before.status) == "online":
if str(after.status) == "offline":
# also would be able to get the guild via after.guild or before.guild
guild = bot.get_guild(1234567890)
role = discord.utils.find(lambda r: r.name == 'rolename', guild.roles)
await after.add_roles(role)
参数简单;
- 更新前的
discord.Member
对象,即before
- 更新后的
discord.Member
对象,即after
参考文献:
Member.add_roles()
Member.guild
- 获取更新成员所在公会的替代方法。
on_member_update()
- Member
对象在下面的括号中说明。
我正在尝试创建一个 discord 机器人,一旦成员离开 offline/invisible,它就会为该成员添加一个特定的角色。
这是我的代码。
@ bot.event
async def on_member_update(before, after):
if str(before.status) == "online":
if str(after.status) == "offline":
guild = bot.get_guild(1234567890)
role = discord.utils.find(lambda r: r.name == 'rolename', guild.roles)
await member.add_roles(role)
每次我 运行 它时,我都会收到一条错误消息,指出该成员未定义。如何将成员定义为更新状态的人?谢谢
参数before
和after
都是成员对象,这意味着您可以只使用其中一个来添加角色:
@bot.event
async def on_member_update(before, after):
if str(before.status) == "online":
if str(after.status) == "offline":
# also would be able to get the guild via after.guild or before.guild
guild = bot.get_guild(1234567890)
role = discord.utils.find(lambda r: r.name == 'rolename', guild.roles)
await after.add_roles(role)
参数简单;
- 更新前的
discord.Member
对象,即before
- 更新后的
discord.Member
对象,即after
参考文献:
Member.add_roles()
Member.guild
- 获取更新成员所在公会的替代方法。on_member_update()
-Member
对象在下面的括号中说明。