rensly
@rensly
---

Что я делаю не так, и почему возникает ошибка?

я делаю бота который при сообщении если у кого-то из участников есть определенная роль, бот должен поменять ник участников на <символ> User, я написал вот это, запускаю и мне даёт ошибку 403 Forbidden, права у бота есть, роль бота стоит выше всех ролей на сервере. в чем проблема не знаю.

@bot.event
async def on_message(message):
    guild = bot.get_guild(916413500128104509)
    
    governor = guild.get_role(928254276940202045)
    archon = guild.get_role(928251044457238579)
    judge = guild.get_role(928253027889066004)
    magister = guild.get_role(934511425999732756)
    
    for member in guild.members:
        if governor in member.roles:
            await member.edit(nick=f'⛨ {member.name}')
        elif archon in member.roles:
            await member.edit(nick=f' {member.name}')
        elif judge in member.roles:
            await member.edit(nick=f'⏣ {member.name}')
        elif magister in member.roles:
            await member.edit(nick=f' {member.name}')
  • Вопрос задан
  • 157 просмотров
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Разрешение на смену ников у бота есть? Что-то подсказывает, что нет
Ответ написан
@x4zx
junior python developer
Не понятно зачем вы делаете это через цикл, если можно работать напрямую с автором сообщения.

@bot.event
async def on_message(message):
    guild = bot.get_guild(916413500128104509)
    
    governor = guild.get_role(928254276940202045)
    archon = guild.get_role(928251044457238579)
    judge = guild.get_role(928253027889066004)
    magister = guild.get_role(934511425999732756)
    
    if governor in message.author.roles:
        await message.author.edit(nick = f'⛨ {message.author.name}')
    elif archon in message.author.roles:
        await message.author.edit(nick = f'{message.author.name}')
    elif judge in message.author.roles:
        await message.author.edit(nick = f'⏣ {message.author.name}')
    elif magister in message.author.roles:
        await message.author.edit(nick = f'{message.author.name}')
    else:
        return


Попробуйте это ^
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы