@PRoGRamm_InG

Как добавить к сообщению кнопки в дискорд боте в python?

Мне нужно добавить кнопки к сообщению в дискорд боте, как я могу это осуществить? (нигде не нахожу)
  • Вопрос задан
  • 5556 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Плохо ищешь. Хотя это только для самой новой версии discord.py (её разработку приостанавливали, но вроде возобновили).
Пример по ссылке с моими комментариями:
import discord
from discord.ext import commands 

client=commands.Bot(command_prefix=".")

class Buttons(discord.ui.View):  # класс описывает набор кнопок
    def __init__(self, *, timeout=180):  # конструктор класса
        super().__init__(timeout=timeout)
    # этому методу будет сопоставлена кнопка. По клику метод будет вызван.
    @discord.ui.button(label="Button",style=discord.ButtonStyle.gray)
    async def gray_button(self,button:discord.ui.Button,interaction:discord.Interaction):
        # ищи сведения об объекте discord.Interaction, чтобы понять, что ещё можно сделать в обработчике кнопки.
        await interaction.response.edit_message(content=f"This is an edited button response!")
        # альтернативно, тут ты можешь вызывать требуемые тебе методы и вообще делать что нужно

@client.command()
async def button(ctx):  # по команде !button отсылается сообщение с кнопками
    await ctx.send(
        "This message has buttons!",  # текст сообщения как обычно
        view=Buttons()  # создаём экземпляр класса Buttons и прикрепляем его
    )

token=""
client.run(token)  # запуск бота
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Animemchik
вроде бы нужно discord.ui импортировать перед его использованием
Ответ написан
Комментировать
@demint_vadim
В @discord.ui.button(label="Click On Me!", style=discord.ButtonStyle.primary)
добавь async def menu1(self, interaction: discord.Interaction, button: discord.ui.Button):
await interaction.response.send_message("You Clicked Me!")
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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