簡體   English   中英

Discord.py 機器人在所有公會中僅顯示 1 個成員

[英]Discord.py bot only displaying 1 member in all guilds

我有我的 Discord 機器人設置以在其存在時顯示成員計數,但它只顯示用戶計數的數字 1,但我在服務器中有 2 個成員可以看到機器人。 我在應用程序儀表板上啟用了狀態和成員意圖。

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.members = True
intents.presences = True
bot = commands.Bot(command_prefix="!", intents=intents, activity=discord.Activity(
    type=discord.ActivityType.watching, name=f"{len([discord.client.Guild.members])} users"), status=discord.Status.do_not_disturb)

bot.run("")

事實上,無論它可以訪問多少個成員,它都將始終顯示1

看看這一行:

name=f"{len([discord.client.Guild.members])} users"

這會將顯示的用戶計數設置為[discord.client.Guild.members]的長度。 其長度為 1,因為您剛剛創建了一個新列表,其中所有成員都是第一個元素。


但是, discord.client.Guild.members不是獲取成員數量的方法。 (我什至不認為這些名字存在。)

要正確獲取每個公會中的所有成員,您需要遍歷客戶端所在的每個公會計算每個成員的數量

member_count = sum([guild.member_count for guild in bot.guilds])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM