zapi-discord
Version:
Modified version of discord-embeds-pages-buttons
79 lines (77 loc) • 2.54 kB
JavaScript
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);
}
}
})
}