Ошибка взаимодействия в выпадающем меню дискорд

Рейтинг: 0Ответов: 1Опубликовано: 22.08.2023

Делаю своего дискорд бота, и хочу добавить в него выпадающее меню, но при нажатии одного из вариантов в этом меню происходит ошибка интеграции.

С этой проблемой я уже два дня, перепробовал много кодов и ни один из них не сработал, пересмотрел много роликов, перечитал много документации, но проблема ни как не решилась. Возможно проблема этого меню не в коде, а в чем-то другом, например, в библиотеке и на самом сайте дискорд.

Был бы очень рад помощи.

import discord
from discord.ext import commands
from discord.ui import Select, View

TOKEN = 

intents = discord.Intents.default()
intents.members = True
intents.message_content = True

bot = commands.Bot(command_prefix='!', intents=intents)

@bot.command()
async def hello(ctx):
    select = Select(options=[
        discord.SelectOption(label="Day", emoji="☀", description="www"),
        discord.SelectOption(label="Night", emoji="🌃", description="www"),
    ])
    view = View()
    view.add_item(select)

    message = await ctx.send("Hi", view=view)

    # Ожидаем взаимодействия пользователя с выпадающим меню
    interaction = await bot.wait_for("select_option", check=lambda i: i.custom_id == select.custom_id)

    # Выполняем действия на основе выбора пользователя

    # Редактируем оригинальное сообщение
    await interaction.response.edit_origin(content="Вы выбрали: " + interaction.values[0])

bot.run(TOKEN)

Ответы

▲ 0

Попробуй так:

class MyView(discord.ui.View):
    @discord.ui.select( 
        placeholder = "Выберите", 
        min_values = 1, 
        max_values = 1,         
        options = [ 
            discord.SelectOption(
                label="Day", 
                emoji="☀", 
                description="www"),
            discord.SelectOption(
                label="Day", 
                emoji="☀", 
                description="www"
            )
        ]
    )
    async def select_callback(self, select, interaction):
        if select.values[0]=='Day':
            await interaction.response.send_message("Вы выбрали: Day", ephemeral=True)
        if select.values[0]=='Night':
            await interaction.response.send_message("Вы выбрали: Night", ephemeral=True)
@bot.command()
async def hello(ctx):
    await ctx.respond('Hi', view=MyView())