Advertisement
Guest User

Untitled

a guest
Feb 1st, 2017
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 24.06 KB | None | 0 0
  1.  
  2. var mysqlConnection = mysql.createConnection(mysqlInfo);
  3.  
  4. var recheck = true;
  5. var pass = false;
  6. var item = [];
  7. var j = [];
  8. var locked=false,proceeded;
  9. var itemscopy;
  10. var itemascopy;
  11. var detected=false;
  12. var detectedas=false;
  13. var token;
  14.  
  15. var sentryFileName = 'sentry_'+logOnOptions['account_name'];
  16. try {
  17. logOnOptions.sha_sentryfile = getSHA1(fs.readFileSync(sentryFileName));
  18. } catch (e) {
  19. if (authCode !== '') {
  20. logOnOptions.auth_code = authCode;
  21. }
  22. }
  23. if (fs.existsSync('servers')) {
  24. Steam.servers = JSON.parse(fs.readFileSync('servers'));
  25. }
  26.  
  27. var steamClient = new Steam.SteamClient();
  28. var steamUser = new Steam.SteamUser(steamClient);
  29. var steamFriends = new Steam.SteamFriends(steamClient);
  30. var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
  31. var offers = new SteamTradeOffers();
  32.  
  33. steamClient.connect();
  34. steamClient.on('connected', function() {
  35. steamUser.logOn(logOnOptions);
  36. });
  37.  
  38. steamClient.on('logOnResponse', function(logonResp) {
  39. if (logonResp.eresult === Steam.EResult.OK) {
  40. console.log('Logged in!');
  41. steamFriends.setPersonaState(Steam.EPersonaState.Online);
  42. steamFriends.sendMessage(admin, 'Bot is working!');
  43. weblogon();
  44. }
  45. });
  46.  
  47. function weblogon() {
  48. steamWebLogOn.webLogOn(function(sessionID, newCookie) {
  49. getSteamAPIKey({
  50. sessionID: sessionID,
  51. webCookie: newCookie
  52. }, function(err, APIKey) {
  53. community.setCookies(newCookie);
  54. offers.setup({
  55. sessionID: sessionID,
  56. webCookie: newCookie,
  57. APIKey: APIKey
  58. }, function () {
  59. console.log('Cookie Just Set!');
  60. });
  61. });
  62. });
  63. }
  64.  
  65. steamClient.on('debug', function(text){
  66. console.log(text);
  67. require('fs').appendFile('debug.log', text+'\n');
  68. });
  69.  
  70. function getUserName(steamid) {
  71. getUserInfo(steamid, function(error, data){
  72. if(error) throw error;
  73. var datadec = JSON.parse(JSON.stringify(data.response));
  74. return (datadec.players[0].personaname);
  75. });
  76. }
  77.  
  78. var once = false;
  79. var once1 = false;
  80. var once10 = false;
  81. var time = false;
  82. var pass = false;
  83. var through = true;
  84. var trades = true;
  85.  
  86. function proceedWinners() {
  87. if (time == true) {
  88. var url = 'http://'+sitename+'/getwinner3gaqwtfas561faw14634f1.php';
  89. request(url, function(error, response, body){
  90. if (error) {
  91. console.log('Error: '+error);
  92. }
  93. });
  94. console.log('Proceeding winners now!');
  95. through = true;
  96. time = false;
  97. }
  98. }
  99.  
  100. function Acceptinglastbets() {
  101. console.log('Accepting last bets!');
  102. var where = 'accept';
  103. mysqlConnection.query('UPDATE `info` SET `value`=\'false\' WHERE `name`=\''+where+'\'', function(err, row, fields) {});
  104. setTimeout(function(){
  105. mysqlConnection.query('UPDATE `info` SET `value`=\'true\' WHERE `name`=\''+where+'\'', function(err, row, fields) {});
  106. }, 20000);
  107. }
  108.  
  109. function getUserInfo(steamids,callback) {
  110. var url = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+apik+'&steamids='+ steamids + '&format=json';
  111. request({
  112. url: url,
  113. json: true
  114. }, function(error, response, body){
  115. if(!error && response.statusCode === 200){
  116. callback(null, body);
  117. } else if (error) {
  118. getUserInfo(steamids,callback);
  119. }
  120. });
  121. }
  122.  
  123. function addslashes(str) {
  124. str=str.replace(/\\/g,'\\\\');
  125. str=str.replace(/\'/g,'\\\'');
  126. str=str.replace(/\"/g,'\\"');
  127. str=str.replace(/\0/g,'\\0');
  128. return str;
  129. }
  130.  
  131. var locked=false,proceeded;
  132. var itemscopy;
  133. var detected=false;
  134. var detected2=false;
  135. var endtimer = -1;
  136.  
  137. function sendoffers(){
  138. detected2 = false;
  139. offers.loadMyInventory({
  140. appId: 730,
  141. contextId: 2
  142. }, function(err, itemx) {
  143. if(err) {
  144. weblogon();
  145. setTimeout(sendoffers,2000);
  146. return;
  147. }
  148. if(detected2 == true) {
  149. return;
  150. }
  151. detected2 = true;
  152. itemscopy = itemx;
  153. detected = false;
  154. var pass = false;
  155. mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
  156. if (!row.length) return;
  157. if(err) {
  158. return;
  159. }
  160. if (row[0].userid === null || row[0].userid === undefined || row[0].userid == '' || row[0].token === null || row[0].token === undefined || row[0].token == '' || row[0].items === null || row[0].items === undefined || row[0].items == '') {
  161. var gameid = row[0].id;
  162. mysqlConnection.query('UPDATE `queue` SET `status`=\'error\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
  163. console.log('Error sending trade offer!');
  164. Errorsendingtrade();
  165. pass = false;
  166. return;
  167. } else {
  168. pass = true;
  169. }
  170. if(detected == true) {
  171. return;
  172. }
  173. detected = true;
  174. for(var i=0; i < row.length; i++) {
  175. var gameid = row[i].id;
  176. var sendItems = (row[i].assetids).split('/');
  177. var item=[],num=0;
  178. for (var x = 0; x < itemscopy.length; x++) {
  179. for(var j=0; j < sendItems.length; j++) {
  180. if (itemscopy[x].tradable && (itemscopy[x].id).indexOf(sendItems[j]) == 0) {
  181. sendItems[j] = "j";
  182. item[num] = {
  183. appid: 730,
  184. contextid: 2,
  185. amount: itemscopy[x].amount,
  186. assetid: itemscopy[x].id
  187. }
  188. num++;
  189. }
  190. }
  191. }
  192. if (pass == true) {
  193. if (num > 0) {
  194. var gamenum = row[i].id;
  195. offers.makeOffer ({
  196. partnerSteamId: row[i].userid,
  197. itemsFromMe: item,
  198. accessToken: row[i].token,
  199. itemsFromThem: [],
  200. message: 'Your winnings at '+sitename+' game #'+gamenum
  201. }, function(err, response){
  202. if (err) {
  203. console.log('Error Sending Trade Offer! ' +item+ ' And ' +err+ '');
  204. return;
  205. }
  206. mysqlConnection.query('UPDATE `queue` SET `status`=\'sent\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
  207. console.log('Trade offer for queue '+gamenum+' '+item+' sent!');
  208. pass = false;
  209. });
  210. }
  211. }
  212. }
  213. });
  214. })}
  215.  
  216. function EndGame() {
  217. endtimer = -1;
  218. clearTimeout(endtimer);
  219. proceedWinners();
  220. setTimeout(sendoffers,1000);
  221. setTimeout(function(){ once = false; }, 10000);
  222. setTimeout(function(){ once1 = false; }, 10000);
  223. setTimeout(function(){ once10 = false; }, 10000);
  224. }
  225.  
  226. function Errorsendingtrade() {
  227. steam.addFriend(admin);
  228. steam.sendMessage(admin,"Error sending trade!");
  229. }
  230.  
  231. steamClient.on('friendMsg', function(steamID, message, type) {
  232. if(type != Steam.EChatEntryType.ChatMsg) return;
  233. if(steamID == admin) {
  234. if(message.indexOf("/sendallitems") == 0) {
  235. offers.loadMyInventory({
  236. appId: 730,
  237. contextId: 2
  238. }, function(err, items) {
  239. if(err) {
  240. steam.sendMessage(steamID, 'Could not load your inventory , try again!');
  241. weblogon();
  242. return;
  243. }
  244. var item=[],num=0;
  245. for (var i = 0; i < items.length; i++) {
  246. if (items[i].tradable) {
  247. item[num] = {
  248. appid: 730,
  249. contextid: 2,
  250. amount: items[i].amount,
  251. assetid: items[i].id
  252. }
  253. num++;
  254. }
  255. }
  256. if (num > 0) {
  257. offers.makeOffer ({
  258. partnerSteamId: steamID,
  259. itemsFromMe: item,
  260. itemsFromThem: [],
  261. message: ''
  262. }, function(err, response){
  263. if (err) {
  264. throw err;
  265. }
  266. steam.sendMessage(steamID, 'Trade sent!');
  267. });
  268. }
  269. });
  270. } else if(message.indexOf("/send") == 0) {
  271. var params = message.split(' ');
  272. if(params.length == 1) return steam.sendMessage(steamID, 'Format: /send [Skin Name]');
  273. offers.loadMyInventory({
  274. appId: 730,
  275. contextId: 2
  276. }, function(err, items) {
  277. if(err) {
  278. steam.sendMessage(steamID, 'Could not load your inventory , try again!');
  279. weblogon();
  280. return;
  281. }
  282. var item=0;
  283. for (var i = 0; i < items.length; i++) {
  284. if((items[i].market_name).indexOf(params[1]) != -1) {
  285. item = items[i].id;
  286. break;
  287. }
  288. }
  289. if (item != 0) {
  290. offers.makeOffer ({
  291. partnerSteamId: steamID,
  292. itemsFromMe: [
  293. {
  294. appid: 730,
  295. contextid: 2,
  296. amount: 1,
  297. assetid: item
  298. }
  299. ],
  300. itemsFromThem: [],
  301. message: ''
  302. }, function(err, response){
  303. if (err) {
  304. throw err;
  305. }
  306. steam.sendMessage(steamID, 'Trade sent!');
  307. });
  308. }
  309. });
  310. } else if(message.indexOf("/end") == 0) {
  311. steam.sendMessage(steamID,'Ending current game!');
  312. if(endtimer != -1) clearTimeout(endtimer);
  313. EndGame();
  314. }
  315. }
  316. getUserInfo(steamID, function(error, data){
  317. if(error) throw error;
  318. var datadec = JSON.parse(JSON.stringify(data.response));
  319. var name = datadec.players[0].personaname;
  320. console.log(name + ': ' + message); // Log it
  321. });
  322. });
  323.  
  324. var assetas = 0;
  325.  
  326. function checkoffers() {
  327. if (through == true) {
  328. offers.getOffers({
  329. get_received_offers: 10,
  330. active_only: 10,
  331. time_historical_cutoff: Math.round(Date.now() / 1000)
  332. }, function(error, body) {
  333. if(error) {
  334. checkoffers();
  335. return;
  336. }
  337. if(body.response.trade_offers_received){
  338. body.response.trade_offers_received.forEach(function(offer) {
  339. if (offer.trade_offer_state == 2 && offer.trade_offer_state != 11){
  340. console.log('Got New Offers!');
  341. if(offer.items_to_give) {
  342. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  343. return;
  344. }
  345. if(offer.items_to_receive == undefined) return;
  346. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) {
  347. if(offer.items_to_receive.length > row[0].value) {
  348. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  349. offer.items_to_receive = [];
  350. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Too much skins\',\'System\')', function(err, row, fields) {});
  351. return;
  352. }
  353. });
  354. getUserInfo(offer.steamid_other, function(error, data){
  355. if(error) throw error;
  356. var datadec = JSON.parse(JSON.stringify(data.response));
  357. var name = addslashes(datadec.players[0].personaname);
  358. var avatar = (datadec.players[0].avatarfull);
  359. mysqlConnection.query('SELECT * FROM `users` WHERE `steamid` = \'' +offer.steamid_other+ '\'', function(err, row, fields) {
  360. if(err) {
  361. console.log('Error in tlink check! SteamID: ' + offer.steamid_other);
  362. return;
  363. }
  364. else if (!row.length) {
  365. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  366. console.log('No tlinks set, offer declined! SteamID: ' + offer.steamid_other);
  367. return;
  368. }
  369.  
  370. token = row[0].tlink;
  371. offers.getHoldDuration({partnerSteamId: offer.steamid_other, accessToken: token.substr(token.length - 8) }, function(error, info) {
  372. if (error) {
  373. console.log('Hold Duration Error: '+error);
  374. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  375. return;
  376. }
  377. if (info.toString().indexOf('duration') > -1) {
  378. console.log('Cant get hold duration!');
  379. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  380. return;
  381. }
  382. if (info.my != 0 || info.their != 0) {
  383. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`) VALUES (\''+offer.steamid_other+'\',\'You dont have mobile authentication enabled!\')', function(err, row, fields) {});
  384. console.log('No mobile authentication enabled, declined!');
  385. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  386. return;
  387. } else {
  388. console.log('Mobile authentication enabled ('+offer.steamid_other+')!');
  389. }
  390. });
  391.  
  392. if (row[0].tlink === null || row[0].tlink === undefined || row[0].tlink == '') {
  393. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  394. console.log('No tlinks set, but user logged in, offer declined! SteamID: ' + offer.steamid_other);
  395. return;
  396. }
  397. else if (row[0].name === null || row[0].name === undefined || row[0].name == '') {
  398. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  399. console.log('No name set, but user logged in, offer declined! SteamID: ' + offer.steamid_other);
  400. return;
  401. }
  402. else if (row[0].avatar === null || row[0].avatar === undefined || row[0].avatar == '') {
  403. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  404. console.log('No avatar set, but user logged in, offer declined! SteamID: ' + offer.steamid_other);
  405. return;
  406. }
  407.  
  408. else if (row[0].name != name) {
  409. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  410. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Please relog to refresh your details\',\'System\')', function(err, row, fields) {});
  411. console.log('Names is not equal, offer declined! SteamID: ' + offer.steamid_other);
  412. return;
  413. }
  414. });
  415. })
  416. var delock = false;
  417. offers.loadPartnerInventory({partnerSteamId: offer.steamid_other, appId: 730, contextId: 2, tradeOfferId: offer.tradeofferid, language: "en"}, function(err, hitems) {
  418. if(err) {
  419. weblogon();
  420. recheck = true;
  421. return;
  422. }
  423. if(delock == true) return;
  424. delock = true;
  425. var items = offer.items_to_receive;
  426. var wgg=[],num=0;
  427. for (var i = 0; i < items.length; i++) {
  428. for(var j=0; j < hitems.length; j++) {
  429. if(items[i].assetid == hitems[j].id) {
  430. wgg[num] = hitems[j];
  431. num++;
  432. break;
  433. }
  434. }
  435. }
  436. var price=[];
  437. for(var i=0; i < num; i++) {
  438. if(wgg[i].appid != 730) {
  439. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  440. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Only csgo skins\',\'System\')', function(err, row, fields) {});
  441. return;
  442. }
  443. if(wgg[i].market_name.indexOf("Souvenir") != -1) {
  444. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  445. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Currently Souvenir skins not allowed\',\'System\')', function(err, row, fields) {});
  446. return;
  447. }
  448. var itemname = wgg[i].market_name;
  449. var url = 'http://'+sitename+'/cosggaw56415a.php?item='+encodeURIComponent(itemname);
  450. (function(someshit) {
  451. request(url, function(error, response, body){
  452. if(!error && response.statusCode === 200){
  453. if(body == "notfound") { offers.declineOffer({tradeOfferId: offer.tradeofferid}); mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'notavailable\',\'System\')', function(err, row, fields) {}); }
  454. else {
  455. wgg[someshit].cost = parseFloat(body);
  456. }
  457. } else offers.declineOffer({tradeOfferId: offer.tradeofferid});
  458. });})(i)
  459. }
  460. setTimeout(function() {
  461. var sum=0;
  462. for(var i=0; i < num; i++) {
  463. sum += wgg[i].cost;
  464. }
  465. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'minbet\'', function(err, row, fields) {
  466. if(sum < row[0].value) {
  467. num = 0;
  468. offers.declineOffer({tradeOfferId: offer.tradeofferid});
  469. mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Too small value or there is a problem with Steam!\',\'System\')', function(err, row, fields) {});
  470. return;
  471. }
  472. });
  473. getUserInfo(offer.steamid_other, function(error, data){
  474. if(error) throw error;
  475. var datadec = JSON.parse(JSON.stringify(data.response));
  476. var name = addslashes(datadec.players[0].personaname);
  477. var avatar = (datadec.players[0].avatarfull);
  478. if(num == 0) return;
  479. if (through == true && trades == true) {
  480. trades = false;
  481. setTimeout(function(){ trades = true; }, 3000);
  482. setTimeout(function(){
  483. offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, response) {
  484. if(err != null) {
  485. console.log(err);
  486. return;
  487. }
  488. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  489. var current_game = (row[0].value);
  490. mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
  491. var current_bank = parseFloat(row[0].cost);
  492. var itemsnum = row[0].itemsnum;
  493. mysqlConnection.query('INSERT INTO `acceptedtradeoffers` (`userid`,`username`,`avatar`,`status`,`trade`) VALUES (\'' + offer.steamid_other + '\',\'' + name + '\',\'' + avatar + '\',\'no\',\'' + response.tradeid + '\')', function(err, row, fields) {
  494. if (err){
  495. console.log('Error at acceptedtradeoffers: ' + err);
  496. }});
  497. console.log('Accepted trade offer #'+offer.tradeofferid+' by '+name+' ('+offer.steamid_other+')');
  498. });
  499. });
  500. });
  501. }, 1000);
  502. }
  503. });
  504. },3000);
  505. });
  506. }
  507. });
  508. }
  509. });
  510. }
  511. }
  512.  
  513. var tradedata = [];
  514. var accept = true;
  515.  
  516. setTimeout(function(){
  517. setInterval(function(){
  518. mysqlConnection.query('SELECT `status` FROM `acceptedtradeoffers` WHERE `status`=\'ready\'', function(err, row, fields) { if (err) { return; }
  519. if (!row.length) {
  520. return;
  521. } else {
  522. Deposit();
  523. }
  524. })
  525. }, 3000);
  526.  
  527. function Deposit() {
  528. if (accept == true && once1 == false && once10 == false) {
  529. accept = false;
  530. setTimeout(function(){
  531. mysqlConnection.query('SELECT * FROM `acceptedtradeoffers` WHERE `status`=\'ready\'', function(err, row, fields) { if (err) { return; }
  532. if (!row.length) {
  533. accept = true;
  534. return;
  535. }
  536. if (row[0].status === null || row[0].status === undefined || row[0].status == '') {
  537. return;
  538. accept = true;
  539. } else {
  540. var statusd = row[0].status;
  541. if (statusd == "ready") {
  542. var userd = row[0].userid;
  543. var avatard = row[0].avatar;
  544. var named = row[0].username;
  545. var traded = row[0].trade;
  546. offers.getItems({
  547. tradeId: traded,
  548. }, function(error, tradedata) {
  549. if(!error){
  550. var write = true;
  551. console.log('Processing trade offer!');
  552. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  553. var current_gamed = (row[0].value);
  554. mysqlConnection.query('SELECT `cost` FROM `games` WHERE `id`=\''+current_gamed+'\'', function(err, row, fields) {
  555. var current_bank = parseFloat(row[0].cost);
  556. tradedata.forEach(function(x) {
  557. str = x.market_name;
  558. mysqlConnection.query('SELECT `cost` FROM `items` WHERE `name`=\''+str.replace(/ /g, "%20")+'\'', function(err, row, fields) {
  559. if (err) {
  560. console.log(err);
  561. accept = true;
  562. return;
  563. }
  564. if (!row) {
  565. return;
  566. }
  567. var prices = parseFloat(row[0].cost);
  568. console.log(x.market_name);
  569. console.log(prices);
  570. mysqlConnection.query('INSERT INTO `game' + current_gamed + '` (`userid`,`username`,`item`,`color`,`value`,`avatar`,`image`,`from`,`to`,`assetid`) VALUES (\'' + userd + '\',\'' + named + '\',' + mysqlConnection.escape(x.market_name) + ',\'' + x.name_color + '\',\'' + prices + '\',\'' + avatard + '\',\'' + x.icon_url + '\',\''+current_bank+'\'+\'0\',\''+current_bank+'\'+\''+prices+'\',\'' +x.id+ '\')', function(err, row, fields) { if (err) { console.log(err); }});
  571. current_bank = parseFloat(current_bank + prices);
  572. mysqlConnection.query('UPDATE `games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+prices+'\' WHERE `id` = \'' + current_gamed + '\'', function(err, row, fields) {});
  573. if (write == true) {
  574. write = false;
  575. mysqlConnection.query('UPDATE `acceptedtradeoffers` SET `status`=\'accepted\' WHERE `trade` = \'' + traded + '\'', function(err, row, fields) { if (err) { return; } });
  576. }
  577. })
  578. })
  579. setTimeout(function(){ accept = true; }, 1000);
  580. })
  581. })
  582. } else {
  583. accept = true;
  584. console.log('Cant deposit items!' + error);
  585. }
  586. })
  587. } else {
  588. accept = true;
  589. }
  590. }
  591. })
  592. }, 1000);
  593. }
  594. }
  595.  
  596. }, 3000);
  597.  
  598. setInterval(function(){
  599. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  600. if (err) {
  601. return;
  602. }
  603. var current_game = (row[0].value);
  604. mysqlConnection.query('SELECT `userid` FROM `game' + current_game + '`', function(err, row, fields) {
  605. mysqlConnection.query('SELECT COUNT(Distinct userid) AS DistinctCount FROM `game' + current_game + '`', function(err, row, fields) {
  606. var checkplayersnow = row[0].DistinctCount;
  607. if (checkplayersnow < 2) {
  608.  
  609. } else if(!once) {
  610. console.log('Start timer now!');
  611. endtimer = setTimeout(EndGame,GameTime*1000);
  612. mysqlConnection.query('UPDATE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
  613. once = true;
  614. time = true;
  615. }
  616. })
  617. })
  618. })
  619. }, 1000);
  620.  
  621. setInterval(function(){
  622. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
  623. if (err) {
  624. return;
  625. }
  626. var current_game = (row[0].value);
  627. mysqlConnection.query('SELECT `itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
  628. if (err) {
  629. return;
  630. }
  631. var itemsnum = row[0].itemsnum;
  632. if (itemsnum < 50) {
  633.  
  634. } else if(!once1 && !once10) {
  635. through = false;
  636. Acceptinglastbets();
  637. setTimeout(function(){
  638. endtimer = -1;
  639. EndGame();
  640. }, 20000);
  641. once1 = true;
  642. }
  643. })
  644. })
  645. }, 1000);
  646.  
  647.  
  648.  
  649. setInterval(function(){
  650. mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, rows, fields) {
  651. if(err) return;
  652. mysqlConnection.query('SELECT `starttime` FROM `games` WHERE `id`=\''+rows[0].value+'\'', function(errs, rowss, fieldss) {
  653. if(errs) return;
  654. var timeleftas;
  655. if(rowss[0].starttime == 2147483647) timeleftas = GameTime;
  656. else {
  657. var unixtimes = Math.round(new Date().getTime()/1000.0);
  658. timeleftas = rowss[0].starttime+GameTime-unixtimes;
  659. if (timeleftas < 20) {
  660. if (timeleftas > 0) {
  661. if (!once1 && !once10) {
  662. through = false;
  663. Acceptinglastbets();
  664. once10 = true;
  665. }
  666. }
  667. }
  668. }
  669. });
  670. });
  671. }, 1000);
  672.  
  673. setInterval(function(){ checkoffers(); }, 3000);
  674. setInterval(sendoffers, 5000);
  675.  
  676. setTimeout(function() {
  677. console.log('Starting to confirm trades...');
  678. community.startConfirmationChecker('10000', i_s);
  679.  
  680. community.on('confKeyNeeded', function(tag, callback) {
  681. console.log('Regenerating conf key!');
  682. var time = Math.floor(Date.now() / 1000);
  683. callback(null, time, SteamTotp.getConfirmationKey(identitySecret, time, tag));
  684. });
  685.  
  686. community.on('newConfirmation', function(callback) {
  687. console.log('New trade offer confirmation!');
  688. console.log(callback);
  689. });
  690.  
  691. }, 10000);
  692.  
  693. function keepmysqlconnected(){
  694. mysqlConnection.query('SELECT 1', function(err, row, fields) {});
  695. console.log('Keeping mysql connection!');
  696. }
  697. setInterval(keepmysqlconnected, 15000);
  698.  
  699. steamClient.on('servers', function(servers) {
  700. fs.writeFile('servers', JSON.stringify(servers));
  701. });
  702.  
  703. steamUser.on('updateMachineAuth', function(sentry, callback) {
  704. fs.writeFileSync(sentryFileName, sentry.bytes);
  705. callback({ sha_file: getSHA1(sentry.bytes) });
  706. });
  707.  
  708.  
  709. function getSHA1 (bytes) {
  710. var shasum = crypto.createHash('sha1');
  711. shasum.end(bytes);
  712. return shasum.read();
  713. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement