from discord.ext import commands
from dpy_button_utils import ButtonPaginator
bot = commands.Bot(command_prefix="!", help_command=None)
@bot.command()
async def page_plain_text(ctx: commands.Context):
paginator = ButtonPaginator(bot, messages=[f"Option {x}" for x in range(10)], timeout=10)
await paginator.run(ctx)
@bot.command()
async def page_embeds(ctx: commands.Context):
paginator = ButtonPaginator(bot, embeds=[
discord.Embed(title="bonk", description=f"Option {x}") for x in range(10)
])
await paginator.run(ctx)
bot.run("TOKEN")
After the paginator is done, you can access the page it left off on with paginator.counter
.
from discord.ext import commands
from dpy_button_utils.confirmation import ButtonConfirmation
bot = commands.Bot(command_prefix="!", help_command=None)
@bot.command()
async def confirm(ctx: commands.Context):
if await ButtonConfirmation(ctx, "Do the bad thing?", destructive=True, confirm="YES", cancel="no pls").run():
await ctx.send("yes :D")
else:
await ctx.send(":(")
@bot.command()
async def confirm2(ctx: commands.Context):
if await ButtonConfirmation(ctx, "Do the thing?", destructive=False, confirm="YES", cancel="no pls").run():
await ctx.send("yes :D")
else:
await ctx.send(":(")
bot.run("TOKEN")
ButtonConfirmation
takes a few different keyword arguments, after the Context
and message
.
destructive
- can either beTrue
orFalse
.True
causes a red confirm button, andFalse
causes a blue onetimeout
- Time in seconds for the confirmation to auto-cancelconfirm
- Confirmation button labelcancel
- Cancel button labelconfirm_message
- Text to change to on a confirmationcancel_message
- Text to change to on a cancel
The defaults are:
destructive
- Falsetimeout
- 60confirm
- Confirmcancel
- Cancelconfirm_message
-None
- this appendsConfirmed
to the original messagecancel_message
-None
- this appendsCancelled
to the original message