我正在尝试制作一个机器人,它可以在有人玩游戏时发挥作用。 例如有人玩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)
最佳答案
您可以在 on_member_update
中查看成员(member)正在玩的游戏事件。为此,您需要检查 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)
引用文献:
关于python - Discord.py 在游戏事件中发挥作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66186815/