2018-09-18 15:35:06 +02:00
const { Command } = require ( 'discord.js-commando' ) ;
2018-11-28 01:35:26 +01:00
const SelfReloadJSON = require ( 'self-reload-json' ) ;
2018-12-25 19:17:07 +01:00
const blacklist = require ( '../../json/blacklist.json' ) ;
2018-12-05 00:52:21 +01:00
2018-09-18 15:35:06 +02:00
module . exports = class sayCommand extends Command {
constructor ( client ) {
super ( client , {
name : 'say' ,
2018-11-28 20:27:29 +01:00
aliases : [ 'repeat' ] ,
2018-09-18 15:35:06 +02:00
group : 'fun' ,
memberName : 'say' ,
2018-12-04 16:29:20 +01:00
description : ` Repeat the text you send ( can also use [verb] [noun] [adverbs] [adjective] [activities] [celebrities] [countries] [diseases] [elements] [hobbies] [music] [prefixes] [pronoun] [state] [title] [unit] [member] [number] to replace it with something else ) ` ,
2018-09-18 15:35:06 +02:00
args : [
{
key : 'text' ,
prompt : 'What do you want me to say' ,
type : 'string' ,
}
]
} ) ;
}
async run ( message , { text } ) {
2018-12-06 23:01:40 +01:00
let blacklistJson = new SelfReloadJSON ( './json/blacklist.json' ) ;
2018-11-28 01:35:26 +01:00
if ( blacklistJson [ message . author . id ] )
return blacklist ( blacklistJson [ message . author . id ] , message )
2018-11-28 20:27:29 +01:00
// Load all the different files
const verb = require ( '../../dictionary/verbs.json' )
2018-12-01 02:41:38 +01:00
const noun = require ( '../../dictionary/noun.json' )
2018-12-03 03:45:03 +01:00
const adverbs = require ( '../../dictionary/adjectives.json' )
2018-12-03 03:50:33 +01:00
const adjective = require ( '../../dictionary/adverbs.json' )
2018-12-01 02:41:38 +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-28 20:27:29 +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 ) ] )
2018-12-03 03:45:03 +01:00
text = text . replace ( /\[adverbs\]/ , adverbs [ randNumber ( adverbs ) ] )
2018-11-28 20:27:29 +01:00
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:41:38 +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:41:38 +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:41:38 +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-28 20:27:29 +01:00
text = text . replace ( /\[member\]/ , message . guild . members . random ( ) . user . username )
2018-11-28 21:53:11 +01:00
text = text . replace ( /\[number\]/ , Math . floor ( ( Math . random ( ) * 9 ) + 1 ) )
2018-12-01 02:41:38 +01:00
// Verify if it replaced everything
2018-12-03 03:45:03 +01:00
} while ( text . includes ( '[verb]' ) || text . includes ( '[adverbs]' ) || 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-28 20:27:29 +01:00
// Send the final text
message . say ( text ) ;
2018-09-18 15:35:06 +02:00
}
} ;