Задать вопрос
@OLIMPIK

Как удалить/добавить роль всем участникам сервера?

Уважаемые кодеры, пытался написать сам, но увы не получилось, поэтому обращаюсь к вам.

В общем команда выглядит так !clearrole @role (!addrolem@role) соответственно это упоминание роли.

Насколько я понял, сначала надо узнать ID роли по упоминанию, а потом по итератору убрать/добавить ее всем участник сервера.

У меня была то одна ошибка, то бот не находил роль, из-за того, что я еще начинающий в библиотеки discord.py у меня не получилось, поэтому буду благодарен тем, кто напишет правильный и рабочий код.
  • Вопрос задан
  • 2123 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
discord.py имеет "расширение" для команд, с вещью, под названием "конвертеры", используйте их.
https://discordpy.readthedocs.io/en/stable/ext/com...

@bot.command()
async def massrole(ctx, role: discord.Role):  # discord.Role здесь будет использоваться как конвертер: 
# https://discordpy.readthedocs.io/en/stable/ext/commands/api.html#discord.ext.commands.RoleConverter
    for member in ctx.guild:
        if role not in member.roles:
            await member.add_roles(role)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@HepkaPlay
JavaScript Junior.
Не любим же мы читать документацию...

Находим в документации Message.role_mentions и работаем с ним.
Находим в List[Role] первую упомянутую роль и очищаем её.
Теперь просто удаляем / добавляем роль людям.
P.S. message.guild.members ... add_roles/remove_roles
P.S.S. Извиняюсь, но я не знаю py от слова совсем, но надеюсь помог :3
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы