Python Discord Bot - 在不同的服务器中获取用户角色
Python Discord Bot - Get a users roles in a different server
所以我可以使用以下代码检查用户在服务器中的角色:
#Check Admin:
playerRoles = []
for x in message.author.roles:
playerRoles.append(str(x))
if "Admin" in playerRoles:
但我希望机器人能够检测到它们在 与发出命令的服务器不同的服务器中的角色。我希望命令能够通过 DMing 发送给机器人,所以显然我不能使用 message.author.roles 因为用户在 DM 中没有角色,他在服务器中扮演角色。
这是我尝试过的:
#Check Roles:
playerRoles = []
#target the user manually to get his roles in the event of a DM
pepeServer = client.get_guild(guildID)
targetUser = discord.utils.get(pepeServer.members, id=userID)
for x in targetUser.roles:
playerRoles.append(str(x))
这个returns一个错误就行了"for x in targetUser.roles:"
AttributeError: 'NoneType' 对象没有属性 'roles'
我猜它得到的"targetUser"不是那种有角色的。感觉不好的人。如何从 DM 中发出的命令获取用户在服务器中的角色?
感谢帮助
AttributeError: 'NoneType' object has no attribute 'roles'
表示 targetUser
是 None
.
所以你的 discord.utils.get(pepeServer.members, id=userID)
没有 return 任何东西。
检查服务器和用户 ID。
所以我可以使用以下代码检查用户在服务器中的角色:
#Check Admin:
playerRoles = []
for x in message.author.roles:
playerRoles.append(str(x))
if "Admin" in playerRoles:
但我希望机器人能够检测到它们在 与发出命令的服务器不同的服务器中的角色。我希望命令能够通过 DMing 发送给机器人,所以显然我不能使用 message.author.roles 因为用户在 DM 中没有角色,他在服务器中扮演角色。
这是我尝试过的:
#Check Roles:
playerRoles = []
#target the user manually to get his roles in the event of a DM
pepeServer = client.get_guild(guildID)
targetUser = discord.utils.get(pepeServer.members, id=userID)
for x in targetUser.roles:
playerRoles.append(str(x))
这个returns一个错误就行了"for x in targetUser.roles:"
AttributeError: 'NoneType' 对象没有属性 'roles'
我猜它得到的"targetUser"不是那种有角色的。感觉不好的人。如何从 DM 中发出的命令获取用户在服务器中的角色?
感谢帮助
AttributeError: 'NoneType' object has no attribute 'roles'
表示 targetUser
是 None
.
所以你的 discord.utils.get(pepeServer.members, id=userID)
没有 return 任何东西。
检查服务器和用户 ID。