Задать вопрос
  • Авто-выдача роли discord.py + команда указывающая id, как сделать?

    @SerjLore
    Здравствуй. (Если это актуально)
    Бот выполняет команду так:
    1. Создание цикла с объектом "bot.guilds".
    2. Поиск в 1-ом пункте "member" на всём сервере.
    3. Поиск ID роли по названию. (Или сам думай как сделать по айди, у меня ошибка что нельзя выдавать роль по ID)
    4. Выдача роли по действию из 3-го пункта.
    5. Отчет.

    Сами коды, я использую коги, поэтому есть 2 варианта.
    Коги:
    @commands.command() # начало команды
    	@commands.has_permissions(administrator = True) # нужны права администратора? - да
    	async def ar(self, ctx, autoroles): #сама команда и что ей надо указать, это prefix, комаду и НАЗВАНИЕ роли.
    		for guild in self.bot.guilds: # оно ищет на сервере людей
    			for member in guild.members: # и тут делается все работа для member-a
    				autoroles2 = discord.utils.get(ctx.message.guild.roles, name = autoroles) # нахождение айди по названию, иначе будет ошибка(у меня)
    				await member.add_roles(autoroles2) # само добавление роли
    		emb = discord.Embed(description = 'Роли успешно добавлены ВСЕМ участникам Discord сервера.')
    		await ctx.send(embed = emb) # теперь бот сообщает что всё вышло.


    Не коги:
    @bot.command() # начало команды
    @bot.has_permissions(administrator = True) # нужны права администратора? - да
    async def ar(ctx, autoroles): #сама команда и что ей надо указать, это prefix, комаду и НАЗВАНИЕ роли.
    	for guild in bot.guilds: # оно ищет на сервере людей
    		for member in guild.members: # и тут делается все работа для member-a
    			autoroles2 = discord.utils.get(ctx.message.guild.roles, name = autoroles) # нахождение айди по названию, иначе будет ошибка(у меня)
    			await member.add_roles(autoroles2) # само добавление роли
    	emb = discord.Embed(description = 'Роли успешно добавлены ВСЕМ участникам Discord сервера.')
    	await ctx.send(embed = emb) # теперь бот сообщает что всё вышло.
    Ответ написан
    Комментировать
  • Как сделать кд?

    @SerjLore
    hello = ['Привет', 'Хай']

    @client.event
    async def on_message(message):
    m = message.content.lower()
    if message.author == client.user:
    return

    Если ты делаешь message.content.lower() то в списке указывай сообщение маленькими буквами, иначе бот не будет ничего отправлять.
    Ответ написан
    Комментировать