为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

qq_笑_17 2023-08-15 16:27:54
我正在尝试执行一个成员信息命令,显示成员的当前活动/状态,其中显示其播放/收听/流媒体状态(如果找到)以及其自定义状态(如果找到)。我添加了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)
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

尝试使用

for activity in member.activities:
    print(type(activity), activity)

查看每个活动的实例类型和活动,这样您就可以看到实际需要匹配的内容:

https://img1.sycdn.imooc.com//64db3750000177b208820177.jpg

查看完整回答
反对 回复 2023-08-15
?
森栏

TA贡献1810条经验 获得超5个赞

我能够确定我应该使用哪种类型的活动,对于自定义状态,使用的类型是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}"


查看完整回答
反对 回复 2023-08-15
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信