const { Client, CommandInteraction, MessageEmbed, Role, } = require('discord.js'); const OrganizerList = require('../../Schemas/OrganizerList'); module.exports = { name: 'followers', description: 'Will Show Total Followers Of An Organizer', options: [ { name: 'user', description: 'The Organizer That You Want To See His Followers', type: 'USER', required: false, }, ], /** * * @param {Client} client * @param {CommandInteraction} interaction * @param {String[]} args */ run: async (client, interaction, args) => { const Embed = new MessageEmbed(); const user = interaction.options.getUser('user'); await interaction.deferReply({ ephemeral: true }); let OrglistGlob = await OrganizerList.find({ guildID: interaction.guild.id, }); if (user) { const Organizer = await interaction.guild.members.fetch(user.id); const OrganizerEmoji = Array.from(Organizer.nickname)[0]; const Emoji = interaction.guild.roles.cache.find( (role) => role.name.includes('Badge') && role.name.includes(`${OrganizerEmoji}`) ); if (Emoji) { const Followers = Emoji.members.size; const Name = Organizer.nickname || Organizer.user.username; Embed.setColor('RANDOM'); Embed.setTitle(`${Name}'s Followers`); Embed.setDescription(`Current Followers: ${Followers}`); interaction.followUp({ embeds: [Embed] }); } else { Embed.setColor('RANDOM'); Embed.setDescription('There is no data for that user.'); interaction.followUp({ embeds: [Embed] }); } } else { const Roles = await interaction.guild.roles.cache .filter((r) => r.name.includes('Badge')) .sort((a, b) => b.members.size - a.members.size); Embed.setColor('RANDOM'); Embed.setTitle('TOP Followed Organizers'); Embed.setDescription( `**${Roles.map( (role) => `\n${role.name.slice(0, role.name.indexOf(' '))} : ${ role.members.size }` ).slice(0, 10)}**` ); interaction.followUp({ embeds: [Embed] }); } }, };