From dcc5cad7b3005c237836c2fdbeac1f1344e0e9c7 Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 5 Aug 2020 11:56:17 -0500 Subject: [PATCH] IT'S ALIVE!!! --- src/index.js | 294 ++++++++++++++++++++++++------------------------- src/rewrite.js | 145 ------------------------ 2 files changed, 146 insertions(+), 293 deletions(-) delete mode 100644 src/rewrite.js diff --git a/src/index.js b/src/index.js index ef9cd90..f380f5f 100644 --- a/src/index.js +++ b/src/index.js @@ -1,148 +1,146 @@ -// Load up the libraries -const Discord = require('discord.js'); - -// Importing config -const config = require('./config.json') - -//User array and random number -let players = []; -let value = players[Math.floor(Math.random() * players.length)]; - -// Create client -const client = new Discord.Client(); - - -client.on('ready', () => { - //logs when the bot comes online - console.info( - `Bot has started, with ${client.users.cache.size} users, in \ - ${client.channels.cache.size} channels of ${client.guilds.cache.size} guilds.`); - - // Sits bots status to "Playing with beachballs" - client.user.setPresence({ - activity: { - name: `with beachballs`, - type: 'PLAYING', - }, - status: 'idle', - }).then(() => { - console.log("Status set!") - }); - -}) - - -client.on('message', async message => { - // Message processing - - // Only can be used in #linecon - // let okchannel = client.channels.cache.get("710574818222931968") - // if (!(message.channel === okchannel)) return; - - // Discards messages from bots - if (message.author.bot) return; - - // Discards messages that dont being with the prefix - if (message.content.indexOf(config.prefix) !== 0) return; - - // Makes the message into an array then cuts off the beginning and puts it in the command variable - const args = message.content.slice(config.prefix.length).trim().split(/ +/g); - const command = args.shift().toLowerCase(); - - // The main function of this bot. To play games! - if (command === 'play') { - - // Filter for filtering out only the beach ball emote - const filter = (reaction) => { - return reaction.emoji.id === config.emoteID && !(message.author.bot); - }; - - const emote = client.emojis.cache.get(config.emoteID) - - message.channel.send("Who wants to play with the beach ball?") - .then(message => { - // Reacts to its own message - message.react(config.emoteID) - .catch((err) => { - console.error('Something went wrong', err) - }) - - message.awaitReactions(filter, {max: 25, time: 300000, errors: ['time']}) - .then(collected => { - const reaction = collected.first(); - if (reaction.emoji === emote) { - players = reaction.users; - } - }) - }) - .catch((err) => { - console.error("Something went wrong!", err) - return message.channel.send("Something went wrong...") - }) - - // message.reply should start the game and call the first user. - // After that it is based on the random user generator from our array - - setTimeout(() => { - message.reply("Let's start!").then(message => { - // Initiating ball function - function ball() { - // In theory sends a message - message.channel.send(`${emote} ${value}`) - .then(() => { - message.react('config.emoteID') - }) - - .catch((err) => { - console.error("something went wrong!", err) - return message.channel.send("Something went wrong... I couldn't react.") - }) - } - - message.react(config.emoteID) - .then(() => { - const collector = message.createReactionCollector(filter, { - max: 2, - time: 30000, - errors: ['time'] - }) - - collector.on("collect", () => { - ball(); - }) - }) - - - // const collector = message.createReactionCollector(filter, {max: 1, time: 30000, errors: ['time']}) - // - // collector.on("collect", () => { - // ball(); - // }) - // message.awaitReactions(filter, {max: 1, time: 30000, errors: ['time']}) - // .then(collected => { - // const reaction = collected.first(); - // //VERY rough while statement should maybe work...? Need to update the bot and see - // //what happens when it runs since I don't write in JS - // while (true) { - // if (reaction.emoji === client.emojis.cache.get(config.emoteID)) { - // message.reply("Let's start!") - // .then(() => { - // message.awaitReactions(filter, {max: 1, time: 30000, errors: ['time']}) - // }).catch(err => { - // console.error("Something went wrong awaiting reactions", err) - // }) - // } - // else { - // return message.channel.send("Ouch!") - // } - // } - }) - // }) - }, 10000) - - } -}); - -client.login(config.token).then(() => { - console.log("Bot is logged in!") -}); +// Load up the libraries +const Discord = require('discord.js'); + +// Importing config +const config = require('./config.json') + +// Create client +const client = new Discord.Client(); + +// Triggers when the bot is logged in and +client.on('ready', () => { + //logs when the bot comes online + console.info( + `Bot has started, with ${client.users.cache.size} users, in \ + ${client.channels.cache.size} channels of ${client.guilds.cache.size} guilds.`); + + // Sits bots status to "Playing with beachballs" + client.user.setPresence({ + activity: { + name: `with beachballs`, + type: 'PLAYING', + }, + status: 'idle', + }).then(() => { + console.log("Status set!") + }); + +}) + +client.on('message', async message => { + // Message processing + + // Only can be used in #linecon + // let okchannel = client.channels.cache.get("710574818222931968") + // if (!(message.channel === okchannel)) return; + + // Discards messages from bots + if (message.author.bot) return; + + // Discards messages that dont being with the prefix + if (message.content.indexOf(config.prefix) !== 0) return; + + // Makes the message into an array then cuts off the beginning and puts it in the command variable + const args = message.content.slice(config.prefix.length).trim().split(/ +/g); + const command = args.shift().toLowerCase(); + + // The main function of this bot. To play games! + if (command === "play") { + //making the filters for the collectors + + + // Makes a message saying Who wants to play? + message.channel.send("who wants to play a game?") + .then(message => { + // Reacts with a beach ball + message.react("739941658639990866") + .then(() => { + // Collects reactions on the previous message + const beachballfilter = (reaction, user) => { + return reaction.emoji.id === '739941658639990866' && user.id !== '223215601638703105' + } + const collector = message.createReactionCollector(beachballfilter, { + // Sets the maximums to 1 type of emoji, 25 reactions, 25 users, in 60 Seconds + max: 25, + maxUsers: 25, + time: 10000 + }) + + + // Triggers when someone joins the react + collector.on("end", () => { + const players = Array.from(collector.users) + + + console.log(players) + console.log(players.length + " players") + + message.channel.send(`<:BeachBall:739941658639990866> ${(players[0].toString()).slice(19)}`).then(message => { + message.react(config.emoteID).then(() => { + const roundone = (reaction, user) => { + return reaction.emoji.name === config.emoteID && user.id !== '223215601638703105' //&& reaction.user === players[0] + } + const collector = message.createReactionCollector(roundone, { + // Sets the maximums to 1 type of emoji, 25 reactions, 25 users, in 60 Seconds + max: 2, + maxUsers: 2, + time: 10000 + }) + + collector.on("collect", () => { + function ball() { + // Generates a random number from 0 to players.length + let num = Math.floor(Math.random() * (players.length)); + console.log(num); + + //sends a message with the beach ball emote and pings a player + message.channel.send(`<:BeachBall:739941658639990866> ${(players[num].toString()).slice(19)}`).then(message => { + // Reacts the message with hands + message.react(config.emoteID).then(() => { + + // Makes a filter that allows the hand emoji and only form the player that was randomly picked + const handfilter = (reaction, user) => { + return reaction.emoji.name === config.emoteID && user.id !== '223215601638703105' //&& reaction.user === players[num] + } + const collector = message.createReactionCollector(handfilter, { + // Sets the maximums to 1 type of emoji, 25 reactions, 25 users, in 60 Seconds + max: 2, + maxUsers: 2, + time: 10000 + }) + + //on collection play again + collector.on("collect", () => { + ball() + }) + + collector.on("end", () => { + if (collector.users.size === 0) { + message.channel.send("Ouch") + } + }) + }) + }) + } + ball() + }) + + collector.on("end", () => { + message.channel.send("Ouch!") + console.log(Array.from(collector.users)) + }) + }) + }) + + + }) + + }) + + }) + } +}); + +client.login(config.token).then(() => { + console.log("logged in") +}) \ No newline at end of file diff --git a/src/rewrite.js b/src/rewrite.js deleted file mode 100644 index 6f445b9..0000000 --- a/src/rewrite.js +++ /dev/null @@ -1,145 +0,0 @@ -// Load up the libraries -const Discord = require('discord.js'); - -// Importing config -const config = require('./config.json') - -// Create client -const client = new Discord.Client(); - -// Triggers when the bot is logged in and -client.on('ready', () => { - //logs when the bot comes online - console.info( - `Bot has started, with ${client.users.cache.size} users, in \ - ${client.channels.cache.size} channels of ${client.guilds.cache.size} guilds.`); - - // Sits bots status to "Playing with beachballs" - client.user.setPresence({ - activity: { - name: `with beachballs`, - type: 'PLAYING', - }, - status: 'idle', - }).then(() => { - console.log("Status set!") - }); - -}) - -client.on('message', async message => { - // Message processing - - // Only can be used in #linecon - // let okchannel = client.channels.cache.get("710574818222931968") - // if (!(message.channel === okchannel)) return; - - // Discards messages from bots - if (message.author.bot) return; - - // Discards messages that dont being with the prefix - if (message.content.indexOf(config.prefix) !== 0) return; - - // Makes the message into an array then cuts off the beginning and puts it in the command variable - const args = message.content.slice(config.prefix.length).trim().split(/ +/g); - const command = args.shift().toLowerCase(); - - // The main function of this bot. To play games! - if (command === "play") { - //making the filters for the collectors - - - // Makes a message saying Who wants to play? - message.channel.send("who wants to play a game?") - .then(message => { - // Reacts with a beach ball - message.react("739941658639990866") - .then(() => { - // Collects reactions on the previous message - const beachballfilter = (reaction, user) => { - return reaction.emoji.id === '739941658639990866' && user.id !== '223215601638703105' - } - const collector = message.createReactionCollector(beachballfilter, { - // Sets the maximums to 1 type of emoji, 25 reactions, 25 users, in 60 Seconds - max: 25, - maxUsers: 25, - time: 10000 - }) - - - // Triggers when someone joins the react - collector.on("end", () => { - const players = Array.from(collector.users) - - - console.log(players) - console.log(players.length + " players") - - message.channel.send(`<:BeachBall:739941658639990866> ${(players[0].toString()).slice(19)}`).then(message => { - message.react(config.emoteID).then( () => { - const roundone = (reaction, user) => { - return reaction.emoji.name === config.emoteID && user.id !== '223215601638703105' //&& user === players[0] - } - const collector = message.createReactionCollector(roundone, { - // Sets the maximums to 1 type of emoji, 25 reactions, 25 users, in 60 Seconds - max: 2, - maxUsers: 2, - time: 10000 - }) - - collector.on("collect", () => { - function ball() { - // Generates a random number from 0 to players.length - let num = Math.floor(Math.random() * (players.length)); - console.log(num) - - //sends a message with the beach ball emote and pings a player - message.channel.send(`<:BeachBall:739941658639990866> ${(players[num].toString()).slice(19)}`).then(message => { - // Reacts the message with hands - message.react(config.emoteID).then(() => { - - // Makes a filter that allows the hand emoji and only form the player that was randomly picked - const handfilter = (reaction, user) => { - return reaction.emoji.id === config.emoteID && user.id !== '223215601638703105' //&& reaction.user === players[num] - } - const collector = message.createReactionCollector(handfilter, { - // Sets the maximums to 1 type of emoji, 25 reactions, 25 users, in 60 Seconds - max: 2, - maxUsers: 2, - time: 10000 - }) - - //on collection play again - collector.on("collect", () => { - ball() - }) - collector.on("end", () => { - if (collector.users.size === 0) - message.channel.send("this mean that there was most likely a filter problem") - }) - }) - }) - } - - ball() - }) - - collector.on("end", () => { - message.channel.send("Ouch!") - console.log(Array.from(collector.users)) - }) - }) - }) - - - }) - - }) - - }) - } -}); - -client.login(config.token).then(() => { - console.log("logged in") -}) \ No newline at end of file