UNPKG

zapi-discord

Version:

Modified version of discord-embeds-pages-buttons

79 lines (77 loc) 2.54 kB
exports.pages = async function(client, message, pages, timeout, disbut, style){ const Discord = require("discord.js"); require("discord-buttons"); var timeForStart = Date.now(); if(pages.length >= 50){ console.error("Amount of pages must be 50 or below!"); return; } const pageMovingButtons1 = new disbut.MessageButton() .setID(`forward_button`) .setLabel("") .setEmoji("➡️") .setStyle(style) const pageMovingButtons2 = new disbut.MessageButton() .setID(`back_button`) .setLabel("") .setEmoji("⬅️") .setStyle(style) const pageMovingButtons3 = new disbut.MessageButton() .setID(`first_button`) .setLabel("") .setEmoji("⏪") .setStyle(style) const pageMovingButtons4 = new disbut.MessageButton() .setID(`last_button`) .setLabel("") .setEmoji("⏩") .setStyle(style) var pageMovingButtons = new disbut.MessageActionRow() .addComponent(pageMovingButtons3) .addComponent(pageMovingButtons2) .addComponent(pageMovingButtons1) .addComponent(pageMovingButtons4) for(var i = 0;i<pages.length;i++){ pages[i].push(pageMovingButtons); } var currentPage = 0; message.edit(message.content, {components: pages[currentPage]}); client.on("clickButton", async b=>{ console.log("wee") if(Date.now() - timeForStart >= timeout)return; if(b.message.id == message.id && b.message.author.id == message.author.id){ if(b.id == "first_button"){ if(currentPage - 50 < 0){ currentPage = pages.length - 1 } else{ currentPage -= 50; } }else if(b.id == "back_button"){ if(currentPage - 1 < 0){ currentPage = pages.length - 1 } else{ currentPage -= 1; } } else if(b.id == "forward_button"){ if(currentPage + 1 == pages.length){ currentPage = 0; } else{ currentPage += 1; } } else if(b.id == "last_button"){ if(currentPage + 50 == pages.length){ currentPage = 0; } else { currentPage += 50; } console.log("woo") } if(b.id == "first_button" || b.id == "back_button" || b.id == "forward_button" || b.id == "last_button"){ message.edit(message.content, {components: pages[currentPage]}); b.defer(true); } } }) }