【问题标题】:Discord Py Bot users StatusDiscord Py Bot 用户状态
【发布时间】:2021-04-24 02:00:13
【问题描述】:
@client.event 
async def on_ready():
        await client.wait_until_ready()
        await client.change_presence(activity=Activity(name=f".help auf {len(client.guilds)} Servers", 
                                                type=ActivityType.playing))

我想显示会员总数的状态。我该怎么做?

【问题讨论】:

    标签: python arrays discord discord.py discord.py-rewrite


    【解决方案1】:

    注意:这会计算机器人所在的所有服务器中的用户总数,而不是当时使用机器人的人数。为了做到这一点,你必须使用一个计数器并在每次新用户使用机器人时递增它,除非你正在尝试这样做,否则我不会进入。

    这应该可以工作:len(client.users)。您可以在 change_presence 代码中使用它,如下所示:

    await client.change_presence(activity=Activity(name=f".help auf {len(client.users)} Users", type=ActivityType.playing))
    

    【讨论】:

    • 哦,我发现了Thnx
    【解决方案2】:

    Axiumin 的回答是正确的,但这需要您启用 intent.members。

    启用它的示例可以这样做

    intents = discord.Intents()
    intents.all()
    
    client = commands.Bot(command_prefix=".", intents=intents)
    
    @client.event 
    async def on_ready():
            await client.wait_until_ready()
            await client.change_presence(activity=Activity(name=f".help auf {len(client.users)} Users", type=ActivityType.playing))
    
    

    您必须启用它here。选择您想要的应用程序 -> 选择 Bot -> SERVER MEMBERS INTENT,然后确保它旁边显示为蓝色。然后单击保存更改。由于您正在开发您的机器人,您可能还希望启用 Presence Intent 以节省您以后的时间。

    但是,如果您的机器人不被允许(如果您的机器人在 100 多台服务器中并且不和谐拒绝了它的请求),您可以通过以下方式解决此问题:

    
    @client.event 
    async def on_ready():
            await client.wait_until_ready()
            total_members = 0
            for guild in client.guilds:
                total_members += guild.member_count
            await client.change_presence(activity=Activity(name=f".help auf {total_members} members", type=ActivityType.playing))
    

    【讨论】:

      猜你喜欢
      • 2021-06-15
      • 2021-06-04
      • 2021-06-29
      • 2017-07-30
      • 2021-02-07
      • 2019-08-01
      • 2021-10-29
      • 1970-01-01
      • 2023-03-05
      相关资源
      最近更新 更多