Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var mysqlConnection = mysql.createConnection(mysqlInfo);
- var recheck = true;
- var pass = false;
- var item = [];
- var j = [];
- var locked=false,proceeded;
- var itemscopy;
- var itemascopy;
- var detected=false;
- var detectedas=false;
- var token;
- var sentryFileName = 'sentry_'+logOnOptions['account_name'];
- try {
- logOnOptions.sha_sentryfile = getSHA1(fs.readFileSync(sentryFileName));
- } catch (e) {
- if (authCode !== '') {
- logOnOptions.auth_code = authCode;
- }
- }
- if (fs.existsSync('servers')) {
- Steam.servers = JSON.parse(fs.readFileSync('servers'));
- }
- var steamClient = new Steam.SteamClient();
- var steamUser = new Steam.SteamUser(steamClient);
- var steamFriends = new Steam.SteamFriends(steamClient);
- var steamWebLogOn = new SteamWebLogOn(steamClient, steamUser);
- var offers = new SteamTradeOffers();
- steamClient.connect();
- steamClient.on('connected', function() {
- steamUser.logOn(logOnOptions);
- });
- steamClient.on('logOnResponse', function(logonResp) {
- if (logonResp.eresult === Steam.EResult.OK) {
- console.log('Logged in!');
- steamFriends.setPersonaState(Steam.EPersonaState.Online);
- steamFriends.sendMessage(admin, 'Bot is working!');
- weblogon();
- }
- });
- function weblogon() {
- steamWebLogOn.webLogOn(function(sessionID, newCookie) {
- getSteamAPIKey({
- sessionID: sessionID,
- webCookie: newCookie
- }, function(err, APIKey) {
- community.setCookies(newCookie);
- offers.setup({
- sessionID: sessionID,
- webCookie: newCookie,
- APIKey: APIKey
- }, function () {
- console.log('Cookie Just Set!');
- });
- });
- });
- }
- steamClient.on('debug', function(text){
- console.log(text);
- require('fs').appendFile('debug.log', text+'\n');
- });
- function getUserName(steamid) {
- getUserInfo(steamid, function(error, data){
- if(error) throw error;
- var datadec = JSON.parse(JSON.stringify(data.response));
- return (datadec.players[0].personaname);
- });
- }
- var once = false;
- var once1 = false;
- var once10 = false;
- var time = false;
- var pass = false;
- var through = true;
- var trades = true;
- function proceedWinners() {
- if (time == true) {
- var url = 'http://'+sitename+'/getwinner3gaqwtfas561faw14634f1.php';
- request(url, function(error, response, body){
- if (error) {
- console.log('Error: '+error);
- }
- });
- console.log('Proceeding winners now!');
- through = true;
- time = false;
- }
- }
- function Acceptinglastbets() {
- console.log('Accepting last bets!');
- var where = 'accept';
- mysqlConnection.query('UPDATE `info` SET `value`=\'false\' WHERE `name`=\''+where+'\'', function(err, row, fields) {});
- setTimeout(function(){
- mysqlConnection.query('UPDATE `info` SET `value`=\'true\' WHERE `name`=\''+where+'\'', function(err, row, fields) {});
- }, 20000);
- }
- function getUserInfo(steamids,callback) {
- var url = 'http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key='+apik+'&steamids='+ steamids + '&format=json';
- request({
- url: url,
- json: true
- }, function(error, response, body){
- if(!error && response.statusCode === 200){
- callback(null, body);
- } else if (error) {
- getUserInfo(steamids,callback);
- }
- });
- }
- function addslashes(str) {
- str=str.replace(/\\/g,'\\\\');
- str=str.replace(/\'/g,'\\\'');
- str=str.replace(/\"/g,'\\"');
- str=str.replace(/\0/g,'\\0');
- return str;
- }
- var locked=false,proceeded;
- var itemscopy;
- var detected=false;
- var detected2=false;
- var endtimer = -1;
- function sendoffers(){
- detected2 = false;
- offers.loadMyInventory({
- appId: 730,
- contextId: 2
- }, function(err, itemx) {
- if(err) {
- weblogon();
- setTimeout(sendoffers,2000);
- return;
- }
- if(detected2 == true) {
- return;
- }
- detected2 = true;
- itemscopy = itemx;
- detected = false;
- var pass = false;
- mysqlConnection.query('SELECT * FROM `queue` WHERE `status`=\'active\'', function(err, row, fields) {
- if (!row.length) return;
- if(err) {
- return;
- }
- 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 == '') {
- var gameid = row[0].id;
- mysqlConnection.query('UPDATE `queue` SET `status`=\'error\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
- console.log('Error sending trade offer!');
- Errorsendingtrade();
- pass = false;
- return;
- } else {
- pass = true;
- }
- if(detected == true) {
- return;
- }
- detected = true;
- for(var i=0; i < row.length; i++) {
- var gameid = row[i].id;
- var sendItems = (row[i].assetids).split('/');
- var item=[],num=0;
- for (var x = 0; x < itemscopy.length; x++) {
- for(var j=0; j < sendItems.length; j++) {
- if (itemscopy[x].tradable && (itemscopy[x].id).indexOf(sendItems[j]) == 0) {
- sendItems[j] = "j";
- item[num] = {
- appid: 730,
- contextid: 2,
- amount: itemscopy[x].amount,
- assetid: itemscopy[x].id
- }
- num++;
- }
- }
- }
- if (pass == true) {
- if (num > 0) {
- var gamenum = row[i].id;
- offers.makeOffer ({
- partnerSteamId: row[i].userid,
- itemsFromMe: item,
- accessToken: row[i].token,
- itemsFromThem: [],
- message: 'Your winnings at '+sitename+' game #'+gamenum
- }, function(err, response){
- if (err) {
- console.log('Error Sending Trade Offer! ' +item+ ' And ' +err+ '');
- return;
- }
- mysqlConnection.query('UPDATE `queue` SET `status`=\'sent\' WHERE `id`=\''+gameid+'\'', function(err, row, fields) {});
- console.log('Trade offer for queue '+gamenum+' '+item+' sent!');
- pass = false;
- });
- }
- }
- }
- });
- })}
- function EndGame() {
- endtimer = -1;
- clearTimeout(endtimer);
- proceedWinners();
- setTimeout(sendoffers,1000);
- setTimeout(function(){ once = false; }, 10000);
- setTimeout(function(){ once1 = false; }, 10000);
- setTimeout(function(){ once10 = false; }, 10000);
- }
- function Errorsendingtrade() {
- steam.addFriend(admin);
- steam.sendMessage(admin,"Error sending trade!");
- }
- steamClient.on('friendMsg', function(steamID, message, type) {
- if(type != Steam.EChatEntryType.ChatMsg) return;
- if(steamID == admin) {
- if(message.indexOf("/sendallitems") == 0) {
- offers.loadMyInventory({
- appId: 730,
- contextId: 2
- }, function(err, items) {
- if(err) {
- steam.sendMessage(steamID, 'Could not load your inventory , try again!');
- weblogon();
- return;
- }
- var item=[],num=0;
- for (var i = 0; i < items.length; i++) {
- if (items[i].tradable) {
- item[num] = {
- appid: 730,
- contextid: 2,
- amount: items[i].amount,
- assetid: items[i].id
- }
- num++;
- }
- }
- if (num > 0) {
- offers.makeOffer ({
- partnerSteamId: steamID,
- itemsFromMe: item,
- itemsFromThem: [],
- message: ''
- }, function(err, response){
- if (err) {
- throw err;
- }
- steam.sendMessage(steamID, 'Trade sent!');
- });
- }
- });
- } else if(message.indexOf("/send") == 0) {
- var params = message.split(' ');
- if(params.length == 1) return steam.sendMessage(steamID, 'Format: /send [Skin Name]');
- offers.loadMyInventory({
- appId: 730,
- contextId: 2
- }, function(err, items) {
- if(err) {
- steam.sendMessage(steamID, 'Could not load your inventory , try again!');
- weblogon();
- return;
- }
- var item=0;
- for (var i = 0; i < items.length; i++) {
- if((items[i].market_name).indexOf(params[1]) != -1) {
- item = items[i].id;
- break;
- }
- }
- if (item != 0) {
- offers.makeOffer ({
- partnerSteamId: steamID,
- itemsFromMe: [
- {
- appid: 730,
- contextid: 2,
- amount: 1,
- assetid: item
- }
- ],
- itemsFromThem: [],
- message: ''
- }, function(err, response){
- if (err) {
- throw err;
- }
- steam.sendMessage(steamID, 'Trade sent!');
- });
- }
- });
- } else if(message.indexOf("/end") == 0) {
- steam.sendMessage(steamID,'Ending current game!');
- if(endtimer != -1) clearTimeout(endtimer);
- EndGame();
- }
- }
- getUserInfo(steamID, function(error, data){
- if(error) throw error;
- var datadec = JSON.parse(JSON.stringify(data.response));
- var name = datadec.players[0].personaname;
- console.log(name + ': ' + message); // Log it
- });
- });
- var assetas = 0;
- function checkoffers() {
- if (through == true) {
- offers.getOffers({
- get_received_offers: 10,
- active_only: 10,
- time_historical_cutoff: Math.round(Date.now() / 1000)
- }, function(error, body) {
- if(error) {
- checkoffers();
- return;
- }
- if(body.response.trade_offers_received){
- body.response.trade_offers_received.forEach(function(offer) {
- if (offer.trade_offer_state == 2 && offer.trade_offer_state != 11){
- console.log('Got New Offers!');
- if(offer.items_to_give) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- }
- if(offer.items_to_receive == undefined) return;
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'maxitems\'', function(err, row, fields) {
- if(offer.items_to_receive.length > row[0].value) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- offer.items_to_receive = [];
- mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Too much skins\',\'System\')', function(err, row, fields) {});
- return;
- }
- });
- getUserInfo(offer.steamid_other, function(error, data){
- if(error) throw error;
- var datadec = JSON.parse(JSON.stringify(data.response));
- var name = addslashes(datadec.players[0].personaname);
- var avatar = (datadec.players[0].avatarfull);
- mysqlConnection.query('SELECT * FROM `users` WHERE `steamid` = \'' +offer.steamid_other+ '\'', function(err, row, fields) {
- if(err) {
- console.log('Error in tlink check! SteamID: ' + offer.steamid_other);
- return;
- }
- else if (!row.length) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('No tlinks set, offer declined! SteamID: ' + offer.steamid_other);
- return;
- }
- token = row[0].tlink;
- offers.getHoldDuration({partnerSteamId: offer.steamid_other, accessToken: token.substr(token.length - 8) }, function(error, info) {
- if (error) {
- console.log('Hold Duration Error: '+error);
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- }
- if (info.toString().indexOf('duration') > -1) {
- console.log('Cant get hold duration!');
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- }
- if (info.my != 0 || info.their != 0) {
- mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`) VALUES (\''+offer.steamid_other+'\',\'You dont have mobile authentication enabled!\')', function(err, row, fields) {});
- console.log('No mobile authentication enabled, declined!');
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- return;
- } else {
- console.log('Mobile authentication enabled ('+offer.steamid_other+')!');
- }
- });
- if (row[0].tlink === null || row[0].tlink === undefined || row[0].tlink == '') {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('No tlinks set, but user logged in, offer declined! SteamID: ' + offer.steamid_other);
- return;
- }
- else if (row[0].name === null || row[0].name === undefined || row[0].name == '') {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('No name set, but user logged in, offer declined! SteamID: ' + offer.steamid_other);
- return;
- }
- else if (row[0].avatar === null || row[0].avatar === undefined || row[0].avatar == '') {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- console.log('No avatar set, but user logged in, offer declined! SteamID: ' + offer.steamid_other);
- return;
- }
- else if (row[0].name != name) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Please relog to refresh your details\',\'System\')', function(err, row, fields) {});
- console.log('Names is not equal, offer declined! SteamID: ' + offer.steamid_other);
- return;
- }
- });
- })
- var delock = false;
- offers.loadPartnerInventory({partnerSteamId: offer.steamid_other, appId: 730, contextId: 2, tradeOfferId: offer.tradeofferid, language: "en"}, function(err, hitems) {
- if(err) {
- weblogon();
- recheck = true;
- return;
- }
- if(delock == true) return;
- delock = true;
- var items = offer.items_to_receive;
- var wgg=[],num=0;
- for (var i = 0; i < items.length; i++) {
- for(var j=0; j < hitems.length; j++) {
- if(items[i].assetid == hitems[j].id) {
- wgg[num] = hitems[j];
- num++;
- break;
- }
- }
- }
- var price=[];
- for(var i=0; i < num; i++) {
- if(wgg[i].appid != 730) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Only csgo skins\',\'System\')', function(err, row, fields) {});
- return;
- }
- if(wgg[i].market_name.indexOf("Souvenir") != -1) {
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- mysqlConnection.query('INSERT INTO `messages` (`userid`,`msg`,`from`) VALUES (\''+offer.steamid_other+'\',\'Currently Souvenir skins not allowed\',\'System\')', function(err, row, fields) {});
- return;
- }
- var itemname = wgg[i].market_name;
- var url = 'http://'+sitename+'/cosggaw56415a.php?item='+encodeURIComponent(itemname);
- (function(someshit) {
- request(url, function(error, response, body){
- if(!error && response.statusCode === 200){
- 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) {}); }
- else {
- wgg[someshit].cost = parseFloat(body);
- }
- } else offers.declineOffer({tradeOfferId: offer.tradeofferid});
- });})(i)
- }
- setTimeout(function() {
- var sum=0;
- for(var i=0; i < num; i++) {
- sum += wgg[i].cost;
- }
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'minbet\'', function(err, row, fields) {
- if(sum < row[0].value) {
- num = 0;
- offers.declineOffer({tradeOfferId: offer.tradeofferid});
- 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) {});
- return;
- }
- });
- getUserInfo(offer.steamid_other, function(error, data){
- if(error) throw error;
- var datadec = JSON.parse(JSON.stringify(data.response));
- var name = addslashes(datadec.players[0].personaname);
- var avatar = (datadec.players[0].avatarfull);
- if(num == 0) return;
- if (through == true && trades == true) {
- trades = false;
- setTimeout(function(){ trades = true; }, 3000);
- setTimeout(function(){
- offers.acceptOffer({tradeOfferId: offer.tradeofferid}, function(err, response) {
- if(err != null) {
- console.log(err);
- return;
- }
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT `cost`,`itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
- var current_bank = parseFloat(row[0].cost);
- var itemsnum = row[0].itemsnum;
- mysqlConnection.query('INSERT INTO `acceptedtradeoffers` (`userid`,`username`,`avatar`,`status`,`trade`) VALUES (\'' + offer.steamid_other + '\',\'' + name + '\',\'' + avatar + '\',\'no\',\'' + response.tradeid + '\')', function(err, row, fields) {
- if (err){
- console.log('Error at acceptedtradeoffers: ' + err);
- }});
- console.log('Accepted trade offer #'+offer.tradeofferid+' by '+name+' ('+offer.steamid_other+')');
- });
- });
- });
- }, 1000);
- }
- });
- },3000);
- });
- }
- });
- }
- });
- }
- }
- var tradedata = [];
- var accept = true;
- setTimeout(function(){
- setInterval(function(){
- mysqlConnection.query('SELECT `status` FROM `acceptedtradeoffers` WHERE `status`=\'ready\'', function(err, row, fields) { if (err) { return; }
- if (!row.length) {
- return;
- } else {
- Deposit();
- }
- })
- }, 3000);
- function Deposit() {
- if (accept == true && once1 == false && once10 == false) {
- accept = false;
- setTimeout(function(){
- mysqlConnection.query('SELECT * FROM `acceptedtradeoffers` WHERE `status`=\'ready\'', function(err, row, fields) { if (err) { return; }
- if (!row.length) {
- accept = true;
- return;
- }
- if (row[0].status === null || row[0].status === undefined || row[0].status == '') {
- return;
- accept = true;
- } else {
- var statusd = row[0].status;
- if (statusd == "ready") {
- var userd = row[0].userid;
- var avatard = row[0].avatar;
- var named = row[0].username;
- var traded = row[0].trade;
- offers.getItems({
- tradeId: traded,
- }, function(error, tradedata) {
- if(!error){
- var write = true;
- console.log('Processing trade offer!');
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
- var current_gamed = (row[0].value);
- mysqlConnection.query('SELECT `cost` FROM `games` WHERE `id`=\''+current_gamed+'\'', function(err, row, fields) {
- var current_bank = parseFloat(row[0].cost);
- tradedata.forEach(function(x) {
- str = x.market_name;
- mysqlConnection.query('SELECT `cost` FROM `items` WHERE `name`=\''+str.replace(/ /g, "%20")+'\'', function(err, row, fields) {
- if (err) {
- console.log(err);
- accept = true;
- return;
- }
- if (!row) {
- return;
- }
- var prices = parseFloat(row[0].cost);
- console.log(x.market_name);
- console.log(prices);
- 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); }});
- current_bank = parseFloat(current_bank + prices);
- mysqlConnection.query('UPDATE `games` SET `itemsnum`=`itemsnum`+1, `cost`=`cost`+\''+prices+'\' WHERE `id` = \'' + current_gamed + '\'', function(err, row, fields) {});
- if (write == true) {
- write = false;
- mysqlConnection.query('UPDATE `acceptedtradeoffers` SET `status`=\'accepted\' WHERE `trade` = \'' + traded + '\'', function(err, row, fields) { if (err) { return; } });
- }
- })
- })
- setTimeout(function(){ accept = true; }, 1000);
- })
- })
- } else {
- accept = true;
- console.log('Cant deposit items!' + error);
- }
- })
- } else {
- accept = true;
- }
- }
- })
- }, 1000);
- }
- }
- }, 3000);
- setInterval(function(){
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
- if (err) {
- return;
- }
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT `userid` FROM `game' + current_game + '`', function(err, row, fields) {
- mysqlConnection.query('SELECT COUNT(Distinct userid) AS DistinctCount FROM `game' + current_game + '`', function(err, row, fields) {
- var checkplayersnow = row[0].DistinctCount;
- if (checkplayersnow < 2) {
- } else if(!once) {
- console.log('Start timer now!');
- endtimer = setTimeout(EndGame,GameTime*1000);
- mysqlConnection.query('UPDATE `games` SET `starttime`=UNIX_TIMESTAMP() WHERE `id` = \'' + current_game + '\'', function(err, row, fields) {});
- once = true;
- time = true;
- }
- })
- })
- })
- }, 1000);
- setInterval(function(){
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, row, fields) {
- if (err) {
- return;
- }
- var current_game = (row[0].value);
- mysqlConnection.query('SELECT `itemsnum` FROM `games` WHERE `id`=\''+current_game+'\'', function(err, row, fields) {
- if (err) {
- return;
- }
- var itemsnum = row[0].itemsnum;
- if (itemsnum < 50) {
- } else if(!once1 && !once10) {
- through = false;
- Acceptinglastbets();
- setTimeout(function(){
- endtimer = -1;
- EndGame();
- }, 20000);
- once1 = true;
- }
- })
- })
- }, 1000);
- setInterval(function(){
- mysqlConnection.query('SELECT `value` FROM `info` WHERE `name`=\'current_game\'', function(err, rows, fields) {
- if(err) return;
- mysqlConnection.query('SELECT `starttime` FROM `games` WHERE `id`=\''+rows[0].value+'\'', function(errs, rowss, fieldss) {
- if(errs) return;
- var timeleftas;
- if(rowss[0].starttime == 2147483647) timeleftas = GameTime;
- else {
- var unixtimes = Math.round(new Date().getTime()/1000.0);
- timeleftas = rowss[0].starttime+GameTime-unixtimes;
- if (timeleftas < 20) {
- if (timeleftas > 0) {
- if (!once1 && !once10) {
- through = false;
- Acceptinglastbets();
- once10 = true;
- }
- }
- }
- }
- });
- });
- }, 1000);
- setInterval(function(){ checkoffers(); }, 3000);
- setInterval(sendoffers, 5000);
- setTimeout(function() {
- console.log('Starting to confirm trades...');
- community.startConfirmationChecker('10000', i_s);
- community.on('confKeyNeeded', function(tag, callback) {
- console.log('Regenerating conf key!');
- var time = Math.floor(Date.now() / 1000);
- callback(null, time, SteamTotp.getConfirmationKey(identitySecret, time, tag));
- });
- community.on('newConfirmation', function(callback) {
- console.log('New trade offer confirmation!');
- console.log(callback);
- });
- }, 10000);
- function keepmysqlconnected(){
- mysqlConnection.query('SELECT 1', function(err, row, fields) {});
- console.log('Keeping mysql connection!');
- }
- setInterval(keepmysqlconnected, 15000);
- steamClient.on('servers', function(servers) {
- fs.writeFile('servers', JSON.stringify(servers));
- });
- steamUser.on('updateMachineAuth', function(sentry, callback) {
- fs.writeFileSync(sentryFileName, sentry.bytes);
- callback({ sha_file: getSHA1(sentry.bytes) });
- });
- function getSHA1 (bytes) {
- var shasum = crypto.createHash('sha1');
- shasum.end(bytes);
- return shasum.read();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement