我正在尝试制作一个机器人,当有人在玩游戏时,它会给出一个角色。 例如有人玩 CSGO,机器人会在玩游戏时给他 CSGO 角色。 我似乎无法弄清楚。
@client.event
async def on_member_update(before, after):
if after.activity != before.activity:
role = discord.utils.get(after.guild.roles, name=after.activity)
if role == None:
await create_role(name=after.activity, hoist=True)
await after.add_roles(role)
elif before.activity != after.activity and not after.activity:
role = discord.utils.get(after.guild.roles, name=after.activity)
if role in after.roles:
await after.remove_roles(role)
答案 0 :(得分:1)
您可以在 on_member_update
活动中查看会员正在玩的游戏。为此,您需要检查 Member.activity
参数。
应该是这样的:
@client.event
async def on_member_update(before, after):
games = ["game1", "game2", "game3"]
if after.activity and after.activity.name.lower() in games:
# Assuming the role name is the same as the game
role = discord.utils.get(after.guild.roles, name=after.activity)
await after.add_roles(role)
elif before.activity and before.activity.name.lower() in games and not after.activity:
role = discord.utils.get(after.guild.roles, name=after.activity)
if role in after.roles:
await after.remove_roles(role)