Для создания интерактивных кнопок на Discord с использованием библиотеки discord.py вы можете использовать модуль
discord_components
Этот модуль позволяет создавать различные компоненты, в том числе кнопки, выпадающие списки и поля ввода.
Примерно так:
import discord
from discord.ext import commands
from discord_components import DiscordComponents, Button, ButtonStyle
client = commands.Bot(command_prefix='!')
DiscordComponents(client) # инициализация библиотеки
@client.command()
async def paginate(ctx):
pages = ['Page 1', 'Page 2', 'Page 3']
current_page = 0
message = await ctx.send(pages[current_page])
# функция для изменения сообщения и обновления кнопок
async def update_page(page):
await message.edit(content=pages[page])
await message.clear_reactions()
if page != 0:
await message.add_reaction('⬅️')
if page != len(pages) - 1:
await message.add_reaction('➡️')
# функция обработки нажатия кнопок
async def button_handler(interaction):
nonlocal current_page
if interaction.component.label == '⬅️':
current_page -= 1
else:
current_page += 1
await update_page(current_page)
# создание кнопок
buttons = [
Button(style=ButtonStyle.grey, label='⬅️'),
Button(style=ButtonStyle.grey, label='➡️')
]
# добавление кнопок к сообщению
await message.edit(components=[buttons])
# ожидание нажатия кнопок
while True:
interaction = await client.wait_for('button_click')
if interaction.message == message:
await button_handler(interaction)
client.run('TOKEN')