让机器人检测不和谐成员丰富的存在

时间:2021-06-20 05:57:11

标签: python discord.py

我目前正在开发一个带有 discord.py 的私人不和谐机器人,它需要检测用户丰富存在的内容(即他们正在玩的游戏的名称以及他们正在做什么的简短描述,如果游戏提供了它),而且我找不到关于如何在官方 discord.py 文档之外使用丰富的存在 api 的太多解释。最终目标是检测他们是否在玩带有 x 描述的 x 游戏,但如果有人能解释它的概念,那就太棒了。

1 个答案:

答案 0 :(得分:0)

所以让我们假设我们有一个变量,它是 discord.Member 命名成员的实例。 (可以通过 ctx.author 或在函数参数中使用 member: discord.Member 获得)

首先我们需要检查他是否在玩游戏。为此,我们将循环遍历 member.activities 并查看 Activity 是否为游戏。

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