[英]How do I get a list of all the categories and channels inside the current server with discord.py in discord?
[英]How do I get a list of all users in my discord server with a specific role using discord async in python? (code inside)
我有 python 代碼來控制我的服務器中的一個機器人,該機器人在幾周前一直在工作。 我有下面的代碼,可以獲取服務器中具有特定角色的所有人的列表,並將他們添加到列表中。 稍后我會用這個列表做一些事情。 代碼如下:
@bot.command(pass_context = True)
async def getuserlist(ctx, useDiscordID : bool = False):
memberlist = []
for guild in bot.guilds:
for member in guild.members:
for role in member.roles:
if role.name == "something" or role.name == "somethingelse":
if member.nick is None:
toAppend = member.name
else:
toAppend = member.nick
memberlist.append(str(toAppend))
出於某種原因,這停止了工作,而不是讓所有用戶都具有 something/somethingelse 角色,它當時只抓住服務器中任何語音通道中的用戶。 我該如何解決?
您的問題可能是因為 discord.py 1.5.x Intents
更新。 如果這是問題,你可以看看這個答案。
您可以只使用role.members
來獲取具有此角色的成員列表。 如果您的機器人僅在 1 個公會上運行,您可以執行以下操作:
@bot.command(pass_context = True)
async def getuserlist(ctx, useDiscordID: bool = False):
role1 = discord.utils.get(ctx.guild.roles, name='something')
role2 = discord.utils.get(ctx.guild.roles, name='somethingelse')
memberlist = role1.members + role2.members
如果它在多個行會上運行:
@bot.command(pass_context = True)
async def getuserlist(ctx, useDiscordID: bool = False):
memberlist = []
for guild in bot.guilds:
role1 = discord.utils.get(guild.roles, name='something')
role2 = discord.utils.get(guild.roles, name='somethingelse')
if role1:
memberlist += role1.members
if role2:
memberlist += role2.members
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.