【发布时间】:2021-06-21 12:35:31
【问题描述】:
我目前正在使用 discord.py 开发一个私人不和谐机器人,它需要检测用户丰富存在的内容(即他们正在玩的游戏的名称以及他们正在做什么的简短描述,如果游戏提供了它)并且我在官方 discord.py 文档之外找不到关于如何使用丰富的存在 api 的太多解释。最终目标是检测他们是否在玩带有 x 描述的 x 游戏,但如果有人能解释它的概念,那就太棒了。
【问题讨论】:
标签: python discord.py
我目前正在使用 discord.py 开发一个私人不和谐机器人,它需要检测用户丰富存在的内容(即他们正在玩的游戏的名称以及他们正在做什么的简短描述,如果游戏提供了它)并且我在官方 discord.py 文档之外找不到关于如何使用丰富的存在 api 的太多解释。最终目标是检测他们是否在玩带有 x 描述的 x 游戏,但如果有人能解释它的概念,那就太棒了。
【问题讨论】:
标签: python discord.py
假设我们有一个变量,它是 discord.Member 命名成员的实例。 (可以通过ctx.author 或在函数参数中使用member: discord.Member 获得)
首先我们需要检查他是否在玩游戏。为此,我们将遍历member.activities 并查看该活动是否为游戏。
game = None
for activity in member.activities:
if isinstance(activity, discord.Game):
game = activity
我们在这里循环是因为一个人可能有多个活动,其中只有一个是游戏。 现在我们将检查是否找到了游戏活动
if game is None:
return await ctx.send("Not playing any Games")
# We have the return here because we don't want the command to go any further
现在我们手上有一个discord.Game 的实例。我们可以使用它来获取一些详细信息,例如
game.name
游戏名称
game.details
游戏详情/说明
game.start
当用户开始玩游戏时
game.large_image_url
大图网址
game.small_image_url
小图网址
game.large_image_text
将鼠标悬停在大图上时显示的大图文本
game.small_image_text
将鼠标悬停在小图像上时显示的小图像文本
注意:如果游戏未提供这些属性中的一些可能是None,更多属性请阅读documentation
【讨论】: