discord.py:变量服务器信息

时间:2020-07-14 18:45:22

标签: discord.py

嗨,我正在执行一条命令以获取服务器信息,并且正在查找API(最近是discord.py程序)。 我只是无法定义一些变量,我专门发送了变量代码(其余代码工作正常)。 我还寻找可以回答我的问题,但是我发现了不满足我要求的其他答案(以防万一,我道歉了)

async def serverinfo(ctx):
    author = ctx.author.name
    guild = ctx.guild
    name_server = guild.name
    icon_server = guild.icon_url
    create_server = guild.created_at
    owner_server = guild.owner.name
    total_member_server = guild.member_count

    #From here I can't find variables
    
    online_member_server = guild.online_members
    offline_member_server = guild.offline_members
    human_member_server = guild.memberUser
    bot_member_server = guild.member_bot
    total_channel_server = guild.channels
    text_channel_server = guild.text_channels
    vocal_channel_server = guild.voice_channels
    category_server = guild.categories
    total_role_server = guild.role_count
    boost_level_server = guild.level_boost
    number_boost_server = guild.boost

2 个答案:

答案 0 :(得分:0)

您的某些变量是有效的,例如guild.member_countguild.text_channelsguild.voice_channelsguild.channelsguild.categories,但您使用的方式错误。除了guild.member_count之外,这些属性都返回列表,而不是整数,因此如果要使用它们的总数,则需要使用len(property)

channels_info = {
    "total categories": len(guild.categories)
    "total channels": len(guild.channels)
    "total text channels": len(guild.text_channels)
    "total voice channels": len(guild.voice_channels
}
members_info = {
    "total users": guild.member_count
    "total online members": sum(member.status==discord.Status.online and not member.bot for member in ctx.guild.members)
    "total offline members": sum(member.status==discord.Status.offline and not member.bot for member in ctx.guild.members)
    "total humans": sum(not member.bot for member in ctx.guild.members)
    "total bots": sum(member.bot for member in ctx.guild.members)
}
  • 获取role信息:
roles_info = {
    "total roles": len(guild.roles)
}
boosts_info = {
    "boost level": guild.premium_tier
    "total boosts": guild.premium_subscription_count
}

答案 1 :(得分:0)

您必须打开所有意图并在您的代码中使用它fetch_offline_members=True 像这样

client = commands.Bot(command_prefix="c!",intents=intents,fetch_offline_members=True)