Untitled
unknown
plain_text
3 years ago
4.7 kB
6
Indexable
class Menu(discord.ui.View): def __init__(self, ctx: commands.Context, embeds: List[discord.Embed]): super().__init__(timeout=5) self.embeds = embeds self.embed_count = 0 self.first_page.disabled = True self.prev_page.disabled = True @discord.ui.button(emoji="<:ffleft:1015484881272320142>", style=discord.ButtonStyle.secondary) async def first_page(self, interaction: discord.MessageInteraction, button: discord.ui.Button): self.embed_count = 0 embed = self.embeds[self.embed_count] embed.set_footer(text=f"Page 1 of {len(self.embeds)}") self.first_page.disabled = True self.prev_page.disabled = True self.next_page.disabled = False self.last_page.disabled = False await interaction.response.edit_message(embed=embed, view=self) @discord.ui.button(emoji="<:back:1015484972854939669>", style=discord.ButtonStyle.secondary) async def prev_page(self, interaction: discord.MessageInteraction, button: discord.ui.Button): self.embed_count -= 1 embed = self.embeds[self.embed_count] self.next_page.disabled = False self.last_page.disabled = False if self.embed_count == 0: self.first_page.disabled = True self.prev_page.disabled = True await interaction.response.edit_message(embed=embed, view=self) @discord.ui.button(emoji="<:next:1015484958845960313>", style=discord.ButtonStyle.secondary) async def next_page(self, interaction: discord.MessageInteraction, button: discord.ui.Button): self.embed_count += 1 embed = self.embeds[self.embed_count] self.first_page.disabled = False self.prev_page.disabled = False if self.embed_count == len(self.embeds) - 1: self.next_page.disabled = True self.last_page.disabled = True await interaction.response.edit_message(embed=embed, view=self) @discord.ui.button(emoji="<:ffright:1015484223941001269>", style=discord.ButtonStyle.secondary) async def last_page(self, interaction: discord.MessageInteraction, button: discord.ui.Button): self.embed_count = len(self.embeds) - 1 embed = self.embeds[self.embed_count] self.first_page.disabled = False self.prev_page.disabled = False self.next_page.disabled = True self.last_page.disabled = True await interaction.response.edit_message(embed=embed, view=self) async def on_timeout(self): self.first_page.disabled = True self.prev_page.disabled = True self.next_page.disabled = True self.last_page.disabled = True await ctx.response.edit_message(embed=embed, view=self) @bot.hybrid_command(description="shows the bot's help menu") async def help(ctx: commands.Context): embeds = [ discord.Embed(colour=col).add_field(name=f"{red} Description", value=f"> For more help with the bot join the discord support server and/or contact the bot owner, also to invite seraph to you server go down below for the links.", inline=False).add_field(name=f"{red} Links", value=f"> [Support](https://discord.gg/stylus) - [Bot Owner](https://discord.com/users/945116352283308052/) - [Invite Link](https://discord.com/api/oauth2/authorize?client_id=1012165822900355142&permissions=8&scope=applications.commands%20bot)", inline=False).set_footer(text=f"Home Menu: Entries - 1/3", icon_url=ctx.bot.user.avatar).set_thumbnail(url=ctx.bot.user.avatar), discord.Embed(colour=col).add_field(name=f"<:config:1015482892618575872>﹒Configuration Commands", value="> `antinuke*, antiraid*, antilink*, autorole*, welcome*, prefix*, filter*, goodbye*`", inline=False).add_field(name=f"<:info:1015481511065178143>﹒Information Commands", value="> `serverinfo, userinfo, inrole, ping, uptime, support, invite, botinfo, bots, membercount`", inline=False).set_thumbnail(url=ctx.bot.user.avatar).set_footer(text=f"Configuration & Information: Entries - 2/3", icon_url=ctx.bot.user.avatar), discord.Embed(colour=col).add_field(name=f"<:utility:1015481561463914686>﹒Utility Commands", value="> `afk, avatar, servericon, serverbanner, urban, poll, spotify, firstmessage, emoji^, snipe, editsnipe, invites`", inline=False).add_field(name=f"<:moderation:1015483640685277215>﹒Moderation Commands", value="> `no commands right now`", inline=False).set_footer(text=f"Utility & Moderation: Entries - 3/3", icon_url=ctx.bot.user.avatar).set_thumbnail(url=ctx.bot.user.avatar), ] await ctx.send(embed=embeds[0], view=Menu(embeds))
Editor is loading...