forked from wmantly/mc-bot-town
166 lines
4.8 KiB
JavaScript
166 lines
4.8 KiB
JavaScript
'use strict';
|
|
|
|
const axios = require('axios');
|
|
const matrixQuotes = require('../../model/matrix_quotes');
|
|
|
|
let ballOptions = [
|
|
"It is certain.",
|
|
"It is decidedly so.",
|
|
"Without a doubt.",
|
|
"Yes definitely.",
|
|
"You may rely on it.",
|
|
"As I see it, yes.",
|
|
"Most likely.",
|
|
"Outlook good.",
|
|
"The Core gods will it to be!",
|
|
"Yes.",
|
|
"Signs point to yes.",
|
|
"Reply hazy, try again.",
|
|
"You should ask Ethan",
|
|
"Ask again later.",
|
|
"Better not tell you now.",
|
|
"Cannot predict now.",
|
|
"Concentrate and ask again.",
|
|
"You will find the answers during you journey to The Core!",
|
|
"Don't count on it.",
|
|
"My reply is no.",
|
|
"My sources say no.",
|
|
"Outlook not so good.",
|
|
"Very doubtful.",
|
|
];
|
|
|
|
|
|
module.exports = {
|
|
'8ball':{
|
|
desc: `magic 8 Ball pick.`,
|
|
async function(from){
|
|
await this.say(
|
|
`> The 8 Ball says...`,
|
|
`> ${ballOptions[Math.floor(Math.random()*ballOptions.length)]}`
|
|
);
|
|
}
|
|
},
|
|
"joke": {
|
|
desc: "Tells a random joke.",
|
|
async function(from){
|
|
await this.say('> Let me think...');
|
|
let res = await axios.get('https://v2.jokeapi.dev/joke/Any?type=single')
|
|
await this.say(...res.data.joke.split('\n').map(e => `> ${e}`));
|
|
},
|
|
},
|
|
"quote": {
|
|
desc: 'Say an inspirational quote.',
|
|
async function(from){
|
|
await this.say('> Right away!');
|
|
let res = await axios.get('https://zenquotes.io/api/random')
|
|
await this.say(`> ${res.data[0].q} -- ${res.data[0].a}`);
|
|
}
|
|
},
|
|
'west-quote': {
|
|
desc: `Say a random Kanye West quote.`,
|
|
async function(from) {
|
|
await this.say('> And here we go!');
|
|
let res = await axios.get('https://api.kanye.rest/');
|
|
await this.say(`> ${res.data.quote} -- Kanye West`);
|
|
}
|
|
},
|
|
"fact": {
|
|
desc: `Say a random fact.`,
|
|
async function(from){
|
|
await this.say('> The internet says this is true?');
|
|
let res = await axios.get('https://uselessfacts.jsph.pl/random.json?language=en')
|
|
await this.say(
|
|
`> ${res.data.text}`,
|
|
`> source: ${res.data.source}`
|
|
);
|
|
}
|
|
},
|
|
"advice": {
|
|
desc: `Say some random advice.`,
|
|
async function(from){
|
|
await this.say('> Try this:');
|
|
let res = await axios.get('https://api.adviceslip.com/advice');
|
|
await this.say(`> ${res.data.slip.advice}`);
|
|
}
|
|
},
|
|
// 'idea': {
|
|
// desc: `Say a random start up idea.`,
|
|
// async function(from){
|
|
// await this.say('> How about?');
|
|
// let res = await axios.get('https://itsthisforthis.com/api.php?text')
|
|
// await this.say(`> ${res.data}`);
|
|
// }
|
|
// },
|
|
'discord': {
|
|
desc: `Say the CJ discord invite link.`,
|
|
async function(from) {
|
|
await this.say('https://discord.gg/hyby9m8');
|
|
}
|
|
},
|
|
'dice': {
|
|
desc: `Roll a die. You can state the max size on the dice. Default is 6.`,
|
|
async function(from, size){
|
|
console.log('dice', size)
|
|
|
|
size = size || 6;
|
|
if(!Number.isInteger(Number(size))){
|
|
this.whisper(from, `${size} is not a whole number...`)
|
|
return ;
|
|
}
|
|
await this.say(
|
|
`> Rolling a dice for ${from}`,
|
|
`> ${Math.floor(Math.random()*size)+1}`
|
|
);
|
|
}
|
|
},
|
|
'flip': {
|
|
desc: `Flip a coin.`,
|
|
async function(from){
|
|
await this.say(
|
|
`> Flipping a coin for ${from}`,
|
|
`> ${!!(Math.floor(Math.random() * (3000 - 1500) + 1500)%2) ? "Heads" : "Tails"}`
|
|
);
|
|
}
|
|
},
|
|
'random-player': {
|
|
desc: `Return a random online player.`,
|
|
async function(from){
|
|
let players = this.getPlayers()
|
|
|
|
delete players[this.bot.entity.username]
|
|
|
|
let keys = Object.keys(players);
|
|
let player = players[keys[ keys.length * Math.random() << 0]];
|
|
|
|
await this.say(`> I pick [${player.lvl}]${player.username}`)
|
|
}
|
|
},
|
|
'matrix-quote': {
|
|
desc: `Random Matrix quote.`,
|
|
async function(from){
|
|
await this.say(
|
|
`${from} are you ready?`,
|
|
`> ${matrixQuotes[Math.floor(Math.random()*matrixQuotes.length)]}`);
|
|
}
|
|
}
|
|
// bot.addCommand('pink-quote', {
|
|
// desc: `Say a random Pink Floyd quote.`,
|
|
// async function(from) {
|
|
// await this.say(
|
|
// `> Rock 'n' Roll`,
|
|
// `> ${pink_quotes[Math.floor(Math.random()*pink_quotes.length)]} -- Pink Floyd`
|
|
// );
|
|
// }
|
|
// });
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|