discord-buttons-pages
Version:
Button pages for the discord-buttons package.
96 lines (95 loc) • 3.31 kB
JavaScript
exports.pages = async function(client, message, pages, timeout, disbut, style){
const Discord = require("discord.js");
require("discord-buttons");
//disbut(client);
//const easyButtons = require("dceasybuttons");
var timeForStart = Date.now();
if(pages.find(k=> k >= 5)){
console.error("Amount of pages must be 4 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)
var pageMovingButtons = new disbut.MessageActionRow()
.addComponent(pageMovingButtons2)
.addComponent(pageMovingButtons1)
for(var i = 0;i<pages.length;i++){
pages[i].push(pageMovingButtons);
}
var currentPage = 0;
if(message.content){
var msgContent = message.content;
} else{
var msgContent = undefined;
}
if(message.embeds[0]){
var embed = message.embeds[0];
} else{
var embed = null;
}
message.edit(msgContent, {components: pages[currentPage], embed: embed});
client.on("clickButton", async b=>{
if(Date.now() - timeForStart >= timeout)return;
if(b.message.id == message.id && b.message.author.id == message.author.id){
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;
}
}
if(b.id == "back_button" || b.id == "forward_button"){
if(message.content){
var msgContent = message.content;
} else{
var msgContent = undefined;
}
if(message.embeds[0]){
var embed = message.embeds[0];
} else{
var embed = null;
}
message.edit(msgContent, {components: pages[currentPage], embed: embed});
b.defer(true);
}
}
})
/*const filter = (button) => button.clicker.user.id === message.author.id;
const collector = message.createButtonCollector(filter, { time: timeout });
collector.on("collect", async b =>{
console.log("collected the button with id " + b.id)
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;
}
}
if(b.id == "back_button" || b.id == "forward_button"){
var array = [pages[currentPage]];
array.push(pageMovingButtons);
b.message.edit("weeewee", {components: array});
b.defer(true);
}
})*/
}