如何检测会员自定义状态和丰富的游戏状态

我正在尝试执行一个成员信息命令,显示成员的当前活动/状态,其中显示其播放/收听/流媒体状态(如果找到)以及其自定义状态(如果找到)。


我添加了if语句来检测播放、收听和流媒体状态,并检测它们正在播放/收听/流媒体内容,并else在末尾添加了一条语句来检测自定义状态,这样,如果机器人找到状态但它不是在播放、在收听或在流式传输,那么它是自定义状态。但是,当用户玩 Rich Presence 游戏时,机器人会将其视为自定义状态,并且由于某种原因,播放语句无法捕获它。


我的问题是:如何检测 Rich Presence 游戏会员的状态,它们与普通游戏相同还是有其他方式来识别它们,以及如何检测会员的自定义状态,因为我找不到回答。


我的代码:


for activity in member.activities:

            if isinstance(activity, Game):

                name = activity.name

                Type = "Playing"

                Activity = f"{name}"

            elif isinstance(activity, Streaming):

                name2 = activity.name

                name3 = activity.platform

                Type = "Streaming"

                Activity = f"{name2} on {name3}"

            elif isinstance(activity, Spotify):

                name4 = activity.title

                name5 = activity.artists

                Type = "Listening to Spotify"

                Activity = f"**Song Name**:{name4}\n**Song Artists:**{name5}"

            else:

                Custom = member.activity

        embed.add_field(name="Activity Type", value=f"{Type}", inline=True)

        embed.add_field(name="Activity Name", value=f"{Activity}", inline=True)

        embed.add_field(name="Custom Status", value=f"{Custom}", inline=True)


qq_笑_17
浏览 116回答 2
2回答

白猪掌柜的

尝试使用for activity in member.activities:     print(type(activity), activity)查看每个活动的实例类型和活动,这样您就可以看到实际需要匹配的内容:

森栏

我能够确定我应该使用哪种类型的活动,对于自定义状态,使用的类型是CustomActivity,对于丰富的存在游戏,我只是使用了一个声明else。代码:for activity in member.activities:            if isinstance(activity, Game):                name = activity.name                Type = "Playing"                Activity = f"{name}"            elif isinstance(activity, Streaming):                name2 = activity.name                name3 = activity.platform                Type = "Streaming"                Activity = f"{name2} on {name3}"            elif isinstance(activity, Spotify):                name4 = activity.title                name5 = activity.artists                Type = "Listening to Spotify"                Activity = f"**Song Name**:{name4}\n**Song Artists:**{name5}"            elif isinstance(activity, CustomActivity):                name6 = activity.name                Type = "Custom Status"                Custom = f"{name6}"            else:                name7 = activity.name                Type =  "Playing"                Activity = f"{name7}"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python