首页 > 解决方案 > 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

标签: discord.py

解决方案


您的某些变量是有效的,例如, guild.member_count, guild.text_channelsguild.voice_channels但是您以错误的方式使用它们。除了,这些属性返回列表,而不是整数,所以如果你想要它们的总数,你需要使用它们。guild.channelsguild.categoriesguild.member_countlen(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)
}
roles_info = {
    "total roles": len(guild.roles)
}
boosts_info = {
    "boost level": guild.premium_tier
    "total boosts": guild.premium_subscription_count
}

推荐阅读