Ответы пользователя по тегу discord.py
  • Что делать, если бот не реагирует на команды?

    @vladislavlisitsyn
    Во первых неуказан токен бота, но возможно вы его специально вырезали.
    Во вторых, вы забыли добавить intents
    Пропишите:
    intents = disnake.Intents.all()
    intents.members = True
    intents.presences = True
    
    client = commands.Bot(command_prefix=config['prefix'], intents=intents)


    Более без ошибки в консоли сказать не могу, ибо в самом коде больше косяков не нашёл
    Ответ написан
    Комментировать
  • Почему Discord-бот не пишет сообщение?

    @vladislavlisitsyn
    Попробуй добавить в евент on_message последней строкой
    await bot.process_commands(message)
    Ответ написан
    Комментировать
  • Почему дискорд бота пишет 'Приложение не отвечает'?

    @vladislavlisitsyn
    1. Лучшу использовать disnake
    1. Вместо ctx - inter
    2. Добавь строчку
    await inter.send(embed=disnake.Embed(title='Success'), ephemeral=True)

    inter.send - это возврат ответа
    embed - эмбед
    ephemeral - сообщение которое видно только одному пользователю

    В disnake код будет выглядеть так:
    import disnake
    from disnake.ext import commands
    
    @client.slash_command(aliases=['мьют', 'мут'], description='Mute member')
    @commands.has_any_role(id ролей)
    async def mute(inter, member: disnake.Member, amout: int, *, reason):
        channel1 = client.get_channel(id канала)
        times_start = datetime.datetime.today()
        emb_user = disnake.Embed(title='**Уведомление - Mute**', color=disnake.Color.gold())
        emb_user.add_field(name='**Выдал:**', value=inter.author.mention, inline=False)
        emb_user.add_field(name='**Причина:**', value=reason, inline=False)
        emb_user.add_field(name='**Длительность:**', value=amout, inline=False)
        emb_user.add_field(name='**Сервер:**', value=inter.guild.name, inline=False)
        emb_user.set_footer(text=f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
    
        emb_user_stop = disnake.Embed(title='**Уведомление - Unmute**', color=disnake.Color.gold())
        emb_user_stop.add_field(name='**Снял:**', value='*Сервер(автоматически)*', inline=False)
        emb_user_stop.add_field(name='**Сервер:**', value=inter.guild.name, inline=False)
        emb_user_stop.set_footer(text=f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
        mute_role = disnake.utils.get(inter.guild.roles, id=1071516672407633980)
    
        emb = disnake.Embed(title=f'**System - Mute**', color=disnake.Color.gold())
        emb.add_field(name='Выдал:', value=inter.author.mention, inline=False)
        emb.add_field(name='Нарушитель:', value=member.mention, inline=False)
        emb.add_field(name='ID нарушителя:', value=member.id, inline=False)
        emb.add_field(name='Причина:', value=reason, inline=False)
        emb.add_field(name='Длительность:', value='{} минут'.format(time))
        emb.set_footer(text=f'Дата: {times_start.strftime("%Y-%m-%d, %H:%M:%S")}')
        await member.add_roles(mute_role)
        await channel1.send(embed=emb)
        await member.send(embed=emb_user)
        await inter.send(embed=emb, ephemeral=True)
        await asyncio.sleep(time * 60)
        await member.remove_roles(mute_role)
        await member.send(embed=emb_user_stop)
    Ответ написан
  • Команда только для выбранных пользователей discord.py?

    @vladislavlisitsyn
    fenrir Намного проще будет сделать:
    @commands.has_any_role(здесь через запятую перечисляем роли)
    Ответ написан
  • Как сделать РП команду Discord.py?

    @vladislavlisitsyn
    Во первых, более удобнo будет использовать слеш команды.
    В вашем случае, вы сами указали в параметрих команды id

    Исправленый код:
    @client.command()
    async def slap(ctx, member: discord.Member = None):
        if member is None:
            await ctx.send(embed=discord.Embed(title='[ERROR] Slap', description='Укажите пользователя'))
        else:
            emb = discord.Embed(title=None, description = f"На весь чат был шум. {ctx.author.mention} дал пощечену {member.mention} по лицу!", color=0x3498db)
            emb.set_image(url="тут указано")
            await ctx.send(embed=emb)


    Там от себя чуть чуть добавил)
    Ответ написан
    1 комментарий
  • Как сделать команду которая работает в определённой категории?

    @vladislavlisitsyn Автор вопроса
    Ответ: в коде вставить
    if inter.channel.category.id == id_category:

    Если кто сможет написать проще, можете кидать идеи)
    Ответ написан
    Комментировать
  • Как сделать await purge(limit=1) в disnake?

    @vladislavlisitsyn Автор вопроса
    Там вроде disnake должен быть схож с discord.py
    Ответ написан
    Комментировать
  • Как поменять категорию канала дискорд?

    @vladislavlisitsyn Автор вопроса
    category = discord.utils.get(ctx.guild.channels, name="имя категории")
    await ctx.channel.edit(category=category)
    Ответ написан
    Комментировать
  • Как создать черный список в дискорд боте?

    @vladislavlisitsyn
    Если ты только начал программировать, тебе стоит сначала хотябы выучить основы.
    Ответ на твой вопрос - это работа с базами данных. Для тебя это будет особенно сложно.
    Ответ написан
    Комментировать
  • Нужно запустить 2-х ботов с одного файла, как это сделать?

    @vladislavlisitsyn
    Не понимаю в чём смысл запускать двух ботов с одного файла
    Создай копию файла и запустите бота через другой файл (конечно надо будет поменять токен)
    Ну а если ты вообще прошареный можешь сделать бота мультисерверным
    Ответ написан
    Комментировать
  • Discord.py не воспринимает команды?

    @vladislavlisitsyn
    @commands.has_permissions() идёт после @bot.command()
    Ответ написан
    Комментировать
  • Почему могут не работать команды в discord.py?

    @vladislavlisitsyn
    В евентах on_message() необходимо вставить следующую строчку в конце await client.process_commands(message)
    Должно получиться что то вроде
    @bot_event
    awync def on_message(message):
        #свой код
        await client.process_commands(message)
    Ответ написан
    Комментировать
  • Как выключить всторенную help команду discord.py?

    @vladislavlisitsyn
    В самом начеле бота, после конфига идёт
    client = commands.Bot(command_prefix=config['prefix'])
    Добавь в скобки help_command=None
    В итогу должно получиться
    client = commands.Bot(command_prefix=config['prefix'], help_command=None)
    Ответ написан
    Комментировать