UNPKG

dj-games

Version:

A Discord Js Package for Mini-Games. you can easily setup. It is beginner friendly. It need discord-buttons package to work

842 lines (794 loc) 46.8 kB
class tttgame { /** * @name TicTacToe * @kind constructor * @param {Object} options options * @param {String} [options.xEmoji] x emoji * @param {any} [options.message] the discord message * @param {String} [options.xColor] x button color * @param {String} [options.oEmoji] o emoji * @param {String} [options.oColor] o button color * @param {any} [options.opponent] const opponent = <Message>.mentions.members.first() (NOT CHANGEABLE) */ constructor(options) { if(!options.xEmoji) throw new TypeError('Missing "x"Emoji') if(typeof options.xEmoji !== 'string') throw new TypeError('Error: "x" Emoji must be a string') if(!options.oEmoji) throw new TypeError('Missing "o" Emoji') if(typeof options.oEmoji !== 'string') throw new TypeError('Error: "o" Emoji must be a string') if(!options.xColor) throw new TypeError('Missing argument: xColor') if(typeof options.xColor !== 'string') throw new TypeError('Error: xColor must be a string') if(!options.oColor) throw new TypeError('Missing argument: oColor') if(typeof options.oColor !== 'string') throw new TypeError('Error: oColor must be a string') if(!options.opponent) throw new TypeError('Error: Missing argument opponent') if(!options.message) throw new TypeError('Error: Missing argument message') this.message = options.message; this.xEmoji = options.xEmoji this.oEmoji = options.oEmoji this.opponent = options.opponent this.xColor = options.xColor this.oColor = options.oColor } async start() { let a1 = '⬜' let a2 = '⬜' let a3 = '⬜' let b1 = '⬜' let b2 = '⬜' let b3 = '⬜' let c1 = '⬜' let c2 = '⬜' let c3 = '⬜' function getRandomString(length) { var randomChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; var result = ''; for ( var i = 0; i < length; i++ ) { result += randomChars.charAt(Math.floor(Math.random() * randomChars.length)) } return result } let a11 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let a22 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let a33 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let b11 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let b22 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let b33 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let c11 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let c22 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let c33 = (getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)+'-'+getRandomString(4)) let player = 0; const author = this.message.author.id const member = this.opponent const authorName = this.message.author.username const midDuel = new Set() if (midDuel.has(author)) { return this.message.channel.send(`You're currently in a duel`) } else if (midDuel.has(member.id)) { return this.message.channel.send(`<@${member.id}> is currently in a duel`) } if (member.id === this.message.client.user.id) { return this.message.channel.send("You can't duel play tic tac toe with me xd") } const gameData = [ { member: this.message.author, em: this.xEmoji, color: this.xColor }, { member: member, em: this.oEmoji, color: this.oColor } ]; const Discord = require('discord.js') let Embed = new Discord.MessageEmbed() .setDescription(`🎮 ${authorName} VS ${this.opponent.username} 🎮`) .setColor(3426654) const dis = require('discord-buttons') let A1 = new dis.MessageButton() .setID(a11) .setStyle('gray') .setLabel('--') let A2 = new dis.MessageButton() .setID(a22) .setStyle('gray') .setLabel('--') let A3 = new dis.MessageButton() .setID(a33) .setStyle('gray') .setLabel('--') let B1 = new dis.MessageButton() .setID(b11) .setStyle('gray') .setLabel('--') let B2 = new dis.MessageButton() .setID(b22) .setStyle('gray') .setLabel('--') let B3 = new dis.MessageButton() .setID(b33) .setStyle('gray') .setLabel('--') let C1 = new dis.MessageButton() .setID(c11) .setStyle('gray') .setLabel('--') let C2 = new dis.MessageButton() .setID(c22) .setStyle('gray') .setLabel('--') let C3 = new dis.MessageButton() .setID(c33) .setStyle('gray') .setLabel('--') this.message.channel.send({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }).then( async (msg) => { midDuel.add(author) midDuel.add(member.id) const gameFilter = m => m.clicker.user.id === this.message.author.id || m.clicker.user.id === this.opponent.id const gameCollector = msg.createButtonCollector(gameFilter); gameCollector.on('collect', async btn => { if(btn.id == a11 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not press this button') } else { try{ a1 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice thx for playing It`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win good `) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win cool!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win **Good fight**!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; A1 = new dis.MessageButton() .setID(a11) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == a22 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other game') } else { try{ a2 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win good game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win great game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win👑!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win **GG**!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win THE GAME!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win YOU can PLAY AGAIN`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win😎!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; A2 = new dis.MessageButton() .setID(a22) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == a33 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games') } else { try{ a3 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win well played`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win excellentgame!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win good game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win good game.!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; A3 = new dis.MessageButton() .setID(a33) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == b11 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games') } else { try{ b1 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win good game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win wepl playedgood game..!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win you can play again!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win fact time: tic tac toe also called Noughts and Crosses!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game..!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win the game.....!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game..!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win nice game`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; B1 = new dis.MessageButton() .setID(b11) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == b22 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games.') } else { try{ b2 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win! I don't know how you win? but well played`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win! discord bot is good I guss`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} wins the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win! the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; B2 = new dis.MessageButton() .setID(b22) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == b33 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games') } else { try{ b3 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; B3 = new dis.MessageButton() .setID(b33) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == c11 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games.') } else { try{ c1 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; C1 = new dis.MessageButton() .setID(c11) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == c22 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games') } else { try{ c2 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game **GG**!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win...!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; C2 = new dis.MessageButton() .setID(c22) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else if(btn.id == c33 && gameData[player].member.id === btn.clicker.user.id){ btn.defer() if (btn.label == this.oEmoji || btn.label == this.xEmoji) { // User tries to place at an already claimed spot btn.reply.send('you can not disturb other games.......') } else { try{ c3 = gameData[player].em if (a1 == this.xEmoji && b1 == this.xEmoji && c1 == this.xEmoji || a1 == this.oEmoji && b1 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a2 == this.xEmoji && b2 == this.xEmoji && c2 == this.xEmoji || a2 == this.oEmoji && b2 == this.oEmoji && c2 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b3 == this.xEmoji && c3 == this.xEmoji || a3 == this.oEmoji && b3 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && a2 == this.xEmoji && a3 == this.xEmoji || a1 == this.oEmoji && a2 == this.oEmoji && a3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (b1 == this.xEmoji && b2 == this.xEmoji && b3 == this.xEmoji || b1 == this.oEmoji && b2 == this.oEmoji && b3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (c1 == this.xEmoji && c2 == this.xEmoji && c3 == this.xEmoji || c1 == this.oEmoji && c2 == this.oEmoji && c3 == this.oEmoji) { player = (player + 1) % 2; this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a1 == this.xEmoji && b2 == this.xEmoji && c3 == this.xEmoji || a1 == this.oEmoji && b2 == this.oEmoji && c3 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } else if (a3 == this.xEmoji && b2 == this.xEmoji && c1 == this.xEmoji || a3 == this.oEmoji && b2 == this.oEmoji && c1 == this.oEmoji) { this.message.channel.send(`${gameData[player].member} win the game..!`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) }else if(a1 !== '⬜' && a2 !== '⬜' && a3 !== '⬜' && b1 !== '⬜' && b2 !== '⬜' && b3 !== '⬜' && c1 !== '⬜' && c2 !== '⬜' && c3 !== '⬜'){ this.message.channel.send(`Tie! -_-`) gameCollector.stop() midDuel.delete(author) midDuel.delete(member.id) } }catch(e){ console.log(e) } player = (player + 1) % 2; C3 = new dis.MessageButton() .setID(c33) .setStyle(gameData[player].color) .setEmoji(gameData[player].em) .setDisabled() msg.edit({ embed: Embed, components: [ {type: 1, components: [ A1, A2, A3 ]}, {type: 1, components: [ B1, B2, B3 ]}, {type: 1, components: [ C1, C2, C3 ]}, ] }) } }else { return btn.reply.send('Please Wait for opponent.', true) } }) }) } } module.exports = tttgame