Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2018
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.89 KB | None | 0 0
  1.  
  2. var admin = '76561198272679735'; // STEAM ID 64 OF YOUR MAIN ACCOUNT WHERE YOU WANT TO RECIEVE YOUR COMMISSION : GET IT AT HTTP://WWW.STEAMID.IO/
  3.  
  4. // CSGO.NETWORK - New information required
  5.  
  6. var botsteamid =''; // STEAM ID 64 OF YOUR BOT ACCOUNT : GET IT AT HTTP://WWW.STEAMID.IO/
  7. var shared_secret =''; // SHARED SECRET CODE YOU CAN GET IT THROUGH : 2FA / STEAM DESKTOP AUTHENTICATOR ( BOTH OPTIONS ARE INCLUDED )
  8. var identity_secret=''; // IDENTITY SECRET CODE YOU CAN GET IT THROUGH : 2FA / STEAM DESKTOP AUTHENTICATOR ( BOTH OPTIONS ARE INCLUDED )
  9.  
  10. // CSGO.NETWORK - New Libraries
  11. var SteamTotp = require('steam-totp'); // CSGO.NETWORK - This library generates the key
  12. var SteamConfirm = require('steamcommunity-mobile-confirmations'); // CSGO.NETWORK - This library accepts all outgoing trades = sends the winnings to the user in time
  13. var pooling_interval = 10000; // CSGO.NETWORK - This is how often it will check for outgoing trade confirmations - Current time: 10 seconds
  14.  
  15.  
  16. var logOnOptions = {
  17. accountName: 'theguywithnoppl', // BOT ACCOUNT LOGIN USERNAME
  18. password: '', // BOT ACCOUNT LOGIN PASSWORD
  19. twoFactorCode: SteamTotp.generateAuthCode(shared_secret) // CSGO.NETWORK - The code is generated here like it would be shown on your phone every time you log in
  20. };
  21. var GameTime = 120;
  22.  
  23.  
  24. ////
  25.  
  26. var authCode = ''; // CSGO.NETWORK - LEAVE THIS EMPTY OR IT MIGHT NOT WORK AT ALL!
  27.  
  28. // CSGO.NETWORK - I added this part - This creates the device ID of your ,,mobile device" - Requires a new library: crypto
  29. var hash = require('crypto').createHash('sha1');
  30. hash.update(Math.random().toString());
  31. hash = hash.digest('hex');
  32. var device_id = '-114:' + hash; // CSGO.NETWORK - This is the only part I'm concerned about, just because it says ,,android"
  33.  
  34. var globalSessionID;
  35. if (require('fs').existsSync('sentry_'+logOnOptions['accountName']+'.hash')) {
  36. logOnOptions['shaSentryfile'] = require('fs').readFileSync('sentry_'+logOnOptions['accountName']+'.hash');
  37. } else if(require('fs').existsSync('ssfn_'+logOnOptions['accountName'])) {
  38. var sha = require('crypto').createHash('sha1');
  39. sha.update(require('fs').readFileSync('ssfn_'+logOnOptions['accountName']));
  40. var sentry = new Buffer(sha.digest(), 'binary');
  41. logOnOptions['shaSentryfile'] = sentry;
  42. require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', sentry);
  43. console.log('Converting ssfn to sentry file!');
  44. console.log('Now you can remove ssfn_'+logOnOptions['accountName']);
  45. } else if (authCode != '') {
  46. logOnOptions['authCode'] = authCode;
  47. }
  48.  
  49. var sitename;
  50.  
  51. sitename = "csgobumble.com"; // PUT YOUR SITE NAME HERE , PUT IT LIKE THIS STRUCTURE : YOURSITE.COM
  52. var Steam = require('steam');
  53. var SteamTradeOffers = require('steam-tradeoffers');
  54. var mysql = require('mysql');
  55. var request = require("request");
  56.  
  57.  
  58. var apik = ""; // GO ON THE BOTS ACCOUNT AND CREATE AN API KEY ( IT HAS TO BE THROUGH THE BOTS ACCOUNT )
  59.  
  60. var mysqlInfo;
  61. mysqlInfo = {
  62. host : 'localhost', // MYSQL , LEAVE IT AS LOCALHOST IF YOU RUN IT ON THE SAME SERVER AS THE WEBSITE AND DATABASE
  63. user : 'root', // MYSQL USERNAME
  64. password : '', // MYSQL PASSWORD
  65. database : 'username', // MYSQL DATABASENAME
  66. charset : 'utf8_general_ci'
  67. };
  68.  
  69. var mysqlConnection = mysql.createConnection(mysqlInfo);
  70.  
  71. var steam = new Steam.SteamClient();
  72. var offers = new SteamTradeOffers();
  73.  
  74. var recheck = true;
  75.  
  76. steam.logOn(logOnOptions);
  77.  
  78. steam.on('debug', function(text){
  79. console.log(text);
  80. require('fs').appendFile('debug.log', text+'\n');
  81. });
  82.  
  83. function getUserName(steamid) {
  84. getUserInfo(steamid, function(error, data){
  85. if(error) console.log("getUserNameError: "+error);
  86. var datadec = JSON.parse(JSON.stringify(data.response));
  87. console.log("getUserName: "+datadec.players[0].personaname);
  88. return (datadec.players[0].personaname);
  89. });
  90. }
  91.  
  92. function is_float(mixed_var) {
  93.  
  94. return +mixed_var === mixed_var && (!isFinite(mixed_var) || !! (mixed_var % 1));
  95. }
  96.  
  97.  
  98. function proceedWinners() {
  99. var url = 'http://'+sitename+'/getwinner34634f.php';
  100. console.log("Doing proceedWinners: " + url);
  101. request(url, function(error, response, body){});
  102. }
  103.  
  104. function getUserInfo(steamids,callback) {
  105. var url = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+apik+'&steamids='+ steamids + '&format=json';
  106. request({
  107. url: url,
  108. json: true
  109. }, function(error, response, body){
  110. if(!error && response.statusCode === 200){
  111. callback(null, body);
  112. } else if (error) {
  113. console.log("getUserInfoError: "+error);
  114. getUserInfo(steamids,callback);
  115. }
  116. });
  117. }
  118.  
  119. function addslashes(str) {
  120. str=str.replace(/\\/g,'\\\\');
  121. str=str.replace(/\'/g,'\\\'');
  122. str=str.replace(/\"/g,'\\"');
  123. str=str.replace(/\0/g,'\\0');
  124. return str;
  125. }
  126.  
  127. var locked=false,proceeded;
  128. var itemscopy;
  129. var detected=false;
  130. var detected2=false;
  131. var endtimer = -1;
  132. function weblogon() { // CSGO.NETWORK - I have completely modified this part, added: API Key to the offers.setup, which is why I think they should use the api from the bot
  133. steam.webLogOn(function(newCookie) {
  134. offers.setup({
  135. sessionID: globalSessionID,
  136. webCookie: newCookie,
  137. APIKey: apik
  138. }, function(err)
  139. {
  140. if(err)
  141. {
  142. console.log(err);
  143. }
  144. var steamapi=apik; // CSGO.NETWORK - This part accepts the outgoing trades so you can send the winnings to users
  145. var SteamcommunityMobileConfirmations = require('steamcommunity-mobile-confirmations');
  146. var steamcommunityMobileConfirmations = new SteamcommunityMobileConfirmations(
  147. {
  148. steamid: botsteamid,
  149. identity_secret: identity_secret,
  150. device_id: device_id, // Generated on the top of the script
  151. webCookie: newCookie,
  152. });
  153. setInterval(function(){
  154. checkConfirmations(steamcommunityMobileConfirmations)
  155. }, pooling_interval);
  156. if (err)
  157. {
  158. console.log(err);
  159. }
  160. });
  161. });
  162. }
  163.  
  164. // CSGO.NETWORK - This part accepts outgoing trades = winnings sent out by the bot.
  165. function checkConfirmations(steamcommunityMobileConfirmations){
  166. steamcommunityMobileConfirmations.FetchConfirmations((function (err, confirmations)
  167. {
  168. if (err)
  169. {
  170. console.log(err);
  171. return;
  172. }
  173. if(confirmations.length>0)
  174. {
  175. console.log('[SERVER] Received ' + confirmations.length + ' confirmations');
  176. }
  177. if ( ! confirmations.length)
  178. {
  179. return;
  180. }
  181. steamcommunityMobileConfirmations.AcceptConfirmation(confirmations[0], (function (err, result)
  182. {
  183. if (err)
  184. {
  185. console.log(err);
  186. return;
  187. }
  188. console.log('steamcommunityMobileConfirmations.AcceptConfirmation result: ' + result);
  189. }).bind(this));
  190. }).bind(this));
  191. }
  192.  
  193. function sendoffers(){
  194. console.log("Currently in sendoffers");
  195. detected2 = false;
  196. offers.loadMyInventory({
  197. appId: 730,
  198. contextId: 2
  199. }, function(err, itemx) {
  200. if(err) {
  201. weblogon();
  202. setTimeout(sendoffers,2000);
  203. return;
  204. }
  205. if(detected2 == true) {
  206. return;
  207. }
  208. detected2 = true;
  209. itemscopy = itemx;
  210. detected = false;
  211. mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
  212. if(err) {
  213. console.log("sendoffers > mysqlConnection.query Error: " + err);
  214. return;
  215. }
  216. if(detected == true) {
  217. console.log("sendoffers > detected == true");
  218. return;
  219. }
  220. detected = true;
  221. for(var i=0; i < row.length; i++) {
  222. var gameid = row[i].id;
  223. var sendItems = (row[i].items).split('/');
  224. var item=[],num=0;
  225. for (var x = 0; x < itemscopy.length; x++) {
  226. for(var j=0; j < sendItems.length; j++) {
  227. if (itemscopy[x].tradable && (itemscopy[x].market_name).indexOf(sendItems[j]) == 0) {
  228. sendItems[j] = "hgjhgnhgjgnjghjjghjghjghjhgjghjghjghngnty";
  229. itemscopy[x].market_name = "fgdfgdfgdfgdfgfswfewefewrfewrewrewr";
  230. item[num] = {
  231. appid: 730,
  232. contextid: 2,
  233. amount: itemscopy[x].amount,
  234. assetid: itemscopy[x].id
  235. }
  236. num++;
  237. }
  238. }
  239. }
  240. if (num > 0) {
  241. var gamenum = row[i].id;
  242. offers.makeOffer ({
  243. partnerSteamId: row[i].userid,
  244. itemsFromMe: item,
  245. accessToken: row[i].token,
  246. itemsFromThem: [],
  247. message: 'Congratulations! You won jackpot #'+gamenum
  248. }, function(err, response){
  249. if (err) {
  250. console.log("sendoffers > offers.makeOffer > function Error: "+err);
  251. return;
  252. }
  253. mysqlConnection.query('UPDATE `queue` SET `status`=\'sent '+response+'\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
  254. if (err){
  255. console.log("sendoffers > offer.makeOffer > mysqlConnection.query > err Error: "+err);
  256. }
  257. console.log('Trade offer for queue '+gamenum+' sent!');
  258. });
  259. }
  260. }
  261. });
  262. })}
  263.  
  264. (function() {
  265. /**
  266. * Decimal adjustment of a number.
  267. *
  268. * @param {String} type The type of adjustment.
  269. * @param {Number} value The number.
  270. * @param {Integer} exp The exponent (the 10 logarithm of the adjustment base).
  271. * @returns {Number} The adjusted value.
  272. */
  273. function decimalAdjust(type, value, exp) {
  274. // If the exp is undefined or zero...
  275. if (typeof exp === 'undefined' || +exp === 0) {
  276. return Math[type](value);
  277. }
  278. value = +value;
  279. exp = +exp;
  280. // If the value is not a number or the exp is not an integer...
  281. if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
  282. return NaN;
  283. }
  284. // Shift
  285. value = value.toString().split('e');
  286. value = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));
  287. // Shift back
  288. value = value.toString().split('e');
  289. return +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));
  290. }
  291.  
  292. // Decimal round
  293. if (!Math.round10) {
  294. Math.round10 = function(value, exp) {
  295. return decimalAdjust('round', value, exp);
  296. };
  297. }
  298. // Decimal floor
  299. if (!Math.floor10) {
  300. Math.floor10 = function(value, exp) {
  301. return decimalAdjust('floor', value, exp);
  302. };
  303. }
  304. // Decimal ceil
  305. if (!Math.ceil10) {
  306. Math.ceil10 = function(value, exp) {
  307. return decimalAdjust('ceil', value, exp);
  308. };
  309. }
  310. })();
  311. function EndGame() {
  312. console.log("Inside EndGame");
  313. endtimer = -1;
  314. proceedWinners();
  315. setTimeout(sendoffers,1000);
  316. }
  317.  
  318. steam.on('loggedOn', function(result) {
  319. console.log('Logged in!');
  320. steam.setPersonaState(Steam.EPersonaState.LookingToTrade);
  321. steam.addFriend(admin);
  322. steam.sendMessage(admin,"Bumble #1, hello admin!");
  323. });
  324.  
  325. steam.on('webSessionID', function(sessionID) {
  326. globalSessionID = sessionID;
  327. weblogon();
  328. setTimeout(function(){
  329. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, rows, fields) {
  330. if(err){
  331. console.log("webSessionID > setTimeout > mysqlConnection.query > err Error: " + err);
  332. return;
  333. }
  334. mysqlConnection.query('SELECT `starttime` FROM `games` WHERE `id`=\''+rows[0].value+'\'', function(errs, rowss, fieldss) {
  335. if(errs) {
  336. console.log("webSessionID > setTimeout > mysqlConnection.query > mysqlConnection.query > errs Error: "+errs);
  337. return;
  338. }
  339. var timeleft;
  340. if(rowss[0].starttime == 2147483647) timeleft = GameTime;
  341. else {
  342. var unixtime = Math.round(new Date().getTime()/1000.0);
  343. timeleft = rowss[0].starttime+GameTime-unixtime;
  344. if(timeleft < 0) timeleft = 0;
  345. }
  346. if(timeleft != GameTime) {
  347. setTimeout(EndGame,timeleft*1000);
  348. console.log('Restoring game on '+timeleft+'second');
  349. }
  350. });
  351. });
  352. },1500);
  353. });
  354.  
  355. steam.on('friendMsg', function(steamID, message, type) {
  356. if(type != Steam.EChatEntryType.ChatMsg) return;
  357. if(steamID == admin) {
  358. if(message.indexOf("/sendallitems") == 0) {
  359. offers.loadMyInventory({
  360. appId: 730,
  361. contextId: 2
  362. }, function(err, items) {
  363. if(err) {
  364. steam.sendMessage(steamID, 'Trying to send items');
  365. weblogon();
  366. return;
  367. }
  368. var item=[],num=0;
  369. for (var i = 0; i < items.length; i++) {
  370. if (items[i].tradable) {
  371. item[num] = {
  372. appid: 730,
  373. contextid: 2,
  374. amount: items[i].amount,
  375. assetid: items[i].id
  376. }
  377. num++;
  378. }
  379. }
  380. if (num > 0) {
  381. offers.makeOffer ({
  382. partnerSteamId: steamID,
  383. itemsFromMe: item,
  384. itemsFromThem: [],
  385. message: ''
  386. }, function(err, response){
  387. if (err) {
  388. throw err;
  389. }
  390. steam.sendMessage(steamID, 'Offer has been sent with all items!');
  391. });
  392. }
  393. });
  394. } else if(message.indexOf("/send") == 0) {
  395. var params = message.split(' ');
  396. if(params.length == 1) return steam.sendMessage(steamID, 'Use /send itemname]');
  397. offers.loadMyInventory({
  398. appId: 730,
  399. contextId: 2
  400. }, function(err, items) {
  401. if(err) {
  402. steam.sendMessage(steamID, 'Could not load your inventory, try again.');
  403. weblogon();
  404. return;
  405. }
  406. var item=0;
  407. for (var i = 0; i < items.length; i++) {
  408. if((items[i].market_name).indexOf(params[1]) != -1) {
  409. item = items[i].id;
  410. break;
  411. }
  412. }
  413. if (item != 0) {
  414. offers.makeOffer ({
  415. partnerSteamId: steamID,
  416. itemsFromMe: [
  417. {
  418. appid: 730,
  419. contextid: 2,
  420. amount: 1,
  421. assetid: item
  422. }
  423. ],
  424. itemsFromThem: [],
  425. message: ''
  426. }, function(err, response){
  427. if (err) {
  428. throw err;
  429. }
  430. steam.sendMessage(steamID, 'Offer has been sent!');
  431. });
  432. }
  433. });
  434. } else if(message.indexOf("/show") == 0) {
  435. var params = message.split(' ');
  436. offers.loadMyInventory({
  437. appId: 730,
  438. contextId: 2
  439. }, function(err, items) {
  440. if(err) {
  441. steam.sendMessage(steamID, 'Nothing to show.');
  442. weblogon();
  443. return;
  444. }
  445. steam.sendMessage(steamID,'look: ');
  446. for (var i = 0; i < items.length; i++) {
  447. steam.sendMessage(steamID,'http://steamcommunity.com/id/bumble1/inventory/#'+items[i].appid+'_'+items[i].contextid+'_'+items[i].id);
  448. }
  449. });
  450. } else if(message.indexOf("/end") == 0) {
  451. steam.sendMessage(steamID,'Game has ended, offers will be sent to the winners.');
  452. if(endtimer != -1) clearTimeout(endtimer);
  453. EndGame();
  454. } else if(message.indexOf("/code") == 0) { // CSGO.NETWORK - New command
  455. var code = SteamTotp.generateAuthCode(shared_secret);
  456. steam.sendMessage(steamID,'Your login code: ' +code+'');
  457. } else if(message.indexOf("/so") == 0) {
  458. steam.sendMessage(steamID,'Outstanding Offers will be sent now!');
  459. sendoffers();
  460. }
  461. }
  462. getUserInfo(steamID, function(error, data){
  463. if(error) throw error;
  464. var datadec = JSON.parse(JSON.stringify(data.response));
  465. var name = datadec.players[0].personaname;
  466. console.log(name + ': ' + message); // Log it
  467. });
  468. //steam.sendMessage(steamID, 'I\'m a bot that accepts all your unwanted items. If you would like to grab a few crates from me, please request a trade.');
  469. });
  470.  
  471. function in_array(needle, haystack, strict) {
  472. var found = false, key, strict = !!strict;
  473.  
  474. for (key in haystack) {
  475. if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
  476. found = true;
  477. break;
  478. }
  479. }
  480.  
  481. return found;
  482. }
  483.  
  484.  
  485.  
  486. function checkoffers(number) {
  487. console.log("inside checkoffers");
  488. if (number > 0) {
  489. offers.getOffers({
  490. get_received_offers: 1,
  491. active_only: 1,
  492. get_sent_offers: 0,
  493. get_descriptions: 1,
  494. time_historical_cutoff: Math.round(Date.now() / 1000),
  495. language: "en_us"
  496. }, function(error, body) {
  497. if(error) {
  498. console.log("checkoffers > .getOffers > error Error: "+error);
  499. return;
  500. }
  501. if(body.response.trade_offers_received){
  502. console.log('[SERVER] Trade offer incoming');
  503. body.response.trade_offers_received.forEach(function(offer) {
  504. if (offer.trade_offer_state == 2){
  505. if(offer.items_to_give) {
  506. console.log('Declining offer for because already sent 2 offers');
  507. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  508. return;
  509. }
  510. if(offer.items_to_receive == undefined) return;
  511. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) {
  512. if(err){
  513. console.log("checkoffers > getOffers > mysqlConnection > err Error: " + err);
  514. return;
  515. }
  516. if(offer.items_to_receive.length > row[0].value) {
  517. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  518. offer.items_to_receive = [];
  519. var unixtime = Math.round(new Date().getTime()/1000.0);
  520. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'too much items\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {
  521. if (err){
  522. console.log("checkoffers > getOffers >mysqlConnection > mysqlConnection INSERT INTO > err Error: "+err);
  523. }
  524. });
  525. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Sent too many skins');
  526. return;
  527. }
  528. });
  529. var delock = false;
  530. offers.loadPartnerInventory({partnerSteamId: offer.steamid_other, appId: 730, contextId: 2, tradeOfferId: offer.tradeofferid, language: "en"}, function(err, hitems) {
  531. if(err) {
  532. console.log("checkoffers > getOffers > body.response.trade_offers.received.forEach > loadPartnerInventory > err Error: "+err);
  533. weblogon();
  534. recheck = true;
  535. return;
  536. }
  537. if(delock == true) return;
  538. delock = true;
  539. var items = offer.items_to_receive;
  540. var wgg=[],num=0;
  541. for (var i = 0; i < items.length; i++) {
  542. for(var j=0; j < hitems.length; j++) {
  543. if(items[i].assetid == hitems[j].id) {
  544. wgg[num] = hitems[j];
  545. num++;
  546. break;
  547. }
  548. }
  549. }
  550. var price=[];
  551. for(var i=0; i < num; i++) {
  552. if(wgg[i].appid != 730) {
  553. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  554. var unixtime = Math.round(new Date().getTime()/1000.0);
  555. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'only csgo items\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  556. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: User sent a non-CSGO item');
  557. return;
  558. }
  559. if(wgg[i].market_name.indexOf("Souvenir") != -1) {
  560. var unixtime = Math.round(new Date().getTime()/1000.0);
  561. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  562. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'You can\'\t bet souvenir weapons\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  563. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: User sent a souvenir skin');
  564. return;
  565. }
  566. var itemname = wgg[i].market_name;
  567. var url = 'http://'+sitename+'/cost.php?item='+encodeURIComponent(itemname);
  568. (function(someshit) {
  569. request(url, function(error, response, body){
  570. if(!error && response.statusCode === 200){
  571. var unixtime = Math.round(new Date().getTime()/1000.0);
  572. if(body == "notfound")
  573. {
  574. offers.declineOffer({tradeOfferId: offer.tradeofferid}); mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Item not available \',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  575. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Can\'t get item price');
  576. }
  577. else {
  578. wgg[someshit].cost = parseFloat(body);
  579. }
  580. }
  581. else
  582. {
  583. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Can\'t get item price');
  584. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  585. }
  586. });})(i)
  587. }
  588. setTimeout(function() {
  589. var sum=0;
  590. for(var i=0; i < num; i++) {
  591. sum += wgg[i].cost;
  592. }
  593. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'minbet\'', function(err, row, fields) {
  594. if(err){
  595. console.log("This is too far in, just ctrlf for this Error: "+err);
  596. }
  597. if(sum < row[0].value) {
  598. num = 0;
  599. var unixtime = Math.round(new Date().getTime()/1000.0);
  600. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  601. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Value is too small.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  602. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Doesn\'t reach the minimum value');
  603. return;
  604. }
  605. });
  606.  
  607. var maxbet=0;
  608. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxbet\'', function(err, row, fields) {
  609. if(err){
  610. console.log("BLAHBLAHJACOBBLAH Error: "+err);
  611. }
  612.  
  613. maxbet=row[0].value;
  614.  
  615. if(sum > row[0].value) {
  616. num = 0;
  617. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  618. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Value is too high.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  619. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Exceeds the maximum skin value');
  620.  
  621. return;
  622. }
  623. });
  624. var ban;
  625. /* mysqlConnection.query('SELECT ban FROM `users` WHERE `steamid`=\''+offer.steamid_other+'\'', function(err, row, fields)
  626. {
  627. if(err){
  628. console.log(err);
  629. return;
  630. }
  631. console.log(row);
  632. ban= row[0].ban;
  633. if(ban==1)
  634. {
  635. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  636. offer.items_to_receive = [];
  637. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'You are banned.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  638. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: User is banned');
  639.  
  640. return;
  641. }
  642. */
  643. var maxritem=50;
  644. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxritem\'', function(err, row, fields)
  645. {
  646. if(err){
  647. console.log("OMFG too much shit Error: "+err);
  648. }
  649. maxritem=row[0].value;
  650. });
  651.  
  652. // CSGO.NETWORK - This part grabs the trade url of the person and gets their token because it is needed to get their escrow duration.
  653. var tradelink;
  654. mysqlConnection.query('SELECT tlink FROM `users` WHERE `steamid`=\''+offer.steamid_other+'\'', function(err, row, fields)
  655. {
  656. if(err){
  657. console.log("ABC Error: "+err);
  658. }
  659. tradelink= row[0].tlink;
  660. if(!tradelink)
  661. {
  662. var unixtime = Math.round(new Date().getTime()/1000.0);
  663. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  664. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'No Tradelink.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {
  665. if (err){
  666. console.log("STUPID FUCKER ERROR: "+err);
  667. }
  668. });
  669. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: User doesn\'t have a Trade URL set')
  670. return;
  671. }
  672. var token = tradelink.slice(-8);
  673.  
  674. offers.getHoldDuration({partnerSteamId: offer.steamid_other, accessToken: token}, function(err, response) // With the steam ID and token it will get the escrow duration
  675. {
  676. if (err)
  677. {
  678. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Can\'t get hold duration, possible Steam server error')
  679. var unixtime = Math.round(new Date().getTime()/1000.0);
  680. console.log("SHITFUCK ERROR: "+err);
  681. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  682. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Steam Server error.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {});
  683. return;
  684. }
  685. if(response.their==0)
  686. {
  687. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields)
  688. {
  689. if(err){
  690. console.log("ABCD Error"+err);
  691. }
  692. var current_game = (row[0].value);
  693.  
  694. mysqlConnection.query('SELECT COUNT(value) as citems FROM `game'+current_game+'` WHERE `userid`=\''+offer.steamid_other+'\'', function(err, row, fields)
  695. {
  696. if(err){
  697. console.log("ABCDE Error: "+err);
  698. }
  699.  
  700. citems = row[0].citems;
  701.  
  702. citems=citems+offer.items_to_receive.length;
  703.  
  704.  
  705.  
  706.  
  707. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields)
  708. {
  709. if(err){
  710. console.log("GJEIGJ ERROR: "+ err);
  711. }
  712. var mi=row[0].value;
  713. if(citems > mi)
  714. {
  715. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  716. offer.items_to_receive = [];
  717. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'You\'ve sent too many skins.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {
  718. if(err){
  719. console.log("FJKDLSFDS ERROR: "+err);
  720. }
  721. });
  722. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Sent too many skins (Double Check)');
  723. return;
  724. }
  725.  
  726. });
  727. mysqlConnection.query('SELECT SUM(value) as cmoney FROM `game'+current_game+'` WHERE `userid`=\''+offer.steamid_other+'\'', function(err, row, fields)
  728. {
  729. if(err){
  730. console.log("TUERI ERROR: "+err);
  731. }
  732. cmoney = row[0].cmoney;
  733. cmoney=cmoney+sum;
  734.  
  735. if(cmoney > maxbet)
  736. {
  737. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  738. offer.items_to_receive = [];
  739. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Value is too high.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {
  740. if(err){
  741. console.log("JGKDLJ ERROR: "+err);
  742. }
  743. });
  744. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Exceeds the maximum value (Double Check)');
  745. return;
  746. }
  747. for(var k=0; k < num; k++)
  748. {
  749. if(!is_float(wgg[k].cost))
  750.  
  751. {
  752. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  753. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'Can\'t get item price.\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {
  754. if(err){
  755. console.log("JGKFLDJGGFDSJKJKL ERROR: "+err);
  756. }
  757. });
  758. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Sent by: '+offer.steamid_other+' - Reason: Can\'t get item price (Double Check)');
  759. return;
  760. }
  761. }
  762.  
  763.  
  764. getUserInfo(offer.steamid_other, function(error, data){
  765. if(error){
  766. console.log("JKFLDSJFKLDSJFKLDSJFKLDSJ ERROR: "+error);
  767. }
  768. var datadec = JSON.parse(JSON.stringify(data.response));
  769. var name = addslashes(datadec.players[0].personaname);
  770. var avatar = (datadec.players[0].avatarfull);
  771. if(num == 0) return;
  772. offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, response) {
  773. if(err){
  774. console.log("THIS IS PROBABLY IT ERROR: "+err);
  775. }
  776. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  777. if(err){
  778. console.log("WTF IS THIS"+err);
  779. }
  780. var current_game = (row[0].value);
  781. mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
  782. if(err){
  783. console.log("BULLSHIT ERROR: "+err);
  784. }
  785. var current_bank = parseFloat(row[0].cost);
  786. var itemsnum = row[0].itemsnum;
  787.  
  788. for(var j=0; j < num; j++) {
  789. var itemn = addslashes(wgg[j].market_name);
  790. mysqlConnection.query('INSERT INTO `game' + current_game + '` (`userid`,`username`,`item`,`color`,`value`,`avatar`,`image`,`from`,`to`) VALUES (\'' + offer.steamid_other + '\',\'' + name + '\',\'' + itemn + '\',\'' + wgg[j].name_color + '\',\'' + wgg[j].cost + '\',\'' + avatar + '\',\'' + wgg[j].icon_url + '\',\''+current_bank+'\'+\'0\',\''+current_bank+'\'+\''+wgg[j].cost+'\')', function(err, row, fields) {
  791. if(err){
  792. console.log("551 spaces long, wtf Error: "+err);
  793. }
  794. });
  795. mysqlConnection.query('UPDATE `games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+wgg[j].cost+'\' WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {
  796. if(err){
  797. console.log("god damned inline brackets Error: "+err);
  798. }
  799. });
  800. current_bank = parseFloat(current_bank + wgg[j].cost);
  801. itemsnum++;
  802. }
  803.  
  804. mysqlConnection.query('SELECT COUNT(DISTINCT userid) AS playersCount FROM `game' + current_game + '`', function(err, rows){
  805. if(err){
  806. console.log("why Error: "+err);
  807. }
  808. if(err){
  809. console.log(err);
  810. return;
  811. }
  812. console.log(rows);
  813.  
  814. someVar = rows[0].playersCount;
  815. console.log('Current Players: ' +someVar);
  816. if(someVar == 2 && items.length > 0 && endtimer==-1) {
  817. console.log('Found 2 Players');
  818. endtimer = setTimeout(EndGame,GameTime*1000);
  819. mysqlConnection.query('UPDATE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {
  820. console.log("what did I say about inline brackets Error: "+err);
  821. });
  822. }
  823. });
  824. if(itemsnum > maxritem)
  825. {
  826. clearTimeout(endtimer);
  827. endtimer = -1;
  828. EndGame();
  829. }
  830. console.log('Accepted trade offer #'+offer.tradeofferid+' by '+name+' ('+offer.steamid_other+')');
  831. });
  832. });
  833. });
  834. });
  835. });
  836. });
  837. });
  838. }
  839. else
  840. {
  841. console.log('[SERVER] Declined offer #'+offer.tradeofferid+' - Reason: User is in escrow')
  842. var unixtime = Math.round(new Date().getTime()/1000.0);
  843. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  844. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`, `win`, `system`, `time`) VALUES (\''+offer.steamid_other+'\',\'You are in escrow!\',\'System\', \'0\', \'1\', \''+unixtime+'\')', function(err, row, fields) {
  845. if(err){
  846. console.log("more inline brackets Error: "+err);
  847. }
  848. });
  849. return;
  850. }
  851. });
  852. });
  853. //});
  854. },3000);
  855. });
  856. }
  857. });
  858. }
  859. });
  860. }
  861. }
  862.  
  863. var pew;
  864. steam.on('tradeOffers', checkoffers);
  865.  
  866. steam.on('sentry', function(data) {
  867. require('fs').writeFileSync('sentry_'+logOnOptions['accountName']+'.hash', data);
  868. });
  869.  
  870. setInterval(function () {
  871. mysqlConnection.query('SELECT 1');
  872. }, 5000);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement