Задать вопрос
mr_kirill046
@mr_kirill046
Начинающий програмимст

Как сделать кулдаун для кнопок на disnake.py для дискорд бота?

Я хочу сделать кулдаун для кнопки, но я не знаю как это сделать. Я знаю что можно сделать кулдаун для команды:
@commands.cooldown(1, 21600, commands.BucketType.user)


код:
class Piar(disnake.ui.Modal):
    def __init__(self):
        comp = [
            disnake.ui.TextInput(
                label="Название сервера",
                placeholder="SenpaiLend ",
                custom_id="название",
                style=TextInputStyle.short,
                max_length=50
            ),
            disnake.ui.TextInput(
                label='Описание сервера',
                placeholder='Мой сервер...',
                custom_id="описание",
                style=TextInputStyle.paragraph,
                max_length=4000
            ),
            disnake.ui.TextInput(
                label='Ссылка на сервер',
                placeholder='https://discord.gg/xxxxxxxxxx',
                custom_id='ссылка',
                style=TextInputStyle.short,
                max_length=45
            )
        ]
        super().__init__(
            title="Пиар вашего сервера",
            custom_id="create_tag",
            components=comp,
            timeout=2000
        )

        async def on_error(self, error: Exception, inter: disnake.ModalInteraction):
            await inter.response.send_message(f"Произошла ошибка!\n```{error}```")

    async def callback(self, inter: disnake.ModalInteraction):
        embed = disnake.Embed(color=0xff0000)
        for key, value in inter.text_values.items():
            embed.add_field(
                name=key.capitalize(),
                value=value[:1024],
                inline=False,
            )
        await inter.response.send_message("Готово!", ephemeral=True)
        channel = bot.get_channel(1077436355367407717)
        hi = Button(label="Создать пост", style=disnake.ButtonStyle.green, emoji='')

        async def hi_callback(interaction):
            await interaction.response.send_modal(modal=Piar())

        hi.callback = hi_callback

        myview = View()
        myview.add_item(hi)
        await channel.send(embed=embed, view=myview)


@bot.slash_command(name='пиар', description="Команда для пиара")
async def tagg(ctx):
    hi = Button(label="Создать пост", style=disnake.ButtonStyle.green, emoji='')

    async def hi_callback(interaction):
        await interaction.response.send_modal(modal=Piar())

    hi.callback = hi_callback

    myview = View()
    myview.add_item(hi)

    await ctx.send("Пиар серверов!", view=myview)
  • Вопрос задан
  • 703 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@PySher
from disnake.ext import commands
from disnake import Button
@commands.cooldown(1, 21600, commands.BucketType.user)
async def my_command(ctx):
    # ваш код для выполнения команды
my_button = Button(label="My Button", callback=my_command)

Теперь, когда пользователь нажимает на кнопку, вызывается функция my_command, которая будет иметь КД.
Ответ написан
Ваш ответ на вопрос

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

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