| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- 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;
- };
|