Как использовать discord.py remove_roles для многих ролей?(список объектов в виде аргументов) - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь удалить все роли одной командой.- Объявление пустого списка.
- Создание списка реальных ролей
- Получение роли объекта и добавление ее в список.- Вызов remove_roles со списком ролей объектов.

x = []  
serverroles = ['blabla','piupiu','etc']  
for role in serverroles:  
    x.append(discord.utils.get(ctx.message.server.roles, name=role))
await client.remove_roles(ctx.message.author, x)  

Получение ошибки: AttributeError: 'list' object has no attribute 'id'
Что я делаю не так?

1 Ответ

0 голосов
/ 19 октября 2018

Если вы посмотрите на документацию remove_roles, вы увидите, что ее сигнатура функции:

remove_roles(member, *roles)

*roles означает «ноль или более аргументов, которые получаютположить в tuple называется roles ".Вы можете поставить их индивидуально:

await client.remove_roles(member, role1, role2, role3)

или распаковать.В вашем случае это будет выглядеть как

await client.remove_roles(ctx.message.author, *x) 
...