在没有聊天的情况下识别某人正在玩的游戏(不和谐的僵尸蟒蛇)

2022-02-22 00:00:00 python discord

问题描述

(不和谐僵尸蟒蛇)

代码是,如果有人聊天,如果此人正在玩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)

相关文章