06b746f0dc
nsfw command with buttons
148 lines
No EOL
4.4 KiB
JavaScript
148 lines
No EOL
4.4 KiB
JavaScript
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],
|
|
})
|
|
}
|
|
})
|
|
}
|
|
|
|
|
|
|
|
}
|
|
} |