BasicCustomButton.js 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const {MessageEmbed, Client, MessageButton, Intents} = require('discord.js');
  2. const {ChannelPagination, NextPageButton, PreviousPageButton, StopButton, FirstPageButton, LastPageButton, CustomButton} = require("djs-button-pages");
  3. //Array of embeds for pagination.
  4. const embeds =
  5. [
  6. new MessageEmbed().setColor("RANDOM").setDescription("First page!"),
  7. new MessageEmbed().setColor("RANDOM").setDescription("Wow! It's second page!"),
  8. new MessageEmbed().setColor("RANDOM").setDescription("Unbelivable! Third class page!"),
  9. new MessageEmbed().setColor("RANDOM").setDescription("Not possible! Fourth page!"),
  10. new MessageEmbed().setColor("RANDOM").setDescription("Not probable! Special fifth page!"),
  11. new MessageEmbed().setColor("RANDOM").setDescription("Progress! It's page with number six that is stored with number five!"),
  12. new MessageEmbed().setColor("RANDOM").setDescription("You're feeling with determination because of the seven page!"),
  13. new MessageEmbed().setColor("RANDOM").setDescription("You shall not pass! It's the last and the latest page!"),
  14. ]
  15. //Array of buttons for pagination.
  16. const buttons =
  17. [
  18. new FirstPageButton(new MessageButton().setCustomId("first").setLabel("First").setStyle("SUCCESS")),
  19. new PreviousPageButton(new MessageButton().setCustomId("prev").setLabel("Previous").setStyle("PRIMARY")),
  20. new StopButton(new MessageButton().setCustomId("stop").setLabel("Stop").setStyle("DANGER")),
  21. new NextPageButton(new MessageButton().setCustomId("next").setLabel("Next").setStyle("PRIMARY")),
  22. //ALSO CAN BE: new NextPageButton().setStyle(new MessageButton().setCustomId("next").setLabel("Next").setStyle("PRIMARY"))
  23. new LastPageButton(new MessageButton().setCustomId("last").setLabel("Last").setStyle("SUCCESS")),
  24. new CustomButton(new MessageButton().setCustomId("five").setLabel("Page №5").setStyle("SECONDARY"))
  25. .setAction(4) //Sets button action to: "GO TO PAGE NUMBER FOUR" (Pages are zero-based. First page has number zero and so on.)
  26. .setDisableWhen(4), //Disables button when the page number is equals to four.
  27. ]
  28. //Client flags. These are for guilds. For DMs needs `Intents.FLAGS.DIRECT_MESSAGES`.
  29. const client = new Client({intents: [Intents.FLAGS.GUILDS, Intents.FLAGS.GUILD_MESSAGES]});
  30. //Replace YOUR TOKEN with the token from Discord Developer Portal.
  31. client.login("YOUR TOKEN");
  32. //Ready!
  33. client.once("ready", async () => {
  34. console.log("ready");
  35. });
  36. //On message.
  37. client.on("messageCreate", async (message) => {
  38. if (message.content === "!pages")
  39. {
  40. const pagination = await new ChannelPagination() //Create pagination.
  41. .setButtons(buttons) //Pass buttons.
  42. .setEmbeds(embeds) //Pass embeds.
  43. .setTime(60000) //Set life-time to 60000.
  44. .send(message.channel); //Send.
  45. };
  46. });