![](/img/trans.png)
[英]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.