Advertisement
Clashi

Untitled

Aug 20th, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. if (command === "leaderboard") {
  2.         const reactions = {
  3.             PREVIOUS: "◀",
  4.             NEXT: "▶"
  5.            
  6.         };
  7.         let index = 0;
  8.         const length = 10,
  9.             leaderboard = lvl.all().sort((a, b) => b.data.xp - a.data.xp);
  10.  
  11.         const updateEmbed = (embed, index, length) => {
  12.             const tempLeaderboard = leaderboard.slice(index, index + length);
  13.             embed.color = 0x00ff00
  14.             embed.fields = [{
  15.                 name: "Rank User",
  16.                 value: tempLeaderboard.map(({ ID }) => `#${leaderboard.findIndex(v => v.ID === ID) + 1} <@${ID}>`).join("\n"),
  17.                 inline: true
  18.             }, {
  19.                 name: "Level (EXP)",
  20.                 value: tempLeaderboard.map(v => `${v.data.lvl} (${v.data.xp})`).join("\n"),
  21.                 inline: true
  22.             }];
  23.         };
  24.  
  25.         const embed = {};
  26.         updateEmbed(embed, index, length);
  27.         const msg = await message.channel.send({ embed });
  28.  
  29.         for (const entry of Object.values(reactions))
  30.             await msg.react(entry);
  31.  
  32.         const reactor = msg.createReactionCollector((r, u) => u.id === message.author.id && Object.values(reactions).includes(r.emoji.name), {
  33.             time: 60000
  34.         });
  35.  
  36.         reactor.on("collect", async r => {
  37.             r.remove(message.author).catch();
  38.             if (r.emoji.name === reactions.NEXT) {
  39.                 if (index > length) return;
  40.                 index += length;
  41.                 updateEmbed(embed, index, length);
  42.                 await msg.edit({
  43.                     embed
  44.                 }).catch(err => {
  45.                     message.reply("du bist zu schnell oder es ist keine Seite mehr vorhanden!")
  46.                 })
  47.             } else if (r.emoji.name === reactions.PREVIOUS) {
  48.                 if (index < length) return;
  49.                 index -= length;
  50.                 updateEmbed(embed, index, length);
  51.                 await msg.edit({
  52.                     embed
  53.                 }).catch(err => {
  54.                     message.reply("du bist zu schnell oder es ist keine Seite mehr vorhanden!")
  55.                 })
  56.             }
  57.         });
  58.  
  59.         reactor.on("end", async () => {
  60.             try {
  61.                 for(const reaction of msg.reactions.filter(r => r.me).values()) {
  62.                 await reaction.remove();
  63.                 }
  64.             } catch(e) {
  65.                 console.log(e);
  66.             }
  67.         })
  68.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement