Ответы пользователя по тегу discord.py
  • Как сделать эмбед в лс?

    @x4zx
    python developer
    Во-первых: не нужно использовать так много тегов - это запрещено правилами. В вашем случае будет лучше всего использовать только Discord и Python, чтобы знать с чем вы работаете.

    Во-вторых: насколько я понял, вы хотите отправлять embed в личные сообщения человеку зашедшему на сервер.

    Вам необходимо работать с таким ивентом как on_member_join в параметрах у которого есть объект member исходя из этого получается следующая строчка кода
    await member.send(...)
    Ответ написан
  • Как сделать "команду внутри команды"?

    @x4zx
    python developer
    Или после ввода команды - показать все классы в ембеде и дать время человеку на ввод класса. С помощью timeout.

    То есть: человек ввёл команду, выбрал класс и просто в чат написал название - бот дальше обработал и выдал ответ
    Ответ написан
    Комментировать
  • Как сделать команду tempmute discord.py?

    @x4zx
    python developer
    Сперва советую ознакомиться с более новой версией библиотеки на которой пишите и понять что pass_context=True, уже давно не используются.

    Во-вторых: если вы хотите выдавать мут на какое-то количество времени, то необходимо использовать базу данных и различные циклы чтобы через заданное время бот снял мут. Как минимум в функции должно быть не time=0, a time: int = None

    К вашему счастью разработчики Discord сделали всё за вас и теперь можно написать подобную функцию очень быстро.
    Возьмите этот видеоролик за пример, даже без знания английского там все очень понятно при просмотре - https://youtu.be/W2TcxVNctw8
    Ответ написан
    Комментировать
  • Как выдать роль по кнопке в discord.py?

    @x4zx
    python developer
    import discord
    from discord import member
    from discord.ext import commands
    from dislash import InteractionClient, ActionRow, Button, ButtonStyle
    
    intents = discord.Intents.all()
    bot = commands.Bot(command_prefix = "!", intents = intents)
    bot.remove_command("help")
    
    inter_client = InteractionClient(bot)
    
    @bot.event
    async def on_ready():
        print(f'Вы вошли как {bot.user}')
    
    @bot.command()
    async def verif(ctx):
    
        emb = discord.Embed(
            description = 
            f"""
            Здраствуйте вы попали на сервер {ctx.guild.name}, пройдите верификацию чтобы получить доступ к другим каналам.
            """,
            colour = 0xFF8C00
        )
        emb.set_thumbnail(url = 'https://cdn.discordapp.com/attachments/772850448892690462/880752123418136596/947d1f802c858b540b84bc3000fc2439_1_-removebg-preview.png')
        emb.set_author(name = 'Верификация')
    
        row = ActionRow(
            Button(
                style = ButtonStyle.gray,
                label = 'Верифицироваться',
                custom_id = 'verif_button'
            )
        )
        await ctx.send(embed = emb, components = [row])
    
    @bot.event
    async def on_button_click(inter):
    
        res = 'Вы успешно верифицировались!' # ваш вывод сообщение что человек получил роль
        guild = bot.get_guild(inter.guild.id)
    
        if inter.component.id == "verif_button":
            verif = guild.get_role(id вашей роли)
            member = inter.author
            await member.add_roles(verif)
            await inter.reply(res, ephemeral = True)
    Ответ написан
    2 комментария
  • Как сделать вывод сообщения при ошибке Timeout Discord.py?

    @x4zx
    python developer
    try:
         await bot.wait_for('message', timeout=15, check=lambda message: message.author == ctx.author)
    except asyncio.TimeoutError:
           await ctx.send(content = "Время на ответ вышло.")
           return
    Ответ написан
    Комментировать