Advertisement
Guest User

Untitled

a guest
Jun 26th, 2019
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const Discord = require('discord.js')
  2. const db = require('../util/db.js')
  3. const config = require('../botconfig.json')
  4. let cash = '<:cash:577826085157208064>';
  5. let denied = '<:denied:578904707691577345>';
  6. let payout = '<:payout:582424349433397249>';
  7. let cooldown = '<:cooldown:579496045059375104>';
  8. let xp = '<:eXP:579763563821006860>';
  9. let greenSq = '<:green_square:589504085804187653>'
  10. function hit() {
  11.     for (let x = 0; x < 1; x++) {
  12.         player.push(cards[0].disp) //pushes a card into the player deck
  13.         playerValue += cards[0].value
  14.         //dealer.push(dRandom.disp) //pushes a card into dealer deck
  15.         //dealerValue += dRandom.value
  16.         cards.shift()
  17.         cards = cards.sort(() => Math.random() - 0.5);
  18.         if (x == 1) break;
  19.     }
  20. }
  21. //add const values to each card
  22. module.exports.run = async (bot, msg, args) => {
  23.   if(msg.content.startsWith(config.prefix)){
  24.       let sIcon = msg.guild.iconURL;
  25.       let bet = args[0]
  26.       db.blackjack(msg.author.id).then(bj => {
  27.         db.MongoFind("users", { id: msg.author.id }).then(info => {
  28.           db.MongoFind("botstats", { id: bot.user.id }).then(bstats => {
  29.           var userEco = info[0].economy;
  30.           var userMisc = info[0].misc;
  31.             if (info[0].options.permLevel == 1) return;
  32.                 if (bj == false){
  33.                     let activeCD = new Discord.RichEmbed()
  34.                         .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  35.                         .setDescription(`${cooldown} **${msg.author.username}**, wait **${2 - parseInt(bj)} minute(s)** before running this command again!`)
  36.                         .setTimestamp()
  37.                         .setColor("#ef5350")
  38.                         .setFooter(`User ID: ${msg.author.id}`, sIcon)
  39.                         return msg.channel.send(activeCD);
  40.                     } else if (bj == true) {
  41.                         if (!bet) {
  42.                             let noBet = new Discord.RichEmbed()
  43.                                 .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  44.                                 .setDescription(`${denied} **${msg.author.username}**, provide a bet dude.`)
  45.                                 .setTimestamp()
  46.                                 .setColor("#ef5350")
  47.                                 .setFooter(`User ID: ${msg.author.id}`, sIcon)
  48.                                 return msg.channel.send(noBet);
  49.                         } else if (bet % 1 != 0) {
  50.                             let isDecimal = new Discord.RichEmbed()
  51.                                 .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  52.                                 .setDescription(`${denied} **${msg.author.username}**, bet again but with whole dollars.`)
  53.                                 .setTimestamp()
  54.                                 .setColor("#ef5350")
  55.                                 .setFooter(`User ID: ${msg.author.id}`, sIcon)
  56.                                 return msg.channel.send(isDecimal);
  57.                         } else if (bet <= 0) {
  58.                             let isNull = new Discord.RichEmbed()
  59.                                 .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  60.                                 .setDescription(`${denied} **${msg.author.username}**, you have to bet at least \`100\` ${cash}`)
  61.                                 .setTimestamp()
  62.                                 .setColor("#ef5350")
  63.                                 .setFooter(`User ID: ${msg.author.id}`, sIcon)
  64.                                 return msg.channel.send(isNull);
  65.                         } else if (bet < 100) {
  66.                             let minBet = new Discord.RichEmbed()
  67.                                 .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  68.                                 .setDescription(`${denied} **${msg.author.username}**, you have to bet at least \`100\` ${cash}`)
  69.                                 .setTimestamp()
  70.                                 .setColor("#ef5350")
  71.                                 .setFooter(`User ID: ${msg.author.id}`, sIcon)
  72.                                 return msg.channel.send(minBet);
  73.                         } else if (userEco.balance < 100) {
  74.                             let insufficient = new Discord.RichEmbed()
  75.                                 .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  76.                                 .setDescription(`${denied} **${msg.author.username}**, you do not have \`100\` ${cash} to bet!`)
  77.                                 .setTimestamp()
  78.                                 .setColor("#ef5350")
  79.                                 .setFooter(`User ID: ${msg.author.id}`, sIcon)
  80.                                 return msg.channel.send(insufficient);
  81.                         } else if (bet > userEco.balance) {
  82.                             let noFunds = new Discord.RichEmbed()
  83.                                 .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  84.                                 .setDescription(`${denied} **${msg.author.username}**, you have \`${bet}\` ${cash} to bet!`)
  85.                                 .setTimestamp()
  86.                                 .setColor("#ef5350")
  87.                                 .setFooter(`User ID: ${msg.author.id}`, sIcon)
  88.                                 return msg.channel.send(noFunds);
  89.                         } else if (bet >= 100 && userEco.balance >= bet) {
  90.                             let card = [
  91.                                 { card: 0, type: 1, value: 11, disp: "<:heart_ace:593054243842293761>" },
  92.                                 { card: 1, type: 1, value: 10, disp: "<:heart_king:593054244245078016>" },
  93.                                 { card: 2, type: 1, value: 10, disp: "<:heart_queen:593054244232495104>" },
  94.                                 { card: 3, type: 1, value: 10, disp: "<:heart_jack:593054244056203324>" },
  95.                                 { card: 4, type: 1, value: 10, disp: "<:heart_10:593054243682779168>" },
  96.                                 { card: 5, type: 1, value: 9, disp: "<:heart_9:593054243997483008>" },
  97.                                 { card: 6, type: 1, value: 8, disp: "<:heart_8:593054244022779904>" },
  98.                                 { card: 7, type: 1, value: 7, disp: "<:heart_7:593054243951345668>" },
  99.                                 { card: 8, type: 1, value: 6, disp: "<:heart_6:593054243624058885>" },
  100.                                 { card: 9, type: 1, value: 5, disp: "<:heart_5:593054243985031178>" },
  101.                                 { card: 10, type: 1, value: 4, disp: "<:heart_4:593054243905339413>" },
  102.                                 { card: 11, type: 1, value: 3, disp: "<:heart_3:593054243792093184>" },
  103.                                 { card: 12, type: 1, value: 2, disp: "<:heart_2:593054243901014016>" },
  104.                                 { card: 13, type: 2, value: 11, disp: "<:diamond_ace:593054156189597707>" },
  105.                                 { card: 14, type: 2, value: 10, disp: "<:diamond_king:593054156567347213>" },
  106.                                 { card: 15, type: 2, value: 10, disp: "<:diamond_queen:593054156621873152>" },
  107.                                 { card: 16, type: 2, value: 10, disp: "<:diamond_jack:593054156487655426>" },
  108.                                 { card: 17, type: 2, value: 10, disp: "<:diamond_10:593054156466552832>" },
  109.                                 { card: 18, type: 2, value: 9, disp: "<:diamond_9:593054156105842720>" },
  110.                                 { card: 19, type: 2, value: 8, disp: "<:diamond_8:593054156046991401>" },
  111.                                 { card: 20, type: 2, value: 7, disp: "<:diamond_7:593054156412026883>" },
  112.                                 { card: 21, type: 2, value: 6, disp: "<:diamond_6:593054156378603520>" },
  113.                                 { card: 22, type: 2, value: 5, disp: "<:diamond_5:593054156290523156>" },
  114.                                 { card: 23, type: 2, value: 4, disp: "<:diamond_4:593054156282003467>" },
  115.                                 { card: 24, type: 2, value: 3, disp: "<:diamond_3:593054155912773638>" },
  116.                                 { card: 25, type: 2, value: 2, disp: "<:diamond_2:593054156126945301>" },
  117.                                 { card: 26, type: 3, value: 11, disp: "<:clover_ace:593054076955262986>" },
  118.                                 { card: 27, type: 3, value: 10, disp: "<:clover_king:593054076925902858>" },
  119.                                 { card: 28, type: 3, value: 10, disp: "<:clover_queen:593054076963651584>" },
  120.                                 { card: 29, type: 3, value: 10, disp: "<:clover_jack:593054076485500929>" },
  121.                                 { card: 30, type: 3, value: 10, disp: "<:clover_10:593054076975972352>" },
  122.                                 { card: 31, type: 3, value: 9, disp: "<:clover_9:593054076867051541>" },
  123.                                 { card: 32, type: 3, value: 8, disp: "<:clover_8:593054076816719873>" },
  124.                                 { card: 33, type: 3, value: 7, disp: "<:clover_7:593054076569124876>" },
  125.                                 { card: 34, type: 3, value: 6, disp: "<:clover_6:593054076497952769>" },
  126.                                 { card: 35, type: 3, value: 5, disp: "<:clover_5:593054076732702731>" },
  127.                                 { card: 36, type: 3, value: 4, disp: "<:clover_4:593054076732833803>" },
  128.                                 { card: 37, type: 3, value: 3, disp: "<:clover_3:593054076636364800>" },
  129.                                 { card: 38, type: 3, value: 2, disp: "<:clover_2:593054076644884509>" },
  130.                                 { card: 39, type: 4, value: 11, disp: "<:spades_ace:593054761415344168>" },
  131.                                 { card: 40, type: 4, value: 10, disp: "<:spades_king:593054761196978192>" },
  132.                                 { card: 41, type: 4, value: 10, disp: "<:spades_queen:593054761490841601>" },
  133.                                 { card: 42, type: 4, value: 10, disp: "<:spades_jack:593054761423470602>" },
  134.                                 { card: 43, type: 4, value: 10, disp: "<:spades_10:593054761415344128>" },
  135.                                 { card: 44, type: 4, value: 9, disp: "<:spades_9:593054727005011968>" },
  136.                                 { card: 45, type: 4, value: 8, disp: "<:spades_8:593054614987735051>" },
  137.                                 { card: 46, type: 4, value: 7, disp: "<:spades_7:593054615138729985>" },
  138.                                 { card: 47, type: 4, value: 6, disp: "<:spades_6:593054614736207882>" },
  139.                                 { card: 48, type: 4, value: 5, disp: "<:spades_5:593054615357095976>" },
  140.                                 { card: 49, type: 4, value: 4, disp: "<:spades_4:593054615101243412>" },
  141.                                 { card: 50, type: 4, value: 3, disp: "<:spades_3:593054615096786944>" },
  142.                                 { card: 51, type: 4, value: 2, disp: "<:spades_2:593054615046455306>" }]  //all the cards
  143.                             var cards = [];
  144.                             for (let i = 0; i < card.length; i++) {
  145.                                 cards.push(card[i]);
  146.                                 cards = cards.sort(() => Math.random() - 0.5);
  147.                             } //randomize default card array
  148.                             var player = [];
  149.                             var dealer = [];
  150.                             var dealerInitial = cards[(Math.random() * cards.length)]
  151.                             var playerInitial = cards[(Math.random() * cards.length)]
  152.                             var dealerValue = 0;
  153.                             var playerValue = 0;
  154.                             dealer.push(dealerInitial.disp) //pushes a card into dealer deck
  155.                             player.push(playerInitial.disp) //pushes a card into player deck
  156.                             dealerValue += dealerInitial.value
  157.                             playerValue += playerInitial.value
  158.                             if (playerValue > 21) {
  159.                                 let playerBusted = new Discord.RichEmbed()
  160.                                     .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  161.                                     .setDescription(`**You're bust!** \n **Your Hand** \n ${player.join(" ")} \n **Dealer Hand** \n ${dealer.join(" ")}`)
  162.                                    .setTimestamp()
  163.                                    .setColor("RANDOM")
  164.                                    .setFooter(`User ID: ${msg.author.id}`, sIcon)
  165.                                    return msg.channel.send(playerBusted)
  166.                            } else if (playerValue == 21) {
  167.                                let playerWon = new Discord.RichEmbed()
  168.                                    .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  169.                                    .setDescription(`**You Won!** \n **Your Hand** \n ${player.join(" ")} \n **Dealer Hand** \n ${dealer.join(" ")}`)
  170.                                    .setTimestamp()
  171.                                    .setColor("RANDOM")
  172.                                    .setFooter(`User ID: ${msg.author.id}`, sIcon)
  173.                                    return msg.channel.send(playerWon)
  174.                            } else {
  175.                                let desc = `**Your Hand** \n ${player.join(" ")} \n **Dealer Hand** \n ${dealer.join(" ")} \n Would you like to \`hit\`, \`double down\`, \`split\` or \`stand\`?`                          
  176.                                let bjGame = new Discord.RichEmbed()
  177.                                    .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  178.                                    .setDescription(desc)
  179.                                    .setTimestamp()
  180.                                    .setColor("RANDOM")
  181.                                    .setFooter(`User ID: ${msg.author.id}`, sIcon)
  182.                                    msg.channel.send(bjGame).then(mes => {
  183.                                    const filter = m => m.author.id === msg.author.id;
  184.                                    msg.channel.awaitMessages(filter, {
  185.                                        max: 5
  186.                                        }).then(collected => {
  187.                                        let response = collected.first().content.toLowerCase()
  188.                                        switch (response) {
  189.                                            case "hit":
  190.                                                hit();
  191.                                                desc = `**Your Hand** \n ${player.join(" ")} \n **Dealer Hand** \n ${dealer.join(" ")} \n Would you like to \`hit\`, \`double down\`, \`split\` or \`stand\`?`                
  192.                                                mes.edit(bjGame)
  193.                                                break;
  194.                                            case "double down":
  195.  
  196.  
  197.                                            }
  198.                                        })
  199.                                    })
  200.                                }                          
  201.                            }
  202.                        } else {
  203.                            let activeCD = new Discord.RichEmbed()
  204.                                .setAuthor(`${msg.author.tag}`, msg.author.displayAvatarURL)
  205.                                .setDescription(`${cooldown} **${msg.author.username}**, wait **${2 - parseInt(bj)} minute(s)** before running this command again!`)
  206.                                .setTimestamp()
  207.                                .setColor("#ef5350")
  208.                                .setFooter(`User ID: ${msg.author.id}`, sIcon)
  209.                                return msg.channel.send(activeCD);
  210.                            }
  211.                        })
  212.                    })
  213.                })
  214.            }
  215.        }
  216. module.exports.config = {
  217.    name: 'blackjack',
  218.    permLevel: 0,
  219.    aliases: ["bj"],
  220.    description: ["Play a game of blackjack."],
  221.    parameter: ["{bet}"],
  222.    usage: [`${config.prefix}blackjack {bet}`]
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement