Clashi icon

Untitled

Clashi | PRO | 08/20/19 03:05:39 PM UTC | 0 ⭐ | 314 👁️ | Never ⏰ | []
JavaScript |

2.45 KB

|

None

|

0 👍

/

0 👎

if (command === "leaderboard") {
        const reactions = {
            PREVIOUS: "◀",
            NEXT: "▶"
            
        };
        let index = 0;
        const length = 10,
            leaderboard = lvl.all().sort((a, b) => b.data.xp - a.data.xp);
 
        const updateEmbed = (embed, index, length) => {
            const tempLeaderboard = leaderboard.slice(index, index + length);
            embed.color = 0x00ff00
            embed.fields = [{
                name: "Rank User",
                value: tempLeaderboard.map(({ ID }) => `#${leaderboard.findIndex(v => v.ID === ID) + 1} <@${ID}>`).join("\n"),
                inline: true
            }, {
                name: "Level (EXP)",
                value: tempLeaderboard.map(v => `${v.data.lvl} (${v.data.xp})`).join("\n"),
                inline: true
            }];
        };
 
        const embed = {};
        updateEmbed(embed, index, length);
        const msg = await message.channel.send({ embed });
 
        for (const entry of Object.values(reactions))
            await msg.react(entry);
 
        const reactor = msg.createReactionCollector((r, u) => u.id === message.author.id && Object.values(reactions).includes(r.emoji.name), {
            time: 60000
        });
 
        reactor.on("collect", async r => {
            r.remove(message.author).catch();
            if (r.emoji.name === reactions.NEXT) {
                if (index > length) return;
                index += length;
                updateEmbed(embed, index, length);
                await msg.edit({
                    embed
                }).catch(err => {
                    message.reply("du bist zu schnell oder es ist keine Seite mehr vorhanden!")
                })
            } else if (r.emoji.name === reactions.PREVIOUS) {
                if (index < length) return;
                index -= length;
                updateEmbed(embed, index, length);
                await msg.edit({
                    embed
                }).catch(err => {
                    message.reply("du bist zu schnell oder es ist keine Seite mehr vorhanden!")
                })
            }
        });
 
        reactor.on("end", async () => {
            try {
                for(const reaction of msg.reactions.filter(r => r.me).values()) {
                await reaction.remove();
                }
            } catch(e) {
                console.log(e);
            }
        })
    }

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎