From b08f5770784e4d3e50bec4469168ba4fdfe51b1d Mon Sep 17 00:00:00 2001 From: Talor Berthelson Date: Mon, 19 Jul 2021 22:41:52 -0400 Subject: [PATCH] Commit --- .gitignore | 2 + parkscord.js | 227 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 .gitignore create mode 100644 parkscord.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..af392e0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +config.json diff --git a/parkscord.js b/parkscord.js new file mode 100644 index 0000000..7dd2753 --- /dev/null +++ b/parkscord.js @@ -0,0 +1,227 @@ +// include the Themeparks and Discord library +const ThemeParks = require("themeparks"); +const Discord = require('discord.js'); +const client = new Discord.Client(); +const config = require('./config.json'); +const prefix = config.prefix; + + +const sleep = (waitTimeInMs) => new Promise(resolve => setTimeout(resolve, waitTimeInMs)); + + +// Parks +const Parks = {}; +for (const park in ThemeParks.Parks) { + Parks[park] = new ThemeParks.Parks[park](); +} +//const KI = new ThemeParks.Parks.KingsIsland(); +//const CP = new ThemeParks.Parks.CedarPoint(); +//const DAK = new ThemeParks.Parks.WaltDisneyWorldAnimalKingdom; +//const SFMM = new ThemeParks.Parks.SixFlagsMagicMountain; +// Test with Discord +client.on('ready', () => { + console.log(`Logged in as ${client.user.tag}!`); +}); +var goodchannel = "bot_commandse"; +client.on('message', msg => { +if (msg.channel.name == goodchannel) + return; +else { + if (!msg.content.startsWith(prefix)) return; + console.log('Message received'); + const args = msg.content.slice(prefix.length).trim().split(/ +/); + const command = args.shift().toLowerCase(); + if (command === 'ki') { + console.log('!q ki command'); + var selectedpark = Parks.KingsIsland; + } else if (command === 'cp') { + console.log('!q cp command'); + var selectedpark = Parks.CedarPoint; + } else if (command === 'dak') { + console.log('!q dak command'); + var selectedpark = Parks.WaltDisneyWorldAnimalKingdom; + } else if (command === 'sfmm') { + console.log('!q sfmm command'); + var selectedpark = Parks.SixFlagsMagicMountain; + } else if (command === 'dhs') { + console.log('!q dhs command'); + var selectedpark = Parks.WaltDisneyWorldHollywoodStudios; + } else if (command === 'dl') { + console.log('!q dl command'); + var selectedpark = Parks.DisneylandResortMagicKingdom; + } else if (command == 'caro') { + console.log('!q caro command') + var selectedpark = Parks.Carowinds; + } else if (command === 'bgt') { + console.log('!q bgt command') + var selectedpark = Parks.BuschGardensTampa; + } else if (command === 'sfgradv') { + console.log('!q sfgradv command') + var selectedpark = Parks.SixFlagsGreatAdventure; + } else if (command === 'sfot') { + console.log('!q sfot command') + var selectedpark = Parks.SixFlagsOverTexas; + } else if (command === 'kbf' || command === 'knotts') { + console.log('!q kbf command') + var selectedpark = Parks.KnottsBerryFarm; + } else if (command === 'cga') { + console.log('!q cga command') + var selectedpark = Parks.CaliforniasGreatAmerica; + } else if (command === 'cw') { + console.log('!q cw command') + var selectedpark = Parks.CanadasWonderland; + } else if (command === 'sfgam') { + console.log('!q sfgam command') + var selectedpark = Parks.SixFlagsGreatAmerica; + } + // sleep(5000).then(() => { + else { + msg.reply(command + ' is not available yet.') + return; + } + console.log(selectedpark); +const CheckWaitTimes = () => { + selectedpark.GetWaitTimes().then((rideTimes) => { + const embed = new Discord.MessageEmbed() + + .setTitle(selectedpark.Name + ' Queue Times') + const rides = (rideTimes.length); + console.log(rideTimes.length); + if (rideTimes.length <= 25) { + rideTimes.forEach((ride) => { + if (ride.status = 'Operating') { + if (ride.waitTime == null) { + embed.addField(ride.name + ' (' + ride.status + ')', 'No wait time provided', true); + console.log(ride.name + ' (' + ride.status + ') ' + 'No wait time provided'); + } else { + embed.addField(ride.name + ' (' + ride.status + ')', ride.waitTime + ' minutes', true); + console.log(ride.name + ' (' + ride.status + ') ' + ride.waitTime + ' minutes'); + } + } else { + + embed.addField(ride.name + ' (' + ride.status + ')', true); + console.log(ride.name + ' (' + ride.status + ') '); + } + }); + msg.reply(embed); + } + else if ((rideTimes.length > 25) && (rideTimes.length < 50)) { + rideTimes.slice(0, 25).forEach((ride) => { + if (ride.status == 'Operating') { + if (ride.waitTime == null) { + embed.addField(ride.name + ' (' + ride.status + ')', 'No wait time provided', true); + console.log(ride.name + ' (' + ride.status + ') ' + 'No wait time provided'); + } else { + embed.addField(ride.name + ' (' + ride.status + ')', ride.waitTime + ' minutes', true); + console.log(ride.name + ' (' + ride.status + ') ' + ride.waitTime + ' minutes'); + } + } else { + + embed.addField(ride.name + ' (' + ride.status + ')', 'Closed'); + console.log(ride.name + ' (' + ride.status + ') '); + }; + + + embed.setTitle(selectedpark.Name + ' Queue Times') + }); + const embed2 = new Discord.MessageEmbed() + .setTitle(selectedpark.Name + ' Queue Times') + rideTimes.slice(26, rides).forEach((ride) => { + + if (ride.status == 'Operating') { + if (ride.waitTime == null) { + embed2.addField(ride.name + ' (' + ride.status + ')', 'No wait time provided', true); + console.log(ride.name + ' (' + ride.status + ') ' + 'No wait time provided'); + } else { + embed2.addField(ride.name + ' (' + ride.status + ')', ride.waitTime + ' minutes', true); + console.log(ride.name + ' (' + ride.status + ') ' + ride.waitTime + ' minutes'); + } + } else { + + embed2.addField(ride.name + ' (' + ride.status + ')', 'Closed'); + console.log(ride.name + ' (' + ride.status + ') '); + }; + + console.log(rideTimes.length); + + //sleep(5000).then(() => { + + }) + + msg.reply(embed); + msg.reply(embed2); + } + else if ((rideTimes.length > 50) && (rideTimes.length < 75)) { + rideTimes.slice(0, 25).forEach((ride) => { + if (ride.status == 'Operating') { + if (ride.waitTime == null) { + embed.addField(ride.name + ' (' + ride.status + ')', 'No wait time provided', true); + console.log(ride.name + ' (' + ride.status + ') ' + 'No wait time provided'); + } else { + embed.addField(ride.name + ' (' + ride.status + ')', ride.waitTime + ' minutes', true); + console.log(ride.name + ' (' + ride.status + ') ' + ride.waitTime + ' minutes'); + } + } else { + + embed.addField(ride.name + ' (' + ride.status + ')', 'Closed'); + console.log(ride.name + ' (' + ride.status + ') ')}; + }); + embed.setTitle(selectedpark.Name + ' Queue Times') + const embed2 = new Discord.MessageEmbed() + .setColor('#0099ff') + .setTitle(selectedpark.Name + ' Queue Times') + rideTimes.slice(26, 51).forEach((ride) => { + if (ride.status == 'Operating') { + if (ride.waitTime == null) { + embed2.addField(ride.name + ' (' + ride.status + ')', 'No wait time provided', true); + console.log(ride.name + ' (' + ride.status + ') ' + 'No wait time provided'); + } else { + embed2.addField(ride.name + ' (' + ride.status + ')', ride.waitTime + ' minutes', true); + console.log(ride.name + ' (' + ride.status + ') ' + ride.waitTime + ' minutes'); + } + } else { + + embed2.addField(ride.name + ' (' + ride.status + ')', 'Closed'); + console.log(ride.name + ' (' + ride.status + ') '); + }; + }) + const embed3 = new Discord.MessageEmbed() + .setColor('#0099ff') + .setTitle(selectedpark.Name + ' Queue Times') + rideTimes.slice(51, rides).forEach((ride) => { + if (ride.status == 'Operating') { + var wait = ride.waitTime + if (ride.waitTime == null) { + embed3.addField(ride.name + ' (' + ride.status + ')', 'No wait time provided', true); + console.log(ride.name + ' (' + ride.status + ') ' + 'No wait time provided'); + console.log(ride.waitTime); + } else { + embed3.addField(ride.name + ' (' + ride.status + ')', ride.waitTime + ' minutes', true); + console.log(ride.name + ' (' + ride.status + ') ' + ride.waitTime + ' minutes'); + } + } else { + + embed3.addField(ride.name + ' (' + ride.status + ')', 'Closed'); + console.log(ride.name + ' (' + ride.status + ') '); + }; + }) + console.log(rideTimes.length); + + //sleep(5000).then(() => { + msg.reply(embed); + msg.reply(embed2); + msg.reply(embed3); +}; + + }); + + + } + CheckWaitTimes(); +}; +}) + + + + +client.login(config.token); \ No newline at end of file