在没有聊天的情况下识别某人正在玩的游戏(不和谐的僵尸蟒蛇)
问题描述
(不和谐僵尸蟒蛇)
代码是,如果有人聊天,如果此人正在玩Overwatch,他或她将被提升为Gamer角色,如果不是,他或她将被删除,否则将不会发生任何事情。但是我在寻找一种不聊天就能认出正在玩的游戏的方法。有人能帮帮我吗?
@client.event
async def on_message(message):
man = message.author.activity.name
role = discord.utils.get(message.guild.roles, name="Gamer")
if man == "Overwatch":
await message.author.add_roles(role)
else:
await message.author.remove_roles(role)
解决方案
只要成员更改其活动就会触发on_member_update
事件:
@client.event
async def on_member_update(before, after)
role = discord.utils.get(after.guild.roles, name="Gamer")
if before.activities != after.activities:
name = "Overwatch"
before_name = any(activity.name for activity in before.activities)
after_name = any(activity.name for activity in after.activities)
if not before_name and after_name:
await after.add_roles(role)
elif before_name and not after_name:
await after.remove_roles(role)
相关文章