@bot.command()
async def help(ctx):
embed=disnake.Embed(
title="Список команд",
colour=000000)
embed.add_field(
name="Ban",
value="Заблокировать пользователя"
)
embed.add_field(
name="Unban",
value="Разблокировать пользователя по его ID"
)
embed.add_field(
name="Kick",
value="Выгнать пользователя с сервера"
)
embed.add_field(
name="Mute",
value="Заглушить пользователя"
)
embed.add_field(
name="Unmute",
value="Разглушить пользователя"
)
embed.add_field(
name="Muted",
value="Посмотреть список заглушённых пользователей"
)
embed.add_field(
name="Tempmute",
value="Заглушить пользователя на определённое время"
)
embed.add_field(
name="Reverse",
value="Перевернуть текст"
)
embed.add_field(
name="Serverinfo",
value="Посмотреть информацию о сервере"
)
embed.add_field(
name="Userinfo",
value="Посмотреть информацию о пользователе"
)
embed.add_field(
name="Emojiinfo",
value="Посмотреть информацию о эмодзи"
)
embed.add_field(
name="Botinfo",
value="Посмотреть информацию о боте"
)
embed.add_field(
name="Info",
value="Посмотреть информацию о ForzaBot"
)
embed.add_field(
name="Ping",
value="Узнать пинг бота"
)
embed.add_field(
name="Say",
value="Сказать от имени бота"
)
embed.add_field(
name="Addrole",
value="Выдать роль пользователю"
)
embed.add_field(
name="Removerole",
value="Убрать роль с пользователя"
)
embed.add_field(
name="8Ball",
value="Задать вопрос шару"
)
embed.add_field(
name="Clear",
value="Очистить количество сообщений"
)
embed.add_field(
name="Random",
value="Отправка случайных чисел"
)
embed.add_field(
name="Roleinfo",
value="Посмотреть информацию о роли"
)
embed.add_field(
name="Channelinfo",
value="Посмотреть информацию о канале"
)
embed.add_field(
name="Temprole",
value="Выдать временную роль"
)
embed.add_field(
name="Ownerinfo",
value="Посмотреть информацию о владельце бота"
)
await ctx.send(embed=embed)
@bot.command()
async def help2(ctx):
embed=disnake.Embed(
title="Второй список команд",
colour=000000)
embed.add_field(
name="Lock",
value="Закрыть каналы"
)
embed.add_field(
name="Unlock",
value="Открыть доступ к каналам"
)
embed.add_field(
name="Info",
value="Показать подробную информацию о боте"
)
embed.add_field(
name="Quote",
value="Отправка случайной цитаты"
)
embed.add_field(
name="Avatar",
value="Показать аватар пользователя"
)
embed.add_field(
name="Voice_channelinfo",
value="Показать информацию о голосовом канале"
)
await ctx.send(embed=embed)
class Simple(disnake.ui.View):
"""
Embed Paginator.
Parameters:
----------
timeout: int
How long the Paginator should timeout in, after the last interaction. (In seconds) (Overrides default of 60)
PreviousButton: disnake.ui.Button
Overrides default previous button.
NextButton: disnake.ui.Button
Overrides default next button.
PageCounterStyle: disnake.ButtonStyle
Overrides default page counter style.
InitialPage: int
Page to start the pagination on.
"""
def __init__(self, *,
timeout: int = 60,
PreviousButton: disnake.ui.Button = disnake.ui.Button(emoji=disnake.PartialEmoji(name="\U000025c0")),
NextButton: disnake.ui.Button = disnake.ui.Button(emoji=disnake.PartialEmoji(name="\U000025b6")),
PageCounterStyle: disnake.ButtonStyle = disnake.ButtonStyle.grey,
InitialPage: int = 0) -> None:
self.PreviousButton = PreviousButton
self.NextButton = NextButton
self.PageCounterStyle = PageCounterStyle
self.InitialPage = InitialPage
self.pages = None
self.ctx = None
self.message = None
self.current_page = None
self.page_counter = None
self.total_page_count = None
super().__init__(timeout=timeout)
async def start(self, ctx: commands.Context, pages: list[disnake.Embed]):
self.pages = pages
self.total_page_count = len(pages)
self.ctx = ctx
self.current_page = self.InitialPage
self.PreviousButton.callback = self.previous_button_callback
self.NextButton.callback = self.next_button_callback
self.page_counter = SimplePaginatorPageCounter(style=self.PageCounterStyle,
TotalPages=self.total_page_count,
InitialPage=self.InitialPage)
self.add_item(self.PreviousButton)
self.add_item(self.page_counter)
self.add_item(self.NextButton)
self.message = await ctx.send(embed=self.pages[self.InitialPage], view=self)
async def previous(self):
if self.current_page == 0:
self.current_page = self.total_page_count - 1
else:
self.current_page -= 1
self.page_counter.label = f"{self.current_page + 1}/{self.total_page_count}"
await self.message.edit(embed=self.pages[self.current_page], view=self)
async def next(self):
if self.current_page == self.total_page_count - 1:
self.current_page = 0
else:
self.current_page += 1
self.page_counter.label = f"{self.current_page + 1}/{self.total_page_count}"
await self.message.edit(embed=self.pages[self.current_page], view=self)
async def next_button_callback(self, interaction: disnake.Interaction):
if interaction.user != self.ctx.author:
embed = disnake.Embed(description="You cannot control this pagination because you did not execute it.",
color=disnake.Colour.red())
return await interaction.response.send_message(embed=embed, ephemeral=True)
await interaction.response.defer()
await self.next()
async def previous_button_callback(self, interaction: disnake.Interaction):
if interaction.user != self.ctx.author:
embed = disnake.Embed(description="You cannot control this pagination because you did not execute it.",
color=disnake.Colour.red())
return await interaction.response.send_message(embed=embed, ephemeral=True)
await interaction.response.defer()
await self.previous()
class SimplePaginatorPageCounter(disnake.ui.Button):
def __init__(self, style: disnake.ButtonStyle, TotalPages, InitialPage):
super().__init__(label=f"{InitialPage + 1}/{TotalPages}", style=style, disabled=True)
embeds = [disnake.Embed(title="First embed"),
disnake.Embed(title="Second embed"),
disnake.Embed(title="Third embed")]
await Simple().start(ctx, pages=embeds)