@Reaper_sds

Dropdown error disnake в чём проблема?

почему то когда нажимаю на дроп даун опцию но ничего не происходит
Вот код:
async def callback(self, inter: disnake.MessageInteraction):
    if self.values[0] == "1":
        await inter.response.send_modal(modal=huntermodal())
    elif self.values[0] == "2":
        await inter.response.send_modal(modal=wisemodal())

Вот весь код:
import disnake
from disnake.ext import commands
from disnake import TextInputStyle

class modermodal(disnake.ui.Modal):
  def __init__(self, bot):
    components = [
      disnake.ui.TextInput(
        label=f"Ваше имя",
        placeholder="Введите ваше имя",
        custom_id="name",
        style=TextInputStyle.short,
        max_length=50
      ),
      disnake.ui.TextInput(
        label=f"Ваш возраст",
        placeholder="Введите ваш возраст",
        custom_id="age",
        style=TextInputStyle.short,
        max_length=50
      ),
      disnake.ui.TextInput(
        label=f"Расскажите о себе",
        placeholder="Расскажите о себе",
        custom_id="about",
        style=TextInputStyle.paragraph,
        max_length=1000
      ),
      disnake.ui.TextInput(
        label=f"Знание правил сервера от 1 до 10",
        placeholder="Введите ваш уровень знания правил сервера",
        custom_id="brain",
        style=TextInputStyle.short,
        max_length=10
      )
    ]
    super().__init__(title="Заявка на Moderator Team", components=components)

  async def callback(self, inter: disnake.ModalInteraction):
    await inter.response.send_message("**Ваша заявка была отправлена на рассмотрение**", ephemeral=True)
    channel = inter.guild.get_channel(1220689391186612235)
    view = disnake.ui.View()
    view.add_item(disnake.ui.Button(emoji="", style=disnake.ButtonStyle.danger, custom_id="consideration0"))
    embed = disnake.Embed(title="Заявка на Moderator Team", description=f"Пользователь {inter.author.mention} отправил заявку", color=0x6600ff)
    embed.add_field(name="Имя", value=f"```{inter.text_values['name']}```", inline=False)
    embed.add_field(name="Возраст", value=f"```{inter.text_values['age']}```", inline=False)
    embed.add_field(name="О себе", value=f"```{inter.text_values['about']}```", inline=False)
    embed.add_field(name="Знание правил сервера", value=f"```{inter.text_values['brain']}```")
    embed.set_thumbnail(url=inter.author.avatar.url)
    embed.set_footer(text="Нажмите на кнопку ниже, чтобы занять заявку, и чтобы другие не украли")
    await channel.send(embed=embed, view=view)

class supportmodal(disnake.ui.Modal):
  def __init__(self, bot):
    components2 = [
      disnake.ui.TextInput(
        label=f"Ваше имя",
        placeholder="Введите ваше имя",
        custom_id="name",
        style=TextInputStyle.short,
        max_length=50
      ),
      disnake.ui.TextInput(
        label=f"Ваш возраст",
        placeholder="Введите ваш возраст",
        custom_id="age",
        style=TextInputStyle.short,
        max_length=50
      ),
      disnake.ui.TextInput(
        label=f"Расскажите о себе",
        placeholder="Расскажите о себе",
        custom_id="about",
        style=TextInputStyle.paragraph,
        max_length=1000
      )
    ]
    super().__init__(title="Заявка на Support", components=components2)

  async def callback(self, inter: disnake.ModalInteraction):
    await inter.response.send_message("**Ваша заявка была отправлена на рассмотрение**", ephemeral=True)
    channel = inter.guild.get_channel(1220689391186612235)
    view = disnake.ui.View()
    view.add_item(disnake.ui.Button(emoji="", style=disnake.ButtonStyle.danger, custom_id="consideration"))
    embed = disnake.Embed(title="Заявка на Support Team", description=f"Пользователь {inter.author.mention} отправил заявку", color=0x6600ff)
    embed.add_field(name="Имя", value=f"```{inter.text_values['name']}```", inline=False)
    embed.add_field(name="Возраст", value=f"```{inter.text_values['age']}```", inline=False)
    embed.add_field(name="О себе", value=f"```{inter.text_values['about']}```", inline=False)
    embed.set_thumbnail(url=inter.author.avatar.url)
    embed.set_footer(text="Нажмите на кнопку ниже, чтобы занять заявку, и чтобы другие не украли")
    await channel.send(embed=embed, view=view)

class staffapp(commands.Cog):
  def __init__(self, bot):
    self.bot = bot

  @commands.slash_command(description="Заявка на Hunter Team")
  @commands.has_permissions(administrator=True)
  async def staffapp(self, inter: disnake.ApplicationCommandInteraction):
    await inter.send("...", ephemeral=True)
    channel = inter.guild.get_channel(1220933621909819503)
    select = disnake.ui.Select(
      placeholder="Выберите категорию",
      options=[
        disnake.SelectOption(label="Moderator", value="1", emoji=""),
        disnake.SelectOption(label="Support", value="2", emoji="")
      ]
    )
    view = disnake.ui.View()
    view.add_item(select)
    embed = disnake.Embed(title="**Заявка на Moderator Team**", description="**В данной теме вы можете подать заявку на должность `Moderator` или `Support`!\nТребование к кандидату:**\n• **Адекватность, грамотность, коммуникабельность.**\n• **Возраст от 13 лет.**\n• **Знание правил сервера.**\n**От нас вы получите:**\n• **Личные роли.**\n• **Разные призы за хорошую отработанную месячную норму!**\n• **Респект от меня лично**", color=0x00c2ff)
    embed.set_thumbnail(url="https://media.discordapp.net/attachments/836018520432574467/1220928790985969704/5172-staff-lightblue.png?ex=6610b98b&is=65fe448b&hm=48a08df0c14bd41a88a26f42&=&format=webp&quality=lossless&width=320&height=320")
    embed.set_image(url="https://media.discordapp.net/attachments/1210442042086391839/1220931481283723364/94d49f17aa2c97c39eba34c42a11644e.jpg?ex=6610bc0c&is=65fe470c&hm=8232d6c41ead53735c614c3a84c5012df0b1a068061076c8f616c8757280f4f6&=&format=webp&width=687&height=287")
    embed.set_footer(text="Призы могут быть как и деньги или повышение, так и что то по лучше:)")
    await channel.send(embed=embed, view=view)
    
  async def callback(self, inter: disnake.MessageInteraction):
    if self.values[0] == "1":
        await inter.response.send_modal(modal=huntermodal())
    elif self.values[0] == "2":
        await inter.response.send_modal(modal=wisemodal())

def setup(bot):
  bot.add_cog(staffapp(bot))
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
В чём проблема?
В том что класс staffapp наследуется от commands.Cog, а не ui.Modal. Эффекта от того что вы сделаете в произвольном классе функцию callback не будет.
На русском есть очень подробная документация.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы