• Как на Disnake сделать право на использование команды для определённой роли?

    @astigmatism
    @commands.has_any_role(id)
    Вместо id поставьте айди роли(ей)
    Ролей которые могут использовать команду может быть несколько
    Ответ написан
    Комментировать
  • Как настроить у бота ожидание события взаимодействия(меню выбора)?

    MrShandy
    @MrShandy
    Python
    Вот такое решение отлично работает
    class DropdownView(disnake.ui.View):
        def __init__(self, right_door: int):
            super().__init__(timeout=10)
            self.right_door = str(right_door)
    
        @disnake.ui.string_select(
            placeholder="Выбирайте...",
            min_values=1,
            max_values=1,
            options=[
                disnake.SelectOption(label="1", value="1", description="Выбрать первую дверь"),
                disnake.SelectOption(label="2", value="2", description="Выбрать вторую дверь"),
                disnake.SelectOption(label="3", value="3", description="Выбрать третью дверь")
            ]
        )
        async def callback(self, string_select: disnake.ui.StringSelect, inter: disnake.MessageInteraction):
            if string_select.values[0] == self.right_door:
                await inter.send(
                    embed=disnake.Embed(title="Вы выбрали правильную дверь!",
                                        description="Поздравляю!"),
                    ephemeral=True
                )
            else:
                await inter.send(
                    embed=disnake.Embed(title="Не верно...",
                                        description=f"Правильной дверью была {self.right_door}. В следующий раз повезёт!"),
                    ephemeral=True
                )
            self.stop()
    
    
    
    @bot.slash_command(name="test", description="test command")
    async def test(interaction: disnake.CommandInteraction):
        door = random.choice([1, 2, 3])
        view = DropdownView(door)
        await interaction.send(embed=disnake.Embed(title="Выбери правильную дверь",
                                                   description="Правильная или нет, зависит от твоей удачи...",
                                                   color=0x228b22),
                               view=view, ephemeral=True)
        if await view.wait():
            await interaction.edit_original_response(
                embed=disnake.Embed(title="Вы слишком долго выбирали!",
                                    color=disnake.Color.red()
                                    ),
                view=None)
        else:
            await interaction.delete_original_response()
    Ответ написан
    Комментировать
  • Почему возникает ошибка Max number of daily application command creates has been reached?

    Syjalo
    @Syjalo
    Представьте себе бота
    Проблема на стороне API Discord. Один из разработчиков сказал, что рассмотрит проблему сегодня вечером.
    Почему вечером
    Основной офис Discord расположен в Сан-Франциско и там сейчас ночь. Их 8:00 — 18:00 мск

    upd: фикс задеплоен
    Ответ написан
    Комментировать