• Не играет музыкальный бот disnake.py?

    ra9_9ar
    @ra9_9ar Автор вопроса
    Борис Алексеев,
    Ignoring exception in slash command 'play':
    Traceback (most recent call last):
      File "C:\Users\DNS\PycharmProjects\miller\venv\Lib\site-packages\disnake\ext\commands\slash_core.py", line 732, in invoke
        await call_param_func(self.callback, inter, self.cog, **kwargs)
      File "C:\Users\DNS\PycharmProjects\miller\venv\Lib\site-packages\disnake\ext\commands\params.py", line 1022, in call_param_func
        return await maybe_coroutine(safe_call, function, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\DNS\PycharmProjects\miller\venv\Lib\site-packages\disnake\utils.py", line 600, in maybe_coroutine
        return await value
               ^^^^^^^^^^^
      File "C:\Users\DNS\PycharmProjects\miller\Music 1.py", line 71, in play
        async with inter.typing():
                   ^^^^^^^^^^^^
    AttributeError: 'ApplicationCommandInteraction' object has no attribute 'typing'
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "C:\Users\DNS\PycharmProjects\miller\venv\Lib\site-packages\disnake\ext\commands\interaction_bot_base.py", line 1377, in process_application_commands
        await app_command.invoke(interaction)
      File "C:\Users\DNS\PycharmProjects\miller\venv\Lib\site-packages\disnake\ext\commands\slash_core.py", line 741, in invoke
        raise CommandInvokeError(exc) from exc
    disnake.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'ApplicationCommandInteraction' object has no attribute 'typing'
  • Как через discord.py проверить нажатие кнопки в лс?

    ra9_9ar
    @ra9_9ar Автор вопроса
    Спасибо, конечно я не люблю классы(не лажу с ними)
    Я попробовал сделать чуть по другому, но вылезли новые ошибки.
    Есть новый код, он почти такой же, но там просто другая кнопка, после выбора предмета, он должен записывать пользователя в бд и число, но он не записывает, помогите с этим пж.
    И плюс, он должен отправлять автору сообщения и пользователю, которого упомянули, но он отправляет только автору

    name = 'knb'
    cur.execute('CREATE TABLE IF NOT EXISTS {}(userid INT, cost INT)'.format(name))
    knb.commit()
    
    @bot.command()
    async def knb(ctx, user: discord.User = None):
        name = 'knb'
        if user is None:
            await ctx.send(f"**{ctx.author}**, укажите пользователя, с которым желаете сыграть.")
        else:
            embed = discord.Embed(title='Вы начали игру "Камень Ножници Бумага".', description='Через 10 секунд появится победитель!', color=color)
            await ctx.send(embed=embed)
            embed1 = discord.Embed(title='Выберете', description='Камень    Ножници    Бумага', color=color)
            await ctx.author.send(embed=embed1,
                components = [
                    Select(
                        placeholder = "Select something!",
                        options = [
                            SelectOption(label = "Камень", value = "kamen"),
                            SelectOption(label = "Ножницы", value = "noj"),
                            SelectOption(label = "Бумага", value = "bum")
                ])])
            interaction = await bot.wait_for("select_option")
            if interaction.values[0] == 'kamen':
                await interaction.send(content = "Вы выбрали камень")
                cur.execute('INSERT INTO {} VALUES (?, ?)'.format(name), (ctx.author.id,1))
                knb.commit()
            elif interaction.values[0] == 'noj':
                await interaction.send(content = "Вы выбрали ножницы")
                cur.execute('INSERT INTO {} VALUES (?, ?)'.format(name), (ctx.author.id,2))
                knb.commit()
            elif interaction.values[0] == 'bum':
                await interaction.send(content = "Вы выбрали бумагу")
                cur.execute('INSERT INTO {} VALUES (?, ?)'.format(name), (ctx.author.id,3))
                knb.commit()
    
            await user.send(embed=embed1,
                components = [
                    Select(
                        placeholder = "Select something!",
                        options = [
                            SelectOption(label = "Камень", value = "kamen"),
                            SelectOption(label = "Ножници", value = "noj"),
                            SelectOption(label = "Бумага", value = "bum")
                ])])
            interaction = await bot.wait_for("select_option")
            if interaction.values[0] == 'kamen':
                await interaction.send(content = "Вы выбрали камень")
                cur.execute('INSERT INTO {} VALUES (?, ?)'.format(name), (ctx.author.id,1))
                knb.commit()
            elif interaction.values[0] == 'noj':
                await interaction.send(content = "Вы выбрали ножницы")
                cur.execute('INSERT INTO {} VALUES (?, ?)'.format(name), (ctx.author.id,2))
                knb.commit()
            elif interaction.values[0] == 'bum':
                await interaction.send(content = "Вы выбрали бумагу")
                cur.execute('INSERT INTO {} VALUES (?, ?)'.format(name), (ctx.author.id,3))
                knb.commit()