gaber-elsayed

top invites

May 28th, 2020
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 KB | None | 0 0
  1. const { RichEmbed } = require("discord.js");
  2.  
  3. module.exports.run = async (bot, message) => {
  4. if (!message.guild.member(bot.user).hasPermission('SEND_MESSAGES')) return;
  5.  
  6. if (!message.guild.member(bot.user).hasPermission('MANAGE_GUILD')) return message.channel.send("Je n'ai pas les permissions de voir les inviations !")
  7.  
  8. let invites = await message.guild.fetchInvites().catch(error => {
  9. return message.channel.send('Désole, je ne peux pas voir les invitations');
  10. });
  11.  
  12. invites = invites.array();
  13.  
  14. let possibleinvites = [];
  15. invites.forEach(function(invites) {
  16. possibleinvites.push(`\`${invites.inviter.username}\` a invité **${invites.uses}** personnes !`)
  17. })
  18.  
  19. let pages = [];
  20. for (let i = 0; i < possibleinvites.length;) {
  21. if ((i + 9) > possibleinvites.length) {
  22. pages.push(possibleinvites.slice(i, (i + 9) - ((i + 9) - possibleinvites.length)).join("\n"));
  23. break;
  24. } else {
  25. pages.push(possibleinvites.slice(i, i + 9).join("\n"));
  26. i += 9
  27. };
  28. }
  29. let page = 1;
  30.  
  31. const embed = new RichEmbed()
  32. .setTitle(`Meilleurs invitations`)
  33. .setColor('RANDOM')
  34. .setFooter(`Page: ${page}/${pages.length}`)
  35. .setDescription(pages[page-1])
  36. .setTimestamp();
  37. message.channel.send(embed).then(msg => {
  38. if (!message.guild.member(bot.user).hasPermission('ADD_REACTIONS')) return;
  39.  
  40. msg.react("◀").then(() => {
  41. msg.react("▶")
  42.  
  43. const backF = (reaction, user) => reaction.emoji.name === '◀' && user.id === message.author.id;
  44. const ForF = (reaction, user) => reaction.emoji.name === '▶' && user.id === message.author.id;
  45.  
  46. const back = msg.createReactionCollector(backF, { time: 180000 });
  47. const For = msg.createReactionCollector(ForF, { time: 180000 });
  48.  
  49. back.on('collect', async r => {
  50. r.remove(message.author.id)
  51. if (page === 1) return;
  52. page--;
  53. embed.setDescription(pages[page-1]);
  54. embed.setFooter(`Page: ${page}/${pages.length}`);
  55. msg.edit(embed);
  56. });
  57.  
  58. For.on('collect', async r => {
  59. r.remove(message.author.id)
  60. if (page === pages.length) return;
  61. page++;
  62. embed.setDescription(pages[page-1]);
  63. embed.setFooter(`Page: ${page}/${pages.length}`);
  64. msg.edit(embed);
  65. });
  66. });
  67. });
  68. }
  69. exports.help = {
  70. name: "topinvites"
  71. }
Advertisement
Add Comment
Please, Sign In to add comment