我正在测试服务器上运行机器人。该频道当前有3个成员(member_count为3),但是它仅返回一个成员。这个成员是Bot。
代码:
import discord
from discord.ext import commands
TOKEN = "<Token>"
CHANNEL_ID = 1234
@client.event
async def on_ready():
channel = client.get_channel(CHANNEL_ID)
print(channel.members)
client.run(TOKEN)
输出:
[<Member id=<> name='Bot_name' discriminator='Bot_discriminator' bot=True nick=None guild=<Guild id=<> name="Server_name" shard_id=None chunked=False member_count=3>>]
答案 0 :(得分:4)
Discord最近更改了其bot API,这可能与您看到的内容有关。
好消息是该修复程序相当容易,您只需要在bot的管理页面中启用“服务器成员意图”即可。跟随the instructions here。
答案 1 :(得分:0)
尝试遍历channel.members
例如:
for i in channel.members:
print(i.id)
答案 2 :(得分:0)
您可以将其放入命令中,该命令将获取该命令所使用的通道中的成员数。
文档:
@bot.command()
async def count(ctx):
print(len(ctx.channel.members)) # to show how many are there
for member in ctx.channel.members:
print(member.name)