大家好我正在写一个不和谐的机器人,当我尝试用on_message事件中的命令成员从服务器中拉出所有成员时,我遇到了这个错误:
elif message.content.startswith('!members'):
x = server.Server.members
for member in x:
print(member)
我希望此命令拉出所有成员并在控制台中打印出来但我收到错误 TypeError:' property'对象不可迭代
当我在不和谐频道中输入命令时。任何人都可以帮我列出我可以进一步使用的频道中的所有成员吗?
答案 0 :(得分:3)
您需要一个服务器实例才能从中获取成员列表。
假设此代码显示在on_message(message)
中,您应该可以更改
x = server.Server.members
到
x = message.server.members
请注意,使用带有大写字母S的Server
将返回类定义,而使用消息中的server
属性(小写s)将检索服务器的实例。
答案 1 :(得分:1)
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.
答案 2 :(得分:0)
我认为你可以这样做,以便代码更短
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
答案 3 :(得分:0)
x = message.server.members
更改为 x = message.guild.members