You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Discord.py创建服务器机器人数量统计频道的问题求助

实现Discord.py服务器机器人数量统计频道方案

前置检查

  • 进入Discord开发者平台,找到你的Bot应用,在「Privileged Gateway Intents」分类下开启Server Members Intent,保存后重启Bot
  • 初始化Bot时要显式声明启用members intent,示例初始化代码:
import discord
from discord.ext import tasks

intents = discord.Intents.default()
intents.members = True # 必须开启才能获取完整成员列表
intents.guilds = True

bot = discord.Bot(intents=intents) # 适用discord.py v2.x版本

核心实现逻辑

你已经实现过成员数量统计频道,机器人统计仅需调整计数筛选条件即可,以下是定时更新的示例代码:

# 替换为你自己的机器人统计频道ID
BOT_COUNT_CHANNEL_ID = 123456789012345678
# 替换为你自己的目标服务器ID
TARGET_GUILD_ID = 987654321098765432

# 每5分钟更新一次,可自行调整更新频率
@tasks.loop(minutes=5)
async def update_bot_count():
    guild = bot.get_guild(TARGET_GUILD_ID)
    if not guild:
        return
    # 筛选所有标记为bot的成员计数
    bot_count = sum(1 for member in guild.members if member.bot)
    channel = guild.get_channel(BOT_COUNT_CHANNEL_ID)
    if channel:
        # 频道名称格式可自行修改
        await channel.edit(name=f"🤖 机器人数量: {bot_count}")

# Bot启动时自动开启定时更新任务
@bot.event
async def on_ready():
    update_bot_count.start()
    print(f"Bot已登录,当前账号:{bot.user}")

常见问题排查

  • 无法修改频道名称:确认Bot已获得对应频道的管理频道权限
  • 统计结果仅包含当前Bot自身:100%是Server Members Intent未开启,或初始化代码未配置intents.members = True
  • 更新报错提示频率限制:不要设置过短的更新间隔,5-10分钟更新一次完全满足使用需求

内容的提问来源于stack exchange,提问作者Rafael Chedd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:27:07