Как удалить/добавить роль всем участникам сервера?
Уважаемые кодеры, пытался написать сам, но увы не получилось, поэтому обращаюсь к вам.
В общем команда выглядит так !clearrole @role (!addrolem@role) соответственно это упоминание роли.
Насколько я понял, сначала надо узнать ID роли по упоминанию, а потом по итератору убрать/добавить ее всем участник сервера.
У меня была то одна ошибка, то бот не находил роль, из-за того, что я еще начинающий в библиотеки discord.py у меня не получилось, поэтому буду благодарен тем, кто напишет правильный и рабочий код.
- Вопрос задан более двух лет назад
- 1686 просмотров
Комментировать
Решения вопроса 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)
Как раздать одну роль Дискорд НЕСКОЛЬКИМ ЧЕЛОВЕКАМ за одну команду Discord.py
Бот должен раздавать роли дискорд сервера нескольким людям за одно сообщение (команду) без использования реакций и доп.кнопок. Но я никак не могу это сделать. Получилось раздать роль только автору сообщения. Что я делаю не так и как это исправить? Код, дающий роль только автору этого сообщения:
import discord from discord.utils import get from discord.ext import commands client = commands.Bot(command_prefix="/", help_command=None) @client.command() async def test(ctx): member = ctx.message.author role_1 = member.guild.get_role("id of role") await member.add_roles(role_1) await ctx.channel.send(member) client.run("token")
Отслеживать
задан 11 сен 2020 в 10:30
Чернов Алексей Чернов Алексей
43 2 2 серебряных знака 8 8 бронзовых знаков
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
members = [список_нужных_участников] role_1 = member.guild.get_role("id of role") for member in members: await client.add_roles(member, role_1)
Сам список формируйте из объектов member :
first = discord.utils.get(message.guild.members, name='Sam') members.append(first)
UPDATE Вот так должен выглядеть ваш код (нужно использовать контекст ctx):
import discord from discord.ext import commands client = commands.Bot(command_prefix="/", help_command=None) @client.command(name="test") async def test(ctx): members = ['name1', 'name2'] role_1 = discord.utils.get(ctx.guild.roles, for member in members: current = discord.utils.get(ctx.message.guild.members, name=member) await current.add_roles(role_1) client.run("API_key")
Как добавить роль в Дискорде
Роли в Discord позволяют расширить полномочия определенных пользователей на выбранных серверах и каналах. Такой “трюк” хорошо работает, когда есть большое количество людей и необходимо привести эту систему в порядок (создать импровизированную иерархию). О том, как правильно назначить роль участнику в Discord, расскажем в статье.
Добавление ролей в Дискорде на ПК
Создание подобных привилегий не является чем-то за гранью фантастики. Вам необходимо лишь уверенно обращаться с программой и знать немного о настройках серверов. К примеру, последовательность действий по введению должности администратора будет выглядеть следующим образом:
- Переходим в настройки нужного сервера.
- Кликаем по кнопке, выделенной на скриншоте.
- Вводим данные: название, цвет значка, плюс включаем требуемые параметры, например, расширяя стандартные права.
Как выдать всем участникам сразу роль в дискорд?
Ставишь в дискорд канал бота Dyno ( https://dyno.gg/ ). После просто пишешь? role all Название роли. Дальше просто ждёшь. Обычно на 1 пользователя уходит примерно 1-2 секунды.
Денчик ЗайцевУченик (108) 3 года назад
а как потом забрать роль? допустим я сделал выдать роль мута у меня все замутились, а потом как так же быстро у всех забрать роль ?
Fluffy_C_a_T Знаток (414) Если ты всем роль мута выдал, то это как-то.. тупо.. Если ты применил это к 50+ людям, то иди сюда копайся (https://dyno.gg/commands#/Manager), если там человек 30, то легче и быстрее вручную сделать. Ну или ты можешь удалить роль мута, а потом мучатся пол часа, чтобы её восстановить.
МаксимУченик (191) 5 месяцев назад
25 минут сказал мне бот XD я без шуток кста 1542 участника
Fluffy_C_a_T Знаток (414) Максим, могло быть и хуже