Задать вопрос
flameyolo
@flameyolo

Не работает слеш команда с dropdown меню, почему?

Возникает проблема при использовании слеш команды вместе с dropdown меню - оно просто не отправляется.
При этом без слеш команды все работает идеально, что не так?

Вот код:
@slash.slash(
    name = 'help',
    description = 'Помощь по использованию',
    guild_ids = [672733369859309568]
)
async def sm(ctx: SlashContext):
    guild = bot.get_guild(672733369859309568)
    moderatorrole = discord.utils.get(guild.roles, id=827520667464237058)

    embed = discord.Embed(title='Помощь', description='Выберите раздел, по которому требуется помощь, ниже!')
    embed.set_thumbnail(url='https://i.imgur.com/OJhMQ7t.gif')

    # ОТПРАВКА ПОМОЩИ МОДЕРАТОРАМ
    if moderatorrole in ctx.author.roles:
        await ctx.send(embed=embed,
        components = [
        Select(
            placeholder = 'Выберите раздел',
            options = [
                SelectOption(label="Общие команды", description="Помощь по использованию основных команд", emoji="", value="value1"),
                SelectOption(label="Музыкальные команды", description="Помощь по использованию музыкального бота", emoji="", value="value2"),
                SelectOption(label="Админ команды", description="Помощь по использованию админ команд", emoji="", value="value3"),
                ])])

    # ОТПРАВКА ПОМОЩИ ПОЛЬЗОВАТЕЛЯМ
    else:
        await ctx.send(embed=embed,
        components = [
        Select(
            placeholder = 'Выберите раздел',
            options = [
                SelectOption(label="Общие команды", description="Помощь по использованию основных команд", emoji="", value="value1"),
                SelectOption(label="Музыкальные команды", description="Помощь по использованию музыкального бота", emoji="", value="value2"),
                ])])



# ИВЕНТ НА ПРОВЕРКУ НАЖАТИЯ КНОПКИ
@bot.event
async def on_select_option(interaction):
    # if interaction.message.id == 962306293018796093: #Message id(not obligatory)
    guild = bot.get_guild(672733369859309568)
    moderatorrole = discord.utils.get(guild.roles, id=827520667464237058)

    embedmain = discord.Embed(color=0xf0e500, title='Общий раздел помощи', description='`/rules` - правила сервера\n\n`/ticket` - создать новый тикет\n\n `/admins` - вызвать администратора в чат')
    embedmain.set_thumbnail(url='https://i.imgur.com/wnjpCVV.png')

    embedmusic = discord.Embed(color=0xcf0000, title='Музыкальный раздел помощи', description='`!play` `Название трека / URL` - поиск трека на YouTube\n\n`!reload` - перезагрузить бота (используйте при возникновении ошибок, когда бот в канале)\n\n`!pause` - поставить проигрывание музыки на паузу\n\n`!stop` - очистка очереди и выключение плеера\n\n`!skip` - пропустить играющий в данный момент трек\n\n`!resume` - снять проигрывание музыки с паузы\n\n`!now` - узнать, какой трек играет сейчас\n\n`!loop` - повторение играющего в данный момент трека\n\n`!shuffle` - перемешать музыку в очереди\n\n`!queue` - просмотр очереди треков\n\n`!join` - подключение бота к голосовому каналу\n\n `!leave` - отключение бота от голосового канала')
    embedmusic.set_thumbnail(url='https://i.imgur.com/Oycqq1T.png')
    embedmusic.set_footer(text = ' Flaming Music')

    embedadmin = discord.Embed(color=0xf73c00, title='Админ раздел помощи', description='`/giveaway (Требуется роль Giveaway Host)` -  запуск розыгрыша\n\n`/mute` `@пользователь` `длительность (в минутах)` `причина (обязательно)` - мут пользователя\n\n`/unmute` `@пользователь` `причина (обязательно)` - размут пользователя\n\n`/kick` `@пользователь` `причина (обязательно)` - кик пользователя\n\n`/ban` `@пользователь` `длительность (в днях)` `причина (обязательно)` - бан пользователя\n\n`/clear` `количество сообщений` - очистка чата\n\n`/temprole` `@пользователь` `@роль` `длительность (в днях)` `причина (обязательно)` - временная роль\n\n`/untemprole` `@пользователь` `@роль` `причина (обязательно)` - снятие временной роли')
    embedadmin.set_thumbnail(url='https://i.imgur.com/L8GEDOG.png')

    await interaction.respond(type=6)

    # ИЗМЕНЕНИЕ СООБЩЕНИЯ НА ОСНОВНЫЕ КОМАНДЫ
    if interaction.values[0] == "value1":
        await interaction.send(embed = embedmain)

    # ИЗМЕНЕНИЕ СООБЩЕНИЯ НА МУЗЫКАЛЬНЫЕ КОМАНДЫ
    elif interaction.values[0] == "value2":
        await interaction.send(embed = embedmusic)

    # ИЗМЕНЕНИЕ СООБЩЕНИЯ НА АДМИН КОМАНДЫ
    elif interaction.values[0] == "value3":
        if moderatorrole in interaction.author.roles:
            await interaction.send(embed = embedadmin)
        else:
            await interaction.author.send('У Вас нет доступа к данному разделу, попробуйте другой! ❌')
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы