Discord.py Проблема с add_roles

#python #discord.py

#питон #discord.py #python

Вопрос:

 @client.command()
async def vmute(ctx, user, time, * reason) :
    role = discord.utils.get(ctx.guild.roles, name="VcMuted" )
    await user.add_roles(role)
    print(user, role, time)
  

Я буквально понятия не имею, что я делаю не так. С user Я заканчиваю с:

 AttributeError: 'str' object has no attribute 'add_roles'
  

с клиентом (он же бот) В итоге я получаю:

 AttributeError: 'Bot' object has no attribute 'add_roles'
  

Я искал около 10 страниц стека, страницу API и гуглил в течение 1 часа. Я понятия не имею, чего мне здесь не хватает. Если бы кто-нибудь мог сказать мне, что такое оператор для удаления ролей, я был бы признателен. это своего рода моя единственная команда, и я новичок в python. Это просто такая мелочь, которую я не могу заставить запустить.

Ответ №1:

user параметр возвращает строку, укажите тип, используя type hints вот так user: discord.Member .

 @client.command()
async def vmute(ctx, user: discord.Member, time, *reason):
    role = discord.utils.get(ctx.guild.roles, name="VcMuted")
    await user.add_roles(role)
    print(user, role, time)
  

Комментарии:

1. Я так сильно тебя люблю. Теперь это работает… Я выстрелил в себя 200 раз. Вся моя штуковина работает

2. теперь я понял все остальное. давайте посмотрим