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
0 B
|👍
/👎