Bot 未检测到服务器成员 (Discord.py)

Posted

技术标签:

【中文标题】Bot 未检测到服务器成员 (Discord.py)【英文标题】:Bot not detecting server members (Discord.py) 【发布时间】:2021-09-03 09:26:01 【问题描述】:

我有一个命令,我为服务器选择一个随机成员,但由于某种原因,每当我运行它时,它只提到它自己.. 好像它无法检测到服务器中除了它自己之外还有其他成员.这是代码: 好的


client = commands.Bot(command_prefix=['%', "v", "V"],
                      case_insensitive=True,
                      help_command=None)


intents = discord.Intents().all()
intents = True

@client.event
async def on_ready():
    print('Bot is Online! ;)')

    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 | %help'))

@client.command()
async def choosemem(ctx):
    guild = ctx.guild
    await ctx.send(f"random.choice(guild.members).mention has been chosen")

这是完整的代码,包括状态和意图。

【问题讨论】:

确保在代码和开发者门户中都启用了成员意图。 看看:discordpy.readthedocs.io/en/latest/… 这能回答你的问题吗? getting 'NoneType' object has no attribute 'send' 不,我检查了开发人员门户并将意图代码添加到我的机器人中,但它仍然没有检测到任何其他服务器成员。 请发给你完整的代码和客户端定义 【参考方案1】:

您还需要在 client= commands.Bot 中添加意图值

intents = discord.Intents().all()


client = commands.Bot(command_prefix=['%', "v", "V"],
                      case_insensitive=True,
                      help_command=None,
                      intents = intents)

【讨论】:

是的,我做到了。它仍在返回机器人本身。编辑:我回到开发门户并启用了所有意图。现在可以了,谢谢。如何将此问题标记为已回答?

以上是关于Bot 未检测到服务器成员 (Discord.py)的主要内容,如果未能解决你的问题,请参考以下文章

数据未在 github 上为 discord.py bot 保存

如何使用 Discord.py Cogs 使 Discord Bot 加入语音频道并在成员加入频道时播放音频文件

discord.py bot:on_message 检测机器人等待发送()消息

discord py,ctx.guild.members,只返回bot

Discord.py Bot 将文件发送到 Discord 频道

如何使用新的 discord.py 版本获取不和谐服务器中所有成员的列表?