Guest User

Untitled

a guest
Jun 26th, 2017
33
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var tmi = require('tmi.js');
  2. var mysql = require("mysql");
  3. var colors = require("colors");
  4.  
  5. var config = {
  6.     host: "localhost",
  7.     user: "root",
  8.     password: "",
  9.     database: "bot"
  10. };
  11.  
  12. var con;
  13.  
  14. function log(text, color) {
  15.     var d = new Date();
  16.     var h = d.getHours();
  17.     var m = d.getMinutes();
  18.     var ap = "AM";
  19.     if (h > 12) {
  20.         h -= 12;
  21.         var ap = "PM";
  22.     }
  23.     if (m < 10) {
  24.         m = "0" + m;
  25.     }
  26.     time = h + ":" + m + " " + ap;
  27.  
  28.     if (typeof(color) == "undefined") {
  29.         display = colors.grey(time) + ": " + text;
  30.         console.log(display);
  31.     } else {
  32.         console.log(colors.grey(time) + ": " + colors[color](text));
  33.     }
  34. }
  35.  
  36. function handleConnection() {
  37.     con = mysql.createConnection(config);
  38.  
  39.     con.connect(function(err) {
  40.         if (err) {
  41.             log("An error has occurred while connection: " + err, "red");
  42.             setTimeout(handleConnection, 2000);
  43.         } else {
  44.             log("Connection successful.", "green");
  45.         }
  46.     });
  47.  
  48.     con.on("error", function(err) {
  49.         console.log("Error: " + err);
  50.         if (err.code === "PROTOCOL_CONNECTION_LOST") {
  51.             handleConnection();
  52.         } else {
  53.             throw err;
  54.         }
  55.     });
  56. }
  57.  
  58. handleConnection();
  59.  
  60. var options = {
  61.     options: {
  62.         debug: true
  63.     },
  64.     connection: {
  65.         cluster: "aws",
  66.         reconnect: true
  67.     },
  68.     identity: {
  69.         username: "RBMBot",
  70.         password: "oauth:0ahbn85l3jzor2kj95wwyamt19gop2"
  71.     },
  72.     channels: ["rootbeermelon"]
  73. };
  74.  
  75. var client = new tmi.client(options);
  76. client.connect();
  77.  
  78. var channel = options.channels[0];
  79.  
  80. var points;
  81. /*
  82. setInterval(function() {
  83.     var edit = con.query('SELECT * FROM users',
  84.     function(err, res) {
  85.         if (err) log(err, "yellow");
  86.         for (var i = 0; i < res.length; i++) {
  87.             var edit = con.query('UPDATE users SET isActive = 0 WHERE username = ?', res[i].username,
  88.             function(err, res) {
  89.                 if (err) log(err, "yellow");
  90.                 client.say(channel, "The 15-minute activity wipe has occurred, chat again to be considered.");
  91.             });
  92.         }
  93.     });
  94.    
  95. }, 10000 * 60);
  96. */
  97.  
  98. client.on('chat', function(channel, user, message, self) {
  99.  
  100.     if (!(user['display-name'] == "RBMBot" || user['display-name'] == "Nightbot")) {
  101.         var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  102.         function(err, res) {
  103.             if (res.length == 0) {
  104.                 var post = {username: user['display-name'], points: 1};
  105.                 var add = con.query('INSERT INTO users SET ?', post,
  106.                     function(err, res) {
  107.                         log("A new user has been added!", "green");
  108.                     });
  109.             } else if (res.length == 1) {
  110.                 var edit = con.query('UPDATE users SET isActive = 1 WHERE username = ?', user['display-name'],
  111.                 function(err, res) {
  112.                     if (err) log(err, "yellow");
  113.                 });
  114.             }
  115.         });
  116.     }
  117.  
  118.     con.escape();
  119.  
  120.     switch (message.toLowerCase().split(" ")[0]) {
  121.         case "!points": // !points +username (+ = optional)
  122.             var split = message.split(" ");
  123.             if (split.length == 2) {
  124.                 sayPoints(split[1]);
  125.             } else {
  126.                 sayPoints(user['display-name']);
  127.             }
  128.         break;
  129.  
  130.         case "!editpoints": // !editpoints username add/remove/set amount
  131.             if (user['display-name'] == "rootbeermelon") {
  132.                 var split = message.split(" ");
  133.  
  134.                 if (split.length == 1) {
  135.                     client.say(channel, "How to use the command: !editpoints username add/remove/set amount");
  136.                 } else {
  137.  
  138.                     switch (split[2]) {
  139.                         case "add":
  140.                             var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [split[3], split[1]],
  141.                             function(err, res) {
  142.                                 if (err) log(err, "yellow");
  143.                                 client.say(channel, "Added " + split[3] + " points to " + split[1] + "'s balance.");
  144.                             });
  145.                         break;
  146.                         case "remove":
  147.                             var edit = con.query('UPDATE users SET points = points - ? WHERE username = ?', [split[3], split[1]],
  148.                             function(err, res) {
  149.                                 if (err) log(err, "yellow");
  150.                                 client.say(channel, "Removed " + split[3] + " points to " + split[1] + "'s balance.");
  151.                             });
  152.                         break;
  153.                         case "set":
  154.                             var edit = con.query('UPDATE users SET points = ? WHERE username = ?', [split[3], split[1]],
  155.                             function(err, res) {
  156.                                 if (err) log(err, "yellow");
  157.                                 client.say(channel, "Set " + split[1] + "'s points to " + split[3] + ".");
  158.                             });
  159.                         break;
  160.                         default:
  161.                             client.say(channel, "Not sure what you mean? Try doing just !editpoints.");
  162.                         break;
  163.                     }
  164.  
  165.                 }
  166.             } else {
  167.                 client.say(channel, "Sorry, only the broadcaster can do this.");
  168.             }
  169.  
  170.             con.escape();
  171.         break;
  172.  
  173.         case "!mining":
  174.             var split = message.split(" ");
  175.             if (split.length == 1) {
  176.                 client.say(channel, "Mining is the viewers' way of gaining points to use on stream. To start mining use: !mining start. To view your stats: !mining stats. To open a mystery box: !mining box. Good luck!");
  177.             } else if (split.length >= 2) {
  178.                 switch (split[1]) {
  179.                     case "start":
  180.                         mine(user['display-name']);
  181.                     break;
  182.                     case "stats":
  183.                         var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  184.                         function(err, res) {
  185.                             if (err) log(err, "yellow");
  186.                             if (res.length == 1) {
  187.                                 var split = res[0].miningPickaxe.split("/");
  188.                                 var pickaxe = {name: split[0], output: split[1], delay: split[2]};
  189.                                 client.say(channel, "[" + res[0].miningXP + " XP] " + user['display-name'] + "'s pickaxe: " + pickaxe.name + " (up to " + pickaxe.output + " points, delay of " + pickaxe.delay + "s)");
  190.                             }
  191.                         });
  192.                     break;
  193.                     case "box":
  194.                         if (split.length == 3) {
  195.                             if (split[2] == "open") {
  196.                                 var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  197.                                 function(err, res) {
  198.                                     if (err) log(err, "yellow");
  199.                                     if (res.length == 1) {
  200.                                         var points = res[0].points;
  201.                                         if (points >= 100) {
  202.                                             var edit = con.query('UPDATE users SET points = points - ? WHERE username = ?', [100, user['display-name']],
  203.                                             function(err, res) {
  204.                                                 if (err) log(err, "yellow");
  205.                                                 var pickaxe = getPickaxe();
  206.                                                 var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  207.                                                 function(err, res) {
  208.                                                     if (err) log(err, "yellow");
  209.                                                     if (res.length == 1) {
  210.                                                         var oldPick = res[0].miningPickaxe.split("/")[1];
  211.                                                         var newPick = pickaxe.split("/")[1];
  212.                                                         log(newPick + " > " + oldPick, "cyan");
  213.                                                         //client.say(channel, "new pick (" + newPick + ") / old pick (" + oldPick + ")");
  214.                                                         if (newPick > oldPick) {
  215.                                                             var edit = con.query('UPDATE users SET miningPickaxe = ? WHERE username = ?', [pickaxe, user['display-name']],
  216.                                                             function(err, res) {
  217.                                                                 if (err) log(err, "yellow");
  218.                                                                 var split = pickaxe.split("/");
  219.                                                                 client.say(channel, user['display-name'] + " got a new " + split[3].toUpperCase() + " pickaxe: " + split[0] + " (up to " + split[1] + " points, delay of " + split[2] + "s)");
  220.                                                             });
  221.                                                         } else {
  222.                                                             client.say(channel, user['display-name'] + " opens a mystery box but gets a worse pickaxe. They toss out the new one.");
  223.                                                         }
  224.                                                     }
  225.                                                 });
  226.                                                
  227.                                                
  228.                                             });
  229.                                         } else {
  230.                                             client.say(channel, user['display-name'] + ", sorry you don't have enough points.");
  231.                                         }
  232.                                        
  233.                                     }
  234.                                 });
  235.                             }
  236.                         } else {
  237.                             client.say(channel, "Opening a mystery box will give you a random pickaxe, this costs 100 points. Doing so will destroy your previous pickaxe. To start do !mining box open.");
  238.                         }
  239.                     break;
  240.                     default:
  241.                         client.say(channel, "Hey there, use the !mining command to check out how this command works.");
  242.                     break;
  243.                 }
  244.             } else {
  245.                 client.say(channel, "Hey there, use the !mining command to check out how this command works.");
  246.             }
  247.  
  248.             con.escape();
  249.         break;
  250.  
  251.         case "!gamble":
  252.             var split = message.split(" ");
  253.             if (split.length == 2) {
  254.                 var wager = split[1];
  255.                 gamble(wager, user['display-name']);
  256.                
  257.             } else {
  258.                 client.say(channel, "You can risk your points by using !gamble. A roll above 55 is a win. If you land a 100, you will get a random multiplier. Try it out!");
  259.             }
  260.         break;
  261.  
  262.         case "!rain": // !rain points
  263.             if (user['display-name'] == "rootbeermelon") {
  264.                 var split = message.split(" ");
  265.                 if (split.length == 2) {
  266.                     var people = [];
  267.                     var edit = con.query('SELECT * FROM users',
  268.                     function(err, res) {
  269.                         var points = split[1];
  270.                         if (err) log(err, "yellow");
  271.                         while (points > 0) {
  272.                             for (var i = 0; i < res.length; i++) {
  273.                                 if (Math.random() > 0.9 && res[i].isActive == 1) {
  274.                                     points -= 1;
  275.                                     people.push({username: res[i].username});
  276.                                 }
  277.                             }
  278.                         }
  279.                         for (var i = 0; i < people.length; i++) {
  280.                             var edit = con.query('UPDATE users SET points = points + 1 WHERE username = ?', people[i].username,
  281.                             function(err, res) {
  282.  
  283.                             });
  284.                         }
  285.                         client.say(channel, "Rain clouds roll in and rain points down onto the viewers, check your points to see your reward!");
  286.                     });
  287.                 } else {
  288.                     client.say(channel, "To rain do !rain points.");
  289.                 }
  290.             } else {
  291.                 client.say(channel, "Sorry, only the broadcaster can do this.");
  292.             }
  293.  
  294.             con.escape();
  295.         break;
  296.  
  297.         case "!dealoftheday":
  298.             var split = message.split(" ");
  299.             if (split.length == 2) {
  300.                 if (split[1] == "buy") {
  301.                     var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  302.                     function(err, res) {
  303.                         if (err) log(err, "yellow");
  304.                         if (res[0].points >= 800) {
  305.                             var edit = con.query('UPDATE users SET points = points - 800 WHERE username = ?', user['display-name'],
  306.                             function(err, res) {
  307.                                 if (err) log(err, "yellow");
  308.                                 var edit = con.query('UPDATE users SET miningPickaxe = ? WHERE username = ?', ["Silver Pickaxe/9/180/dotd", user['display-name']],
  309.                                 function(err, res) {
  310.                                     if (err) log(err, "yellow");
  311.                                     client.say(channel, user['display-name'] + " has bought the deal of the day pickaxe!");
  312.                                 });
  313.                             });
  314.                         } else {
  315.                             client.say(channel, user['display-name'] + ", you don't have enough points.");
  316.                         }
  317.                     });
  318.                 }
  319.             } else {
  320.                 client.say(channel, "Deal of the day: Silver Pickaxe (up to 9 points, delay of 180s) - Cost: 800 points - !dealoftheday buy");
  321.             }
  322.  
  323.             con.escape();
  324.         break;
  325.  
  326.         case "!leaderboard":
  327.             var edit = con.query('SELECT * FROM users ORDER BY points DESC',
  328.             function(err, res) {
  329.                 if (err) log(err, "yellow");
  330.                 var board = "";
  331.  
  332.                 if (res.length < 10) {
  333.                     for (var i = 0; i < res.length; i++) {
  334.                         board += "#" + (i + 1) + " " + res[i].username + " (" + res[i].points + " pts), ";
  335.                     }
  336.                 } else {
  337.                     for (var i = 0; i < 10; i++) {
  338.                         board += "#" + (i + 1) + " " + res[i].username + " (" + res[i].points + " pts), ";
  339.                     }
  340.                 }
  341.                
  342.                 client.say(channel, "Leaderboard: " + board);
  343.  
  344.             });
  345.  
  346.             con.escape();
  347.         break;
  348.  
  349.         case "!stake": // !stake join/create (username/amount)
  350.             var split = message.split(" ");
  351.             if (split.length == 3) {
  352.                 switch (split[1]) {
  353.                     case "join":
  354.                     var edit = con.query('SELECT * FROM stakes WHERE username = ?', split[2],
  355.                     function(err, res) {
  356.                         if (err) log(err, "yellow");
  357.                         if (res.length == 1) {
  358.                             var staker = res[0].username;
  359.                             var wager = res[0].wager;
  360.                             if (staker == user['display-name']) {
  361.                                 client.say(channel, user['display-name'] + ", you can't join your own stake.");
  362.                             } else {
  363.                                 var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  364.                                 function(err, res) {
  365.                                     if (err) log(err, "yellow");
  366.                                     if (res.length == 1) {
  367.                                         if (res[0].points >= wager) {
  368.                                             var edit = con.query('UPDATE users SET points = points - ? WHERE username = ?', [wager, user['display-name']],
  369.                                             function(err, res) {
  370.                                                 if (err) log(err, "yellow");
  371.                                             });
  372.  
  373.                                             var stakerRoll = Math.round(Math.random() * 100);
  374.                                             var callerRoll = Math.round(Math.random() * 100);
  375.                                             if (stakerRoll >= callerRoll) {
  376.                                                 client.say(channel, staker + ": " + stakerRoll + " vs. " + user['display-name'] + ": " + callerRoll + " - " + staker + " wins " + (wager * 2) + " points.");
  377.                                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [(wager * 2), staker],
  378.                                                 function(err, res) {
  379.                                                     if (err) log(err, "yellow");
  380.                                                 });
  381.                                             } else {
  382.                                                 client.say(channel, staker + ": " + stakerRoll + " vs. " + user['display-name'] + ": " + callerRoll + " - " + user['display-name'] + " wins " + (wager * 2) + " points.");
  383.                                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [(wager * 2), user['display-name']],
  384.                                                 function(err, res) {
  385.                                                     if (err) log(err, "yellow");
  386.                                                 });
  387.                                             }
  388.  
  389.                                             var edit = con.query('DELETE FROM stakes WHERE username = ?', staker,
  390.                                             function(err, res) {
  391.                                                 if (err) log(err, "yellow");
  392.                                             });
  393.  
  394.                                             var edit = con.query('UPDATE users SET hasStake = 0 WHERE username = ?', staker,
  395.                                             function(err, res) {
  396.                                                 if (err) log(err, "yellow");
  397.                                             });
  398.                                         } else {
  399.                                             client.say(channel, user['display-name'] + ", you don't have enough points.");
  400.                                         }
  401.                                     }
  402.                                 });
  403.                             }
  404.                         } else {
  405.                             client.say(channel, split[2] + " doesn't have an active stake.");
  406.                         }
  407.                     });
  408.                     break;
  409.                     case "create":
  410.                     var edit = con.query('SELECT * FROM users WHERE username = ?', user['display-name'],
  411.                     function(err, res) {
  412.                         if (err) log(err, "yellow");
  413.                         if (res.length == 1) {
  414.                             if (res[0].points >= split[2]) {
  415.                                 if (res[0].hasStake == 0) {
  416.                                     var edit = con.query('UPDATE users SET points = points - ? WHERE username = ?', [split[2], user['display-name']],
  417.                                     function(err, res) {
  418.                                         if (err) log(err, "yellow");
  419.                                         var post = {username: user['display-name'], wager: split[2]};
  420.                                         var edit = con.query('INSERT INTO stakes SET ?', post,
  421.                                         function(err, res) {
  422.                                             if (err) log(err, "yellow");
  423.                                             log(user['display-name'] + " posted wager of " + split[2] + ".", "cyan");
  424.                                             client.say(channel, user['display-name'] + " has placed opened a stake for " + split[2] + " points.");
  425.                                         });
  426.                                         var edit = con.query('UPDATE users SET hasStake = 1 WHERE username = ?', user['display-name'],
  427.                                         function(err, res) {
  428.                                             if (err) log(err, "yellow");
  429.                                         });
  430.                                     });
  431.                                 } else {
  432.                                     client.say(channel, user['display-name'] + ", you already have an active stake.");
  433.                                 }
  434.                                
  435.                             } else {
  436.                                 client.say(channel, user['display-name'] + ", you do not have enough points.");
  437.                             }
  438.                         }
  439.                     });
  440.                     break;
  441.                 }
  442.             } else if (split.length == 2) {
  443.                 if (split[1] == "list") {
  444.                     var edit = con.query('SELECT * FROM stakes',
  445.                     function(err, res) {
  446.                         if (err) log(err, "yellow");
  447.                        
  448.                         var result = "";
  449.                         for (var i = 0; i < res.length; i++) {
  450.                             result += res[0].username + " (" + res[0].wager + " pts), ";
  451.                         }
  452.  
  453.                         if (result == "") {
  454.                             client.say(channel, "There are no active stakes.");
  455.                         } else {
  456.                             client.say(channel, result);
  457.                         }
  458.                     });
  459.                 }
  460.             } else {
  461.                 client.say(channel, "To stake, use !stake create amount. To join a stake, use !stake join username. To view all stakes, use !stake list.");
  462.             }
  463.  
  464.             con.escape();
  465.         break;
  466.  
  467.         case "!active":
  468.             var active = "Active viewers: ";
  469.             var edit = con.query('SELECT * FROM users',
  470.             function(err, res) {
  471.                 if (err) log(err, "yellow");
  472.                 for (var i = 0; i < res.length; i++) {
  473.                     if (res[i].isActive == 1) {
  474.                         active += res[i].username + ", ";
  475.                     }
  476.                 }
  477.                 client.say(channel, active);
  478.             });
  479.         break;
  480.  
  481.         case "!melons":
  482.             client.say(channel, "I currently have a growing collection of over 40,000 watermelons. If you wish to donate, ask for my location in chat. Every 20 watermelons donated will earn you 1 point.");
  483.         break;
  484.  
  485.         case "!coins":
  486.             client.say(channel, "Want some GP for your points? You can ask to trade from 50,000 to 200,000 points for an equal amount in GP! You can only do this once per week.");
  487.         break;
  488.  
  489.         case "!welcome":
  490.             client.say(channel, "Welcome to my channel. There isn't a clear schedule as to what I do so expect something different every once in a while. Consider dropping a follow if you enjoy the stream!");
  491.         break;
  492.  
  493.         case "!today":
  494.             client.say(channel, "Todays drops: Long Bone (Troll)");
  495.         break;
  496.  
  497.         case "!goals":
  498.             client.say(channel, "My current goals for the account are: all stats to level 60, base 75 combat stats, 70 slayer.");
  499.         break;
  500.  
  501.         case "!yesterday":
  502.             client.say(channel, "Yesterdays drops: None");
  503.         break;
  504.     }
  505. });
  506.  
  507. function getPickaxe() { // trash, common, uncommon, rare, epic, mythical, legendary
  508.     var pickaxe = {name: "", output: 0, delay: 0, rarity: "common"};
  509.     var materials = ["Bronze", "Copper", "Tin", "Ghostly", "Invisible", "Runite", "Adamant", "Mithril", "Steel", "Dragon", "Mystical", "Iron", "Haunted", "Mossy", "Robotic", "Crystal", "Flame", "Ice", "Corrupted", "Blessed", "Ancient"];
  510.  
  511.     pickaxe.name = materials[Math.floor(Math.random() * materials.length)] + " Pickaxe";
  512.  
  513.     var rand = Math.random();
  514.     if (rand >= 0 && rand < 0.5) {
  515.         pickaxe.output = Math.round(Math.random() * 5) + 3;
  516.         pickaxe.delay = Math.round(Math.random() * 30) + 110;
  517.         pickaxe.rarity = "common";
  518.     } else if (rand >= 0.5 && rand < 0.8) {
  519.         pickaxe.output = Math.round(Math.random() * 8) + 3;
  520.         pickaxe.delay = Math.round(Math.random() * 16) + 85;
  521.         pickaxe.rarity = "uncommon";
  522.     } else if (rand >= 0.8 && rand < 0.95) {
  523.         pickaxe.output = Math.round(Math.random() * 11) + 3;
  524.         pickaxe.delay = Math.round(Math.random() * 10) + 60;
  525.         pickaxe.rarity = "rare";
  526.     } else if (rand >= 0.95 && rand < 0.98) {
  527.         pickaxe.output = Math.round(Math.random() * 15) + 5;
  528.         pickaxe.delay = Math.round(Math.random() * 7) + 40;
  529.         pickaxe.rarity = "epic";
  530.     } else if (rand >= 0.98 && rand < 0.999) {
  531.         pickaxe.output = Math.round(Math.random() * 23) + 5;
  532.         pickaxe.delay = Math.round(Math.random() * 5) + 25;
  533.         pickaxe.rarity = "mythical";
  534.     } else if (rand >= 0.999 && rand < 0.9999) {
  535.         pickaxe.output = Math.round(Math.random() * 30) + 7;
  536.         pickaxe.delay = Math.round(Math.random() * 3) + 10;
  537.         pickaxe.rarity = "legendary";
  538.     } else if (rand >= 0.9999 && rand <= 1) {
  539.         pickaxe.output = Math.round(Math.random() * 45) + 7;
  540.         pickaxe.delay = Math.round(Math.random() * 2) + 5;
  541.         pickaxe.rarity = "impossible";
  542.     }
  543.  
  544.     return pickaxe.name + "/" + pickaxe.output + "/" + pickaxe.delay + "/" + pickaxe.rarity;
  545. }
  546.  
  547. function mine(username) {
  548.     var edit = con.query('SELECT * FROM users WHERE username = ?', username,
  549.         function(err, res) {
  550.             if (err) log(err, "yellow");
  551.             if (res.length == 1) {
  552.                 if (res[0].isMining == 0) {
  553.                     client.say(channel, username + " sets out on a mining trip, you will return with points soon.");
  554.                     var split = res[0].miningPickaxe.split("/");
  555.                     var pickaxe = {name: split[0], output: split[1], delay: split[2]};
  556.  
  557.                     var edit = con.query('UPDATE users SET isMining = 1 WHERE username = ?', username,
  558.                         function(err, res) {
  559.                             if (err) log(err, "yellow");
  560.                             timeout = setTimeout(function() {
  561.                                 var reward = Math.floor(Math.random() * pickaxe.output) + 1;
  562.                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [reward, username],
  563.                                 function(err, res) {
  564.                                     if (err) log(err, "yellow");
  565.                                     client.say(channel, username + " returns from a mining adventure with a bag filled with points. (+" + reward + " points, +" + reward + " XP)");
  566.                                     var edit = con.query('UPDATE users SET isMining = 0 WHERE username = ?', username,
  567.                                     function(err, res) {
  568.                                         if (err) log(err, "yellow");
  569.                                         var edit = con.query('UPDATE users SET miningXP = miningXP + ? WHERE username = ?', [reward, username],
  570.                                         function(err, res) {
  571.                                             if (err) log(err, "yellow");
  572.                                         });
  573.                                     });
  574.  
  575.                                 });
  576.  
  577.                                 var event = Math.random();
  578.  
  579.  
  580.                             }, pickaxe.delay * 1000);
  581.                         });
  582.                 } else {
  583.                     client.say(channel, "You are already on a mining trip, " + username + " please wait.");
  584.                 }
  585.             }
  586.         });
  587.  
  588.     con.escape();
  589. }
  590.  
  591. function gamble(amount, username) {
  592.     var check = con.query('SELECT * FROM users WHERE username LIKE ?', username,
  593.         function(err, res) {
  594.             if (res.length == 1) {
  595.                 var all = res[0].points;
  596.                 if (amount == "all") {
  597.                     var edit = con.query('UPDATE users SET points = 0 WHERE username = ?', [all, username],
  598.                         function(err, res) {
  599.                             if (err) log(err, "yellow");
  600.                             var roll = Math.round(Math.random() * 100);
  601.  
  602.                             if (roll > 55 && roll != 100) {
  603.                                 client.say(channel, username + " rolled a " + roll + ", winning " + (all * 2) + " points.");
  604.                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [(all * 2), username],
  605.                                 function(err, res) {
  606.                                     if (err) log(err, "yellow");
  607.                                 });
  608.                             } else if (roll == 100) {
  609.                                 var multiplier = Math.round(Math.random() * 4) + 1;
  610.                                 client.say(channel, username + " rolled a 100, multiplier win x" + multiplier + " totaling " + (all * multiplier) + " points!");
  611.                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [(all * multiplier), username],
  612.                                 function(err, res) {
  613.                                     if (err) log(err, "yellow");
  614.                                 });
  615.                             } else {
  616.                                 client.say(channel, username + " rolled a " + roll + ", losing " + all + " points.");
  617.                             }
  618.                         });
  619.                 } else if (res[0].points >= amount) {
  620.                     var edit = con.query('UPDATE users SET points = points - ? WHERE username = ?', [amount, username],
  621.                         function(err, res) {
  622.                             if (err) log(err, "yellow");
  623.                             var roll = Math.round(Math.random() * 100);
  624.  
  625.                             if (roll > 55 && roll != 100) {
  626.                                 client.say(channel, username + " rolled a " + roll + ", winning " + (amount * 2) + " points.");
  627.                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [(amount * 2), username],
  628.                                 function(err, res) {
  629.                                     if (err) log(err, "yellow");
  630.                                 });
  631.                             } else if (roll == 100) {
  632.                                 var multiplier = Math.round(Math.random() * 4) + 1;
  633.                                 client.say(channel, username + " rolled a 100, multiplier win x" + multiplier + " totaling " + (amount * multiplier) + " points!");
  634.                                 var edit = con.query('UPDATE users SET points = points + ? WHERE username = ?', [(amount * multiplier), username],
  635.                                 function(err, res) {
  636.                                     if (err) log(err, "yellow");
  637.                                 });
  638.                             } else {
  639.                                 client.say(channel, username + " rolled a " + roll + ", losing " + amount + " points.");
  640.                             }
  641.                         });
  642.                 } else {
  643.                     client.say(channel, "You don't have enough points, try !mining.");
  644.                 }
  645.             }
  646.         });
  647.  
  648.     con.escape();
  649. }
  650.  
  651. function sayPoints(username) {
  652.     var check = con.query('SELECT * FROM users WHERE username = ?', username,
  653.         function(err, res) {
  654.             if (res.length == 1) {
  655.                 client.say(channel, username + "'s points: " + res[0].points);
  656.             }
  657.         });
  658.  
  659.     con.escape();
  660. }
Add Comment
Please, Sign In to add comment