【问题标题】:How do I make a list of all members in a discord server using discord.py?如何使用 discord.py 列出不和谐服务器中的所有成员?
【发布时间】:2018-05-23 19:43:45
【问题描述】:
我正在编写一个不和谐的机器人,在尝试使用命令 !members in on_message 事件从服务器中提取所有成员时遇到此错误:
elif message.content.startswith('!members'):
x = server.Server.members
for member in x:
print(member)
我希望这个命令拉出所有成员并在控制台中打印出来,但我得到了错误
TypeError: 'property' 对象不可迭代
当我在不和谐频道中输入命令时。谁能帮我列出频道中所有成员的列表以供进一步使用?
【问题讨论】:
标签:
python
server
discord
discord.py
【解决方案1】:
您需要一个服务器实例来从中获取成员列表。
假设此代码出现在on_message(message),您应该可以更改您的
x = server.Server.members
到
x = message.server.members
请注意,使用带有大写 S 的 Server 将返回类定义,而使用消息中的 server 属性(小写 s)将检索 Server 的实例。
如果您使用的版本 >= 1.0.0,则为
x = message.guild.members
改为。
【解决方案2】:
elif message.content.startswith('!members'):
x = message.server.members
for member in x:
print(member.name) # you'll just print out Member objects your way.
【解决方案3】:
我认为你可以这样做,以便代码更短
elif message.content.startswith('!members'):
print(", ".join([member.name for member in message.server.members])) #You do the list with names of roles and print this without cycle
【解决方案4】:
x = message.server.members 改为x = message.guild.members