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`
 | |
| //         );        
 | |
| //     }
 | |
| // });
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| };
 | |
| 
 | |
| 
 | |
| 
 |