Таким образом, я могу проверить роли пользователя на сервере с помощью следующего кода:
#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))
Это возвращает ошибку в строке "для x в targetUser.roles:"
AttributeError: 'NoneType «У объекта нет атрибута» роли »
Я думаю, что« targetUser », который он получает, не относится к ролям. Feelsbadman. Как получить роли пользователя на сервере по команде, введенной в DM?
Спасибо за помощь