Возникает проблема при использовании слеш команды вместе с 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('У Вас нет доступа к данному разделу, попробуйте другой! ❌')