嗨,我正在执行一条命令以获取服务器信息,并且正在查找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
答案 0 :(得分:0)
您的某些变量是有效的,例如guild.member_count
,guild.text_channels
,guild.voice_channels
,guild.channels
和guild.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)
}
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)