如何使机器人状态说明其所在的所有服务器的成员计数 (discord.py)

时间:2021-01-07 23:23:22

标签: python discord.py

抱歉标题太长。我希望我的机器人告诉我我的机器人在处于机器人状态的服务器中有多少成员。换句话说,我希望我的机器人的雕像说 Watching [member count] people and [server count] servers,但我不知道如何。有人可以帮忙吗?

@client.event
async def on_ready():
    print('Potato Cat is ready :D')
    await client.change_presence(
        activity=discord.Activity(
            type=discord.ActivityType.watching,
            name=f'{len(client.guilds)} servers and {len(client.members)} people'))

2 个答案:

答案 0 :(得分:1)

改为client.change_presence

await client.change_presence(activity=discord.Activity(type=discord.ActivityType.watching, name=f'{len(client.guilds)} servers and {len(client.members)} people')

答案 1 :(得分:1)

获取服务器数量:

servers = len(client.guilds)

获取成员数量:

members = 0
for guild in client.guilds:
    members += guild.member_count - 1    # I've added a '-1' because guild.member_count includes all users and bots including your own bot

因此,您的 on_ready() 事件将如下所示:

@client.event
async def on_ready():
    print('Potato Cat is ready :D')

    servers = len(client.guilds)
    members = 0
    for guild in client.guilds:
        members += guild.member_count - 1

    await client.change_presence(activity = discord.Activity(
        type = discord.ActivityType.watching,
        name = f'{servers} servers and {members} members'
    ))