daily pastebin goal
61%
SHARE
TWEET

error...

a guest May 7th, 2016 144 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2.    _____                     _  _   ___    __ __
  3.   / ____|                   | || | / _ \  / //_ |
  4.  | |  __  ___ _ __ __ _  ___| || || (_) |/ /_ | |
  5.  | | |_ |/ _ \ '__/ _` |/ _ \__   _\__, | '_ \| |
  6.  | |__| |  __/ | | (_| | (_) | | |   / /| (_) | |
  7.   \_____|\___|_|  \__, |\___/  |_|  /_/  \___/|_|
  8.                    __/ |                        
  9.                   |___/                          
  10.            
  11.            
  12. The CSGO.Network V2 bot was made by Gregory Steam (Gergo4961) and is the property of CSGO.Network.
  13. If you need any special site/bot customization you can reach me on Steam!
  14.  
  15. Please note that I do not provide support for CSGO.Network.
  16.  
  17. http://steamcommunity.com/id/gergo4961/
  18.  
  19. */               
  20.                  
  21. var Steam = require('steam');
  22. var SteamUser = require('steam-user');
  23. var TradeOfferManager = require('steam-tradeoffer-manager');
  24. var SteamTotp = require('steam-totp');
  25. var SteamConfirm = require('steamcommunity-mobile-confirmations');
  26. var TOTP = require('onceler').TOTP;
  27. var request = require('request');
  28.  
  29. // GENERAL INFORMATION 
  30.  
  31. var sitepath;
  32. sitepath = "csgomaker.com"; // The path to the index.php of your website without HTTP://
  33. var sitename;
  34. sitename = "csgomaker.com"; // The name of your site, it will be shown in the Trade Offer Message
  35.  
  36. var apik = "api"; // Must be the API Key associated with the current bot. Get it here: https://steamcommunity.com/dev/apikey
  37. var admin = 'id'; // The Admin, Main Owner of the site. You will be able to communicate with the bot, ask for the rake items, etc. Can be obtained at steamid.io
  38. var botsteamid = '76561198220673712'; // The bot's steam id, it is required to generate the Device ID and to confirm mobile confirmations. Can be obtained at steamid.io
  39. var identitysecret = ''; // It's required to confirm mobile confirmations
  40. var sharedsecret = ''; // You won't be able to log in without this code
  41. var pooling_interval  = 10000; // 10 seconds by default, the bot checks for outgoing confirmations every X seconds, defined here
  42. var rsecret='='; // Also change this to the same code in endround.php and p2endround.php, this prevents people from randomly breaking your site by ending blank games or ending games sooner
  43.  
  44. var p2=false; // If this is the bot for your Jackpot 2 set this to true
  45.  
  46. // GENERAL INFORMATION
  47.  
  48. // LOGIN DETAILS
  49.  
  50. var details = {
  51.     "accountName"   : "mystuff", // Bot username
  52.     "password"      : "mystuff", // Bot password
  53.     "twoFactorCode" : SteamTotp.generateAuthCode(sharedsecret)
  54. };
  55.  
  56. // LOGIN DETAILS
  57.  
  58.  
  59. var client = new SteamUser();
  60.  
  61. var manager = new TradeOfferManager({
  62.     "steam"    : client,
  63.     "domain"   : "localhost",
  64.     "language" : "en"
  65. })
  66.  
  67. var deviceid=SteamTotp.getDeviceID(botsteamid);
  68.  
  69. if(p2==true)
  70. {
  71.     var pot2='p2';
  72. }
  73. else
  74. {
  75.     var pot2='';
  76. }
  77.  
  78. var GameTime = 120;
  79. var endtimer = -1;
  80.  
  81. // MYSQL INFO
  82.  
  83. var mysql = require('mysql');
  84. var pool = mysql.createPool({
  85.     host     : 'localhost', // MySQL Host
  86.     user     : 'info!', // MySQL User
  87.     password : 'info!', // MySQL Password
  88.     database : 'admin_csgo' // MySQL Databse
  89. });
  90.  
  91. // MYSQL INFO
  92.  
  93. pool.getConnection(function(error,conn){
  94. var queryString = "Select * from users";
  95. conn.query(queryString, function (error,results)
  96. {
  97. if(error)
  98. {
  99. throw error;
  100. }
  101. else {
  102. console.log(results);
  103. }
  104. }
  105. );
  106. conn.release();
  107. });
  108.  
  109. client.logOn(details);
  110.  
  111. function EndGame()
  112. {
  113.     endtimer = -1;
  114.     proceedWinners();
  115.     setTimeout(sendOffers,5000);
  116. }
  117.  
  118. function proceedWinners()
  119. {
  120.     console.log('[SERVER] Ending current game & choosing winner.');
  121.     var url = 'http://'+sitepath+'/'+pot2+'endround.php?secret='+rsecret+'';
  122.     request(url, function(error, response, body)
  123.     {
  124.         if(error)
  125.         {
  126.             console.log('Couldn\'t end round, error: '+error);
  127.         }
  128.     });
  129. }
  130.  
  131. function is_float(mixed_var)
  132. {
  133.  
  134.   return +mixed_var === mixed_var && (!isFinite(mixed_var) || !! (mixed_var % 1));
  135. }
  136.  
  137. function isNumeric(n){
  138.   return (typeof n == "number" && !isNaN(n));
  139. }
  140.  
  141.  
  142. function getUserInfo(steamids,callback)
  143. {
  144.     var url = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+apik+'&steamids='+ steamids + '&format=json';
  145.     request({
  146.         url: url,
  147.         json: true
  148.     }, function(error, response, body){
  149.         if(!error && response.statusCode === 200){
  150.             callback(null, body);
  151.         } else if (error) {
  152.             getUserInfo(steamids,callback);
  153.         }
  154.     });
  155. }
  156.  
  157.  
  158. function addslashes(str)
  159. {
  160.     str=str.replace(/\\/g,'\\\\');
  161.     str=str.replace(/\'/g,'\\\'');
  162.     str=str.replace(/\"/g,'\\"');
  163.     str=str.replace(/\0/g,'\\0');
  164.     return str;
  165. }
  166.  
  167. client.on('loggedOn', function(details){
  168.     client.on('webSession', function(sessionID, cookies){
  169.         manager.setCookies(cookies, function(err) {
  170.         if(err) {
  171.             console.log('setCookies error: '+err);
  172.             process.exit(1); // Fatal error since we couldn't get our API key
  173.             return;
  174.         }
  175.         var steamapi=manager.apiKey;
  176.         var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
  177.         var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
  178.         {
  179.             steamid:         botsteamid,
  180.             identity_secret: identitysecret,
  181.             device_id:       deviceid,
  182.             webCookie:       cookies,
  183.         });
  184.         setInterval(function(){
  185.             checkConfirmations(steamcommunityMobileConfirmations)
  186.         }, pooling_interval);
  187.         console.log("[SERVER] The Bot has logged in!");
  188.         client.addFriend(admin);
  189.         client.chatMessage(admin, "[SERVER] Successfully logged in!");
  190.         client.setPersona(Steam.EPersonaState.LookingToTrade);
  191.        
  192.        
  193.         });
  194.     });
  195. });
  196.  
  197.        
  198. manager.on('newOffer', function(offer)
  199. {
  200.     var proceed=true;
  201.     var steamid=offer.partner.getSteamID64();
  202.     getUserInfo(steamid, function(error, data)
  203.     {
  204.         if(error)
  205.         {
  206.             console.log('getUserInfo error: '+error);
  207.             proceed=false;
  208.             offer.decline(function(err)
  209.             {
  210.                 console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: getUserInfo error');
  211.                 if (err)
  212.                 {
  213.                     console.log('Decline error: '+err);
  214.                 }
  215.                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Servers are busy, try again in a minute!\',\'25\',\'1\')', function(err, row, fields) {});
  216.             });
  217.             return;
  218.         }  
  219.         var datadec = JSON.parse(JSON.stringify(data.response));
  220.         var name = addslashes(datadec.players[0].personaname);
  221.         var avatar = (datadec.players[0].avatarfull);
  222.        
  223.         console.log('[DEBUG] Processing offer #'+offer.id+' from '+name+' (ID:'+steamid+').');
  224.    
  225.         if(offer.itemsToGive.length!=0)
  226.         {
  227.             proceed=false;
  228.             offer.decline(function(err)
  229.             {
  230.                 console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: Asked for a skin on the Bot');
  231.                 if (err)
  232.                 {
  233.                     console.log('Decline error: '+err);
  234.                 }
  235.                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Asking for any of the bots items? Brave!\',\'25\',\'1\')', function(err, row, fields) {});
  236.             });
  237.             return;
  238.         }
  239.         offer.getEscrowDuration(function(err, daysTheirEscrow, daysMyEscrow)
  240.         {
  241.            
  242.             if(err)
  243.             {
  244.                 console.log('getEscrowDuration error: '+err);
  245.                 proceed=false;
  246.                     offer.decline(function(err)
  247.                     {
  248.                         console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: Steam Servers are busy, couldn\'t get escrow duration');
  249.                         if (err)
  250.                         {
  251.                             console.log('Decline error: '+err);
  252.                         }
  253.                         connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Servers are busy, couldnt get escrow duration!\',\'25\',\'1\')', function(err, row, fields) {});                      
  254.                     });
  255.                     return;
  256.                 return;
  257.             }
  258.             else
  259.             {
  260.                 if (daysTheirEscrow != 0)
  261.                 {
  262.                     proceed=false;
  263.                     offer.decline(function(err)
  264.                     {
  265.                         console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User is in Escrow for '+daysTheirEscrow+' days');
  266.                         if (err)
  267.                         {
  268.                             console.log('Decline error: '+err);
  269.                         }
  270.                         connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: You are in Escrow for '+daysTheirEscrow+' days!\',\'25\',\'1\')', function(err, row, fields) {});                       
  271.                     });
  272.                     return;
  273.                 }
  274.                 else
  275.                 {
  276.                     connection.query('SELECT * FROM `'+pot2+'info`', function(err, row)
  277.                     {
  278.                         var minbet = row[3].value;
  279.                         var maxbet = row[7].value;
  280.                         var maxitems = row[4].value;
  281.                         var maxritems = row[10].value;
  282.                         if(offer.itemsToReceive.length>maxitems)
  283.                         {
  284.                             proceed=false;
  285.                             offer.decline(function(err)
  286.                             {
  287.                                 console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User sent more than '+maxitems+' skins');
  288.                                 if (err)
  289.                                 {
  290.                                     console.log('Decline error: '+err);
  291.                                 }
  292.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: We only accept up to '+maxitems+' skins!\',\'25\',\'1\')', function(err, row, fields) {});                      
  293.                                
  294.                             });
  295.                             return;
  296.                         }
  297.                        
  298.                         var items = offer.itemsToReceive;
  299.                         var totaldeposit=0;
  300.                         var depitems=[],skinssent=0;
  301.                         items.forEach(function(item, i , arr)
  302.                         {
  303.                             if (item.appid != 730)
  304.                             {
  305.                                 proceed=false;
  306.                                 offer.decline(function(err)
  307.                                 {
  308.                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User sent a Non-CSGO skin');
  309.                                     if (err)
  310.                                     {
  311.                                         console.log('Decline error: '+err);
  312.                                     }
  313.                                 });
  314.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: We only accept CSGO skins!\',\'25\',\'1\')', function(err, row, fields) {});                    
  315.                                 return;
  316.                             }
  317.                             if(item.market_hash_name.indexOf("Souvenir") != -1)
  318.                             {
  319.                                 proceed=false;
  320.                                 offer.decline(function(err)
  321.                                 {
  322.                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User sent a Souvenir Skin');
  323.                                     if (err)
  324.                                     {
  325.                                         console.log('Decline error: '+err);
  326.                                     }
  327.                                 });
  328.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: No souvenir skins allowed!\',\'25\',\'1\')', function(err, row, fields) {});                    
  329.                                 return;
  330.                             }
  331.                             depitems[i]=[];
  332.                             depitems[i].name=item.market_name;
  333.                             depitems[i].color=item.name_color;
  334.                             depitems[i].url=item.icon_url;
  335.                             depitems[i].value=0;
  336.                             var itemname = item.market_name;
  337.                             var url = 'http://'+sitepath+'/cost.php?item='+encodeURIComponent(itemname);
  338.  
  339.                             (function(someshit) {
  340.                             request(url, function(error, response, body)
  341.                             {
  342.                                 if(!error && response.statusCode === 200)
  343.                                 {
  344.                                     if(body == "notfound")
  345.                                     {
  346.                                         proceed=false;
  347.                                         offer.decline(function(err)
  348.                                         {
  349.                                             console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: Steam Market Issues (Can\'t get the skin\'s value)');
  350.                                             if (err)
  351.                                             {
  352.                                                 console.log('Decline error: '+err);
  353.                                             }
  354.                                         });
  355.                                         connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Market issues!\',\'25\',\'1\')', function(err, row, fields) {});                      
  356.                                         return;
  357.                                     }
  358.                                     else
  359.                                     {
  360.                                         depitems[i].value = parseFloat(body);
  361.                                         totaldeposit+=depitems[i].value;
  362.                                         if(depitems[i].value=="notfound" || depitems[i].value=="NaN" || depitems[i].value=="null" || depitems[i].value=="undefined" || depitems[i].value==0 || !depitems[i].value)
  363.                                         {
  364.                                             proceed=false;
  365.                                             offer.decline(function(err)
  366.                                             {
  367.                                                 console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: Steam Market Issues (Can\'t get the skin\'s value)');
  368.                                                 if (err)
  369.                                                 {
  370.                                                     console.log('Decline error: '+err);
  371.                                                 }
  372.                                             });
  373.                                             connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Market issues!\',\'25\',\'1\')', function(err, row, fields) {});                      
  374.                                             return;
  375.                                         }
  376.                                     }
  377.                                 }  
  378.                                 else
  379.                                 {
  380.                                     proceed=false;
  381.                                     offer.decline(function(err)
  382.                                     {
  383.                                         console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: Steam Market Issues (Can\'t get the skin\'s value)');
  384.                                         if (err)
  385.                                         {
  386.                                             console.log('Decline error: '+err);
  387.                                         }
  388.                                     });
  389.                                     connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Market issues!\',\'25\',\'1\')', function(err, row, fields) {});                      
  390.                                     return;
  391.                                 }
  392.                             });
  393.                             })(i)
  394.                             skinssent++;
  395.                            
  396.                                
  397.                         });
  398.                        
  399.                         setTimeout(function()
  400.                         {  
  401.                        
  402.                             if(totaldeposit>maxbet)
  403.                             {
  404.                                 proceed=false;
  405.                                 offer.decline(function(err)
  406.                                 {
  407.                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User sent too much in skin value');
  408.                                     if (err)
  409.                                     {
  410.                                         console.log('Decline error: '+err);
  411.                                     }
  412.                                 });
  413.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: You can deposit more than $'+maxbet+'\',\'25\',\'1\')', function(err, row, fields) {});                     
  414.                                 return;
  415.                            
  416.  
  417.                             }
  418.                             if(totaldeposit<minbet)
  419.                             {
  420.                                 proceed=false;
  421.                                 offer.decline(function(err)
  422.                                 {
  423.                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User sent below the minimal bet amount ($'+minbet+')');
  424.                                     if (err)
  425.                                     {
  426.                                         console.log('Decline error: '+err);
  427.                                     }
  428.                                 });
  429.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Minimum deposit value: $'+minbet+'\',\'25\',\'1\')', function(err, row, fields) {});                    
  430.                                 return;
  431.                             }
  432.                             if(skinssent>maxitems)
  433.                             {
  434.                                 proceed=false;
  435.                                 offer.decline(function(err)
  436.                                 {
  437.                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User sent too many skins');
  438.                                     if (err)
  439.                                     {
  440.                                         console.log('Decline error: '+err);
  441.                                     }
  442.                                 });
  443.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: We only accept up to '+maxitems+' skins!\',\'25\',\'1\')', function(err, row, fields) {});                      
  444.                                 return;
  445.                                
  446.                             }
  447.                             if(proceed=true)
  448.                             {
  449.                                 connection.query('SELECT * FROM `'+pot2+'info`', function(err, row)
  450.                                 {
  451.  
  452.                                     var cg = row[0].value;
  453.                                     connection.query('SELECT COUNT(value) as skinsin,SUM(value) as moneyin FROM `'+pot2+'game'+cg+'` WHERE `userid`=\''+steamid+'\'', function(err, row, fields)
  454.                                     {
  455.                                         skinsin = row[0].skinsin;
  456.                                         skinsin=skinsin+skinssent;
  457.                                         moneyin = row[0].moneyin;
  458.                                         moneyin=moneyin+totaldeposit;
  459.                                        
  460.                                         if(skinsin>maxitems)
  461.                                         {
  462.                                             offer.decline(function(err)
  463.                                             {
  464.                                                 console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: RECHECK - User sent too many skins');
  465.                                                 if (err)
  466.                                                 {
  467.                                                     console.log('Decline error: '+err);
  468.                                                 }
  469.                                             });
  470.                                             connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: You can not deposit more than '+maxitems+' skins\',\'25\',\'1\')', function(err, row, fields) {});
  471.                                             return;
  472.                                         }
  473.  
  474.                                         if(moneyin > maxbet)
  475.                                         {
  476.                                             offer.decline(function(err)
  477.                                             {
  478.                                                 console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: RECHECK - User sent too much in skin value');
  479.                                                 if (err)
  480.                                                 {
  481.                                                     console.log('Decline error: '+err);
  482.                                                 }
  483.                                             });
  484.                                             connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: You can deposit more than $'+maxbet+'\',\'25\',\'1\')', function(err, row, fields) {});
  485.                                             return;
  486.                                         }
  487.                                         for(var i=0; i < skinssent; i++)
  488.                                         {
  489.                                             if(!isNumeric(depitems[i].value))
  490.                                             {
  491.                                                 offer.decline(function(err)
  492.                                                 {
  493.                                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: RECHECK - Steam Market Issues (Can\'t get the skin\'s value) ');
  494.                                                     if (err)
  495.                                                     {
  496.                                                         console.log('Decline error: '+err);
  497.                                                     }
  498.                                                 });
  499.                                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Market issues!\',\'25\',\'1\')', function(err, row, fields) {});                      
  500.                                                 return;
  501.                                             }
  502.                                         }
  503.                                        
  504.                                         connection.query('SELECT * FROM `users` WHERE `steamid`=\''+steamid+'\'', function(err, row, fields)
  505.                                         {
  506.                                             if(err)
  507.                                             {
  508.                                                 console.log('MYSQL Error: '+err);
  509.                                                 offer.decline(function(err)
  510.                                                 {
  511.                                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: MYSQL Error (as seen above) ');
  512.                                                     if (err)
  513.                                                     {
  514.                                                         console.log('Decline error: '+err);
  515.                                                     }
  516.                                                 });
  517.                                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: MYSQL Error\',\'25\',\'1\')', function(err, row, fields) {});
  518.                                                 return;
  519.                                             }
  520.                                             if(row.length!=0)
  521.                                             {
  522.                                                 ban=row[0].ban;
  523.                                                 tlink=row[0].tlink;
  524.                                                 if(ban==1)
  525.                                                 {
  526.                                                     proceed=false;
  527.                                                     offer.decline(function(err)
  528.                                                     {
  529.                                                         console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User is banned');
  530.                                                         if (err)
  531.                                                         {
  532.                                                             console.log('Decline error: '+err);
  533.                                                         }
  534.                                                     });
  535.                                                     connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: You are banned from betting\',\'25\',\'1\')', function(err, row, fields) {});
  536.                                                     return;
  537.                                                 }
  538.                                                 if(!tlink)
  539.                                                 {
  540.                                                     offer.decline(function(err)
  541.                                                     {
  542.                                                         console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User doesn\'t have a TradeLink set ');
  543.                                                         if (err)
  544.                                                         {
  545.                                                             console.log('Decline error: '+err);
  546.                                                         }
  547.                                                     });
  548.                                                     connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: No Trade URL Set\',\'25\',\'1\')', function(err, row, fields) {});
  549.                                                     return;
  550.                                                 }
  551.                                                 connection.query('SELECT * FROM `'+pot2+'games` WHERE `id`=\''+cg+'\'', function(err, row, fields)
  552.                                                 {
  553.                                                     itemsin=row[0].itemsnum;
  554.                                                     offer.accept(function(err)
  555.                                                     {
  556.                                                         if(err)
  557.                                                         {
  558.                                                             console.log('Accept error: '+err);
  559.                                                             /*if(err!="error: http error 503") Experimental function please do not use
  560.                                                             {
  561.                                                                 return;
  562.                                                             }*/
  563.                                                             doPoll(); // Also experimental
  564.                                                             return;
  565.                                                         }
  566.                                                         for(var i=0; i < skinssent; i++)
  567.                                                         {
  568.                                                             var itemname = addslashes(depitems[i].name);
  569.                                                             connection.query('INSERT INTO `'+pot2+'game' +cg+ '` (`userid`,`username`,`item`,`offerid`,`color`,`value`,`avatar`,`image`) VALUES (\'' + steamid + '\',\'' + name + '\',\'' + itemname + '\',\''+offer.id+'\',\'' + depitems[i].color + '\',\'' + depitems[i].value + '\',\'' + avatar + '\',\'' + depitems[i].url + '\')', function(err, row, fields)
  570.                                                             {
  571.                                                                 if(err)
  572.                                                                 {
  573.                                                                     console.log(err);
  574.                                                                 }
  575.                                                             });
  576.                                                             connection.query('UPDATE `'+pot2+'games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+depitems[i].value+'\' WHERE `id` = \''+cg+'\'', function(err, row, fields) {});
  577.                                                         }
  578.                                                         connection.query('UPDATE `users` SET `skinssent`=`skinssent`+'+skinssent+' WHERE `steamid` = \'' + steamid + '\'', function(err, row, fields) {});
  579.                                                         console.log('[SERVER] Accepted offer #'+offer.id+' from '+name+' (ID:'+steamid+').');
  580.                                                         offer.getReceivedItems(function(err, items)
  581.                                                         {
  582.                                                             if(err)
  583.                                                             {
  584.                                                                 console.log('getReceivedItems SERIOUS GAME BREAKING error: '+err);
  585.                                                             }
  586.                                                             items.forEach(function(item)
  587.                                                             {
  588.                                                                 var itemn=addslashes(item.market_name);
  589.                                                                 connection.query('UPDATE `'+pot2+'game'+cg+'` SET `assetid`=\''+item.id+'\' WHERE `userid` = \'' + steamid + '\' AND `item`=\''+itemn+'\' AND `assetid`=\'\' LIMIT 1', function(err, row, fields) {});
  590.                                                             })
  591.                                                         });
  592.                                                         connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'success\',\'0\',\''+steamid+'\',\'Trade Offer Accepted (Game #'+cg+')!\',\'We wish you Good luck and happy betting!\',\'25\',\'1\')', function(err, row, fields) {});
  593.                                                         connection.query('SELECT COUNT(DISTINCT userid) AS playersCount FROM `'+pot2+'game'+cg+'`', function(err, rows)
  594.                                                         {  
  595.                                                             players = rows[0].playersCount;
  596.                                                             if(players == 1 && skinssent > 0 && endtimer==-1)
  597.                                                             {
  598.                                                                     console.log('[SERVER] Starting the countdown for Game #'+cg+'');
  599.                                                                     endtimer = setTimeout(EndGame,GameTime*1000);
  600.                                                                     connection.query('UPDATE `'+pot2+'games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + cg + '\'', function(err, row, fields) {});
  601.                                                             }
  602.                                                             if(itemsin > maxritems)
  603.                                                             {
  604.                                                                     clearTimeout(endtimer);
  605.                                                                     endtimer = -1;
  606.                                                                     EndGame();
  607.                                                             }
  608.  
  609.                                                         });
  610.                                                     });
  611.                                                    
  612.                                                    
  613.                                                 });
  614.                                             }
  615.                                             else
  616.                                             {
  617.                                                 offer.decline(function(err)
  618.                                                 {
  619.                                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: User is not in the MYSQL Database');
  620.                                                     if (err)
  621.                                                     {
  622.                                                         console.log('Decline error: '+err);
  623.                                                     }
  624.                                                 });
  625.                                                 return;
  626.                                             }
  627.                                            
  628.                                             return;
  629.                                            
  630.                                         });
  631.                                        
  632.  
  633.                                     });
  634.                                 });
  635.                             }
  636.                             else
  637.                             {
  638.  
  639.                                 offer.decline(function(err)
  640.                                 {
  641.                                     console.log('[DEBUG] Declined offer #'+offer.id+' from '+name+' (ID:'+steamid+'). | Reason: Unkown error (proceed = false in node) - Probably Steam Issues');
  642.                                     if (err)
  643.                                     {
  644.                                         console.log('Decline error: '+err);
  645.                                     }
  646.                                 });
  647.                                 connection.query('INSERT INTO `messages` (`type`,`app`,`userid`,`title`,`msg`,`time`,`active`) VALUES (\'error\',\'1\',\''+steamid+'\',\'Trade Offer Declined!\',\'Reason: Steam Issues\',\'25\',\'1\')', function(err, row, fields) {});
  648.                                 return;
  649.                             }
  650.                        
  651.  
  652.                         },2000);
  653.                     });
  654.                 }
  655.             }
  656.         });
  657.     });
  658. });
  659.  
  660.  
  661. client.on('friendMessage#'+admin+'', function(steamID, message)
  662. {
  663.  
  664.     console.log("[SERVER] Admin to Bot: " + message);
  665.     if(message.indexOf("/sendrake") == 0)
  666.     {
  667.         client.chatMessage(admin, '[SERVER] Calling the sendRake function (sends the latest query, call it more times if needed)');
  668.         sendRake(1);
  669.     }
  670.     if(message.indexOf("/sendoffers") == 0)
  671.     {
  672.         client.chatMessage(admin, '[SERVER] Calling the sendOffers function (sends the latest query, call it more times if needed)');
  673.         sendOffers(1);
  674.     }
  675.     if(message.indexOf("/end") == 0)
  676.     {
  677.         client.chatMessage(admin, '[SERVER] Ending the current game!');
  678.         if(endtimer != -1) clearTimeout(endtimer);
  679.         EndGame();
  680.     }
  681.     if(message.indexOf("/offers") == 0)
  682.     {
  683.         connection.query('SELECT ID FROM `'+pot2+'queue` WHERE `status`=\'active\' GROUP BY `id` DESC', function(err, row, fields)
  684.         {
  685.             if(row.length!=0)
  686.             {
  687.                 console.log(row);
  688.                 client.chatMessage(admin, '[SERVER] Check your console for the ID\'s!');
  689.             }
  690.             else
  691.             {
  692.                 client.chatMessage(admin, '[SERVER] There aren\'t any active queue ID\'s.');
  693.             }
  694.         });
  695.     }
  696.     if(message.indexOf("/rakes") == 0)
  697.     {
  698.         connection.query('SELECT ID FROM `'+pot2+'rakeitems` WHERE `status`=\'active\' GROUP BY `id` DESC', function(err, row, fields)
  699.         {
  700.             if(row.length!=0)
  701.             {
  702.                 console.log(row);
  703.                 client.chatMessage(admin, '[SERVER] Check your console for the ID\'s!');
  704.             }
  705.             else
  706.             {
  707.                 client.chatMessage(admin, '[SERVER] There aren\'t any active rake ID\'s.');
  708.             }
  709.         });
  710.     }
  711.  
  712. });
  713.  
  714. function sendOffers(param)
  715. {
  716.     connection.query('SELECT * FROM `'+pot2+'queue` WHERE `status`=\'active\' GROUP BY `id` DESC LIMIT 1', function(err, row, fields)
  717.     {
  718.         if(row.length!=0)
  719.         {
  720.             var assetids=(row[0].assetid).split('/');
  721.             manager.loadInventory(730, 2, true, function (err, inventory)
  722.             {
  723.                 if (err)
  724.                 {
  725.                     console.log(err);
  726.                     if(param==1)
  727.                     {
  728.                         client.chatMessage(admin, '[SERVER] Error while loading the Bot\'s Inventory, try again later boss!');
  729.                     }
  730.                     return;
  731.  
  732.                 }
  733.                 else
  734.                 {
  735.                     var token=row[0].token;
  736.                     var gameid=row[0].id;
  737.                     var message='Congratulations! You won on '+sitename+' in Game #'+gameid+'';
  738.                     var offer = manager.createOffer(row[0].userid);
  739.  
  740.                     inventory.forEach(function(item)
  741.                     {
  742.                         assetids.forEach(function(asset)
  743.                         {
  744.                             if(item.id==asset)
  745.                             {
  746.                                 offer.addMyItem(item);
  747.                             }
  748.                         })
  749.                     })
  750.                     setTimeout(function()
  751.                     {
  752.                         offer.send(message, token, function(err)
  753.                         {
  754.                             if(err)
  755.                             {
  756.                                 console.log('Error sending Trade Offer for Game #'+gameid+':');
  757.                                 console.log(err);
  758.                                 if(param==1)
  759.                                 {
  760.                                     client.chatMessage(admin, '[SERVER] Error while sending the tradeoffer, try again later boss!');
  761.                                 }
  762.                                 return;
  763.                             }
  764.                             connection.query('UPDATE `'+pot2+'queue` SET `status`="sent" WHERE `id`=\''+gameid+'\'');
  765.                             console.log('[SERVER] Trade Offer for Game #'+gameid+' has been successfully sent and is awaiting mobile confirmation.');
  766.                             if(param==1)
  767.                             {
  768.                                 client.chatMessage(admin, '[SERVER] Successfully sent the trade for Game #'+gameid+'!');
  769.                             }                          
  770.                         });
  771.                        
  772.                     },2000);
  773.                 }
  774.             });
  775.         }
  776.         else
  777.         {
  778.             if(param==1)
  779.             {
  780.                 client.chatMessage(admin, '[SERVER] No more Winnings Queries!');
  781.                 return;
  782.             }
  783.         }
  784.     });
  785. }
  786.  
  787. function sendRake(param)
  788. {
  789.     connection.query('SELECT * FROM `'+pot2+'rakeitems` WHERE `status`=\'active\' GROUP BY `id` DESC LIMIT 1', function(err, row, fields)
  790.     {
  791.         if(row.length!=0)
  792.         {
  793.             var assetids=(row[0].assetid).split('/');
  794.             manager.loadInventory(730, 2, true, function (err, inventory)
  795.             {
  796.                 if (err)
  797.                 {
  798.                     if(param==1)
  799.                     {
  800.                         client.chatMessage(admin, '[SERVER] Error while loading the Bot\'s Inventory, try again later boss!');
  801.                     }
  802.                     return;
  803.                 }
  804.                 else
  805.                 {
  806.                     var token=row[0].token;
  807.                     var gameid=row[0].id;
  808.                     var value=row[0].value;
  809.                     var message='Rake for Game #'+gameid+' ($'+value+')';
  810.                     var offer = manager.createOffer(row[0].userid);
  811.  
  812.                     inventory.forEach(function(item)
  813.                     {
  814.                         assetids.forEach(function(asset)
  815.                         {
  816.                             if(item.id==asset)
  817.                             {
  818.                                 offer.addMyItem(item);
  819.                             }
  820.                         })
  821.                     })
  822.                     setTimeout(function()
  823.                     {
  824.                         offer.send(message, token, function(err)
  825.                         {
  826.                             if(err)
  827.                             {
  828.                                 console.log('Error sending Rake for Game #'+gameid+':');
  829.                                 console.log(err);
  830.                                 if(param==1)
  831.                                 {
  832.                                     client.chatMessage(admin, '[SERVER] Error while sending the tradeoffer for the rake, try again later boss!');
  833.                                     return;
  834.                                 }
  835.                                 return;
  836.                             }
  837.                             connection.query('UPDATE `'+pot2+'rakeitems` SET `status`="sent" WHERE `id`=\''+gameid+'\'');
  838.                             console.log('[SERVER] Rake for Game #'+gameid+' has been successfully sent and is awaiting mobile confirmation.');
  839.                             if(param==1)
  840.                             {
  841.                                 client.chatMessage(admin, '[SERVER] Successfully sent the rake for Game #'+gameid+'!');
  842.                             }  
  843.                         });
  844.                        
  845.                     },2000);
  846.                 }
  847.             });
  848.         }
  849.         else
  850.         {
  851.             if(param==1)
  852.             {
  853.                 client.chatMessage(admin, '[SERVER] No more Rake Queries!');
  854.                 return;
  855.             }
  856.         }
  857.     });
  858. }
  859.  
  860. function checkConfirmations(steamcommunityMobileConfirmations){
  861.     steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations)
  862.         {
  863.             if (err)
  864.             {
  865.                 console.log(err);
  866.                 return;
  867.             }
  868.             if(confirmations.length>0)
  869.             {
  870.                 console.log('[SERVER] Received ' + confirmations.length + ' confirmations');
  871.             }
  872.             if ( ! confirmations.length)
  873.             {
  874.                 return;
  875.             }
  876.             steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result)
  877.             {
  878.                 if (err)
  879.                 {
  880.                     console.log(err);
  881.                     return;
  882.                 }
  883.                 console.log('[SERVER] Confirmation handling result: ' + result);
  884.             }).bind(this));
  885.         }).bind(this));
  886. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top