
Security News
Feross on TBPN: How North Korea Hijacked Axios
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.
djs-button-pages
Advanced tools
A simple yet powerful module for implementing customizable embed pages with buttons in Discord chat. Works only with Discord.js.
▶️ Works with Discord.JS. Supports v14. Legacy versions support v13 and v14.
▶️ This packages supports creation of custom buttons with your own scripts through a simple API.
▶️ If you want some pre-built buttons consider using @djs-button-pages/presets. They contain basic ones. But you can contribute some of your own to this package if you want and they may be used in other projects.
npm install djs-button-pages
yarn add djs-button-pages
pnpm install djs-button-pages
//Imports.
const { Client, EmbedBuilder, ButtonStyle } = require("discord.js");
const { PaginationWrapper } = require("djs-button-pages");
//Pre-made buttons.
const { NextPageButton, PreviousPageButton } = require('@djs-button-pages/presets');
//Array of embeds for pagination.
const embeds =
[
new EmbedBuilder().setColor("Aqua").setTitle("Test!").setDescription("Whoosh! Your first page!"),
new EmbedBuilder().setColor("Blurple").setTitle("Test!").setDescription("Wow! It's a second one!"),
new EmbedBuilder().setColor("DarkAqua").setTitle("Test!").setDescription("Unbelivable! Third page is available to be bought for 20$!"),
new EmbedBuilder().setColor("DarkGold").setTitle("Test!").setDescription("Not possible! This is my fourth page!"),
new EmbedBuilder().setColor("Gold").setTitle("Test!").setDescription("Not probable! Special fifth page!"),
new EmbedBuilder().setColor("DarkButNotBlack").setTitle("Test!").setDescription("Wow! Another page..."),
new EmbedBuilder().setColor("White").setTitle("Test!").setDescription("Don't tell me that it is page number seven!"),
new EmbedBuilder().setColor("Red").setTitle("Oh, wow!").setDescription("Looks like it is the last page("),
];
//Array of buttons for pagination.
const buttons =
[
new PreviousPageButton({custom_id: "prev_page", emoji: "◀", style: ButtonStyle.Secondary}),
new NextPageButton({custom_id: "next_page", emoji: "▶", style: ButtonStyle.Secondary}),
];
//No intents needed.
const client = new Client({intents: []});
//Ready!
client.once("ready", async () => {
console.log("Ready!");
//Fetch guild that is needed.
const guild = await client.guilds.fetch("yourGuildId");
//Add command.
guild.commands.create({name: "pages", description: "Testing DJS-Button-Pages!"});
});
//Catch command.
client.on("interactionCreate", async (interaction) => {
if (interaction.isCommand() && interaction.commandName === "pages")
{
//Setup pagination.
const pagination = new PaginationWrapper()
.setButtons(buttons)
.setEmbeds(embeds)
.setTime(60000);
//Send it as a reply to interaction.
await pagination.interactionReply(interaction);
};
});
//Login.
client.login("yourToken");
For bug reporting look for GitHub Issues.
Or you can DM me in Discord: moony#6815.
Copyright © 2022 Danila Kononov (nickname: moony). All rights reserved.
Licensed under the Apache License, Version 2.0.
FAQs
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket CEO Feross Aboukhadijeh breaks down how North Korea hijacked Axios and what it means for the future of software supply chain security.

Security News
OpenSSF has issued a high-severity advisory warning open source developers of an active Slack-based campaign using impersonation to deliver malware.

Research
/Security News
Malicious packages published to npm, PyPI, Go Modules, crates.io, and Packagist impersonate developer tooling to fetch staged malware, steal credentials and wallets, and enable remote access.