dellosmusic
Version:
Dellos Music Bot - Discord Music Bot
50 lines (48 loc) • 1.37 kB
JavaScript
module.exports = async (
msg,
pages,
client,
emojiList = ["◀️", "⏹️", "▶️"],
timeout = 120000
) => {
if (!msg && !msg.channel) throw new Error("Channel is inaccessible.");
if (!pages) throw new Error("Pages are not given.");
let page = 0;
const curPage = await msg.channel.send(
pages[page].setFooter(
`Page ${page + 1}/${pages.length} `,
msg.author.displayAvatarURL({ dynamic: true })
)
);
for (const emoji of emojiList) await curPage.react(emoji);
const reactionCollector = curPage.createReactionCollector(
(reaction, user) => emojiList.includes(reaction.emoji.name) && !user.bot,
{ time: timeout }
);
reactionCollector.on("collect", (reaction) => {
reaction.users.remove(msg.author);
switch (reaction.emoji.name) {
case emojiList[0]:
page = page > 0 ? --page : pages.length - 1;
break;
case emojiList[1]:
curPage.reactions.removeAll();
break;
case emojiList[2]:
page = page + 1 < pages.length ? ++page : 0;
break;
}
curPage.edit(
pages[page].setFooter(
`Page ${page + 1}/${pages.length} `,
msg.author.displayAvatarURL({ dynamic: true })
)
);
});
reactionCollector.on("end", () => {
if (!curPage.deleted) {
curPage.reactions.removeAll();
}
});
return curPage;
};