Haha-Yes/commands/fun/sayd.js

80 lines
4.4 KiB
JavaScript
Raw Normal View History

2018-11-30 02:33:00 +01:00
const { Command } = require('discord.js-commando');
const SelfReloadJSON = require('self-reload-json');
const blacklist = require('../../blacklist');
2018-12-01 02:48:18 +01:00
module.exports = class saydCommand extends Command {
2018-11-30 02:33:00 +01:00
constructor(client) {
super(client, {
2018-12-01 02:48:18 +01:00
name: 'sayd',
2018-12-01 02:48:46 +01:00
aliases: ['repeatd'],
2018-11-30 02:33:00 +01:00
group: 'fun',
2018-12-01 02:48:18 +01:00
memberName: 'sayd',
2018-12-02 03:33:36 +01:00
description: `Repeat the text you send and dellete it afterward ( can also use [verb] [noun] [adverb] [adjective] [activitie] [celebreties] [countrie] [diseases] [elements] [hobbie] [music] [prefixe] [pronoun] [state] [title] [unit] [member] [number] to replace it with something else )`,
args: [
2018-11-30 02:33:00 +01:00
{
key: 'text',
prompt: 'What do you want me to say',
type: 'string',
}
]
});
}
async run(message, { text }) {
let blacklistJson = new SelfReloadJSON('json/blacklist.json');
if(blacklistJson[message.author.id])
return blacklist(blacklistJson[message.author.id] , message)
// Load all the different files
const verb = require('../../dictionary/verbs.json')
2018-12-01 02:47:44 +01:00
const noun = require('../../dictionary/noun.json')
2018-11-30 02:33:00 +01:00
const adverb = require('../../dictionary/adjectives.json')
const adjective = require('../../dictionary/adverbs.json')
2018-12-01 02:47:44 +01:00
const activities = require('../../dictionary/activities.json')
const celebreties = require('../../dictionary/celebreties.json')
const countries = require('../../dictionary/countries.json')
const diseases = require('../../dictionary/diseases.json')
const elements = require('../../dictionary/elements.json')
const hobbies = require('../../dictionary/hobbies.json')
const music = require('../../dictionary/music.json')
const prefixes = require('../../dictionary/prefixes.json')
const pronouns = require('../../dictionary/pronouns.json')
const states = require('../../dictionary/states.json')
const titles = require('../../dictionary/titles.json')
const units = require('../../dictionary/units.json')
2018-11-30 02:33:00 +01:00
// Generate a random number
function randNumber(file) {
let Rand = Math.floor((Math.random() * file.length) + 1);
return Rand;
}
// Replace with a random word from the json
do {
text = text.replace(/\[verb\]/, verb[randNumber(verb)])
text = text.replace(/\[adverb\]/, adverb[randNumber(adverb)])
text = text.replace(/\[noun\]/, noun[randNumber(noun)])
text = text.replace(/\[adjective\]/, adjective[randNumber(adjective)])
2018-12-01 04:32:32 +01:00
text = text.replace(/\[activities\]/, activities[randNumber(activities)])
2018-12-01 02:50:47 +01:00
text = text.replace(/\[celebrities\]/, celebreties[randNumber(celebreties)])
2018-12-01 04:32:32 +01:00
text = text.replace(/\[countries\]/, countries[randNumber(countries)])
2018-12-01 02:47:44 +01:00
text = text.replace(/\[diseases\]/, diseases[randNumber(diseases)])
text = text.replace(/\[elements\]/, elements[randNumber(elements)])
2018-12-01 04:32:32 +01:00
text = text.replace(/\[hobbies\]/, hobbies[randNumber(hobbies)])
2018-12-01 02:47:44 +01:00
text = text.replace(/\[music\]/, music[randNumber(music)])
2018-12-01 04:32:32 +01:00
text = text.replace(/\[prefixes\]/, prefixes[randNumber(prefixes)])
2018-12-01 02:47:44 +01:00
text = text.replace(/\[pronoun\]/, pronouns[randNumber(pronouns)])
text = text.replace(/\[state\]/, states[randNumber(states)])
text = text.replace(/\[title\]/, titles[randNumber(titles)])
text = text.replace(/\[unit\]/, units[randNumber(units)])
2018-11-30 02:33:00 +01:00
text = text.replace(/\[member\]/, message.guild.members.random().user.username)
text = text.replace(/\[number\]/, Math.floor((Math.random() * 9) + 1))
2018-12-01 02:47:44 +01:00
// Verify if it replaced everything
2018-12-01 04:32:32 +01:00
} while( text.includes('[verb]') || text.includes('[adverb]') || text.includes('[noun]') || text.includes('[adjective]') || text.includes('[member]') || text.includes('[number]') || text.includes('[activities]') || text.includes('[celebrities]') || text.includes('[countries]') || text.includes('[diseases]') || text.includes('[elements]') || text.includes('[hobbies]') || text.includes('[music]') || text.includes('[prefixes]') || text.includes('[pronoun]') || text.includes('[state]') || text.includes('[title]') || text.includes('[unit]'))
2018-11-30 02:33:00 +01:00
// Send the final text
2018-12-02 03:33:36 +01:00
message.delete();
2018-11-30 02:33:00 +01:00
message.say(text);
}
};