const fetch = require('node-fetch') const { MessageActionRow, MessageButton, MessageEmbed, CommandInteraction } = require('discord.js'); module.exports = { name : 'nsfw', description: "nsfw command", /** * @param {Client} client * @param {CommandInteraction} interaction * @param {String[]} args */ run : async(client, interaction) => { async function embed() { if(!interaction.channel.nsfw){ const embed = new MessageEmbed() .setTitle(`AYO Calm Yo Cheeks`) .setDescription('This command only works in NSFW Channels!') .setImage('https://media.discordapp.net/attachments/851761493815853060/893777701599584266/warning.gif') .setColor("#02023a") interaction.followUp({ embeds: [embed]}) return; } let subreddits = [ 'GoneWild', 'WorkGoneWild', 'GoneWild30Plus', 'hentai', 'HentaiAnime', 'nekogirls', 'ass', 'BestBooties', 'BootyGIFs', 'booty_queens', 'BlowJob', 'blowjobs', 'blowjobgifs', 'OralSex', 'boobs', 'GrabHerTitties', 'titfuck', 'milf', 'OnlyHotMilfs', 'realmoms', 'thighs', 'PerfectThighs', 'thickthighs' ] let reddit = subreddits[Math.round(Math.random() * (subreddits.length - 1))]; let embed1 = null await fetch(`https://meme-api.herokuapp.com/gimme/${reddit}`).then(res => res.json().then(url => { embed1 = new MessageEmbed() .setAuthor( interaction.user.tag, interaction.user.displayAvatarURL({ dynamic: true }) ) .setTitle(`${url.title}`) .setImage(`${url.url}`) .setTimestamp() .setColor("RED") .setFooter(`${url.ups} 👍`) })) return embed1 } const row = new MessageActionRow() .addComponents( new MessageButton() .setCustomId('reload') .setLabel('Reload') .setStyle('SUCCESS'), ) const disabled = new MessageActionRow() .addComponents( new MessageButton() .setCustomId('reload') .setLabel('Reload Meme') .setStyle('SECONDARY') .setDisabled(true) ) let m = await interaction.followUp({ embeds: [await embed()], components: [row] }) const collector = m.createMessageComponentCollector({ componentType: 'BUTTON', time: 120000, }); collector.on('collect', async i => { if (i.user.id === interaction.user.id) { i.deferUpdate() await update(m) collector.stop() } else { i.reply({ content: `These buttons aren't for you!`, ephemeral: true }); } }) collector.on('end', (mes, r) => { if (r == 'time') { m.edit({ components: [disabled], }) } }) async function update(m) { m.edit({ embeds: [await embed()] }).catch(e => console.log(e.requestData.json.embeds)) const collector = m.createMessageComponentCollector({ componentType: 'BUTTON', time: 120000, }); collector.on('collect', async i => { if (i.user.id === interaction.user.id) { i.deferUpdate() await update(m) collector.stop() } else { i.reply({ content: `These buttons aren't for you!`, ephemeral: true }); } }) collector.on('end', (mes, r) => { if (r == 'time') { m.edit({ components: [disabled], }) } }) } } }