Jump to content
McKay Development

balabam

Member
  • Posts

    1
  • Joined

  • Last visited

balabam's Achievements

  1. var _ = require('lodash'); var carrier = require('carrier'); var crypto = require('crypto'); var fs = require('fs'); var net = require('net'); var path = require('path'); var prompt = require('prompt'); var steamid = require('steamidconvert')() var Steam = require('steam'); var steamClient = new Steam.SteamClient(); var steamFriends = new Steam.SteamFriends(steamClient); var steamUser = new Steam.SteamUser(steamClient); var config = require(path.join(__dirname,'config.json')); config.sentryPath = path.join(__dirname, config.login+'-sentry.bin'); var q = {}; var usersLastLogoff = []; var schema = { properties: { steamauth: { description: 'Enter your steam auth code: ', message: 'This should be emailed to you.', type: 'string', required: true, pattern: /[0-9a-zA-Z\s]*/ } } }; steamClient.connect(); steamClient.on('connected', function() { var sha = undefined; if(fs.existsSync(config.sentryPath)) { console.log('Sentry file found. Sending to server.') var file = fs.readFileSync(config.sentryPath); sha = crypto.createHash('sha1').update(file).digest(); } steamUser.logOn({ account_name: config.login, password: config.pass, auth_code: config.auth, sha_sentryfile: sha }); }); steamClient.on('logOnResponse', function(logonResp) { if (logonResp.eresult === Steam.EResult.AccountLogonDenied) { steamClient.disconnect(); prompt.get(schema, function (err, result) { if (result.steamauth){ config.auth = result.steamauth; steamClient.connect(); } }); prompt.start(); }else if (logonResp.eresult === Steam.EResult.OK) { console.log('Logged in!'); steamFriends.setPersonaState(Steam.EPersonaState.Online); steamFriends.setPersonaName(config.displayName); }else{ console.log('Login failed.'); } }); steamUser.on('updateMachineAuth', function(sentry, cb) { console.log('Obtained sentry. Writing to '+config.sentryPath); fs.writeFileSync(config.sentryPath, sentry.bytes); cb({ sha_file: crypto.createHash('sha1').update(sentry.bytes).digest() }); }); steamFriends.on('relationships', function(){ checkFriendsLimit(); var friends = steamFriends.friends; for(var friend in friends){ if (friends[friend] === 2){ steamFriends.addFriend(friend); } } }); steamFriends.on('friend', function(friend, type){ checkFriendsLimit(); if(type === 2){ steamFriends.addFriend(friend); } }); steamFriends.on('personaState', function(state){ if ((_.has(state, 'last_logoff')) && !(_.has(state, 'persona_state'))){ usersLastLogoff.push(state); cleanUsers(); }else{ var id = state.friendid; if (_.has(q, id)){ _.each(q[id], function(message){ steamFriends.sendMessage(id, message); }); delete q[id]; } } }); var checkFriendsLimit = _.debounce(function (){ var friends = steamFriends.friends; var friendsArray = Object.keys(friends); if (friendsArray.length > config.maxFriends){ steamFriends.requestFriendData(friendsArray, Steam.EClientPersonaStateFlag.LastSeen); } } , 5000); var cleanUsers = _.debounce(function (){ if (steamClient.connected){ var sorted = _.sortBy(usersLastLogoff, 'last_logoff'); var purgeAmount = sorted.length - config.maxFriends; console.log('Purging old friends.') _.times(purgeAmount, function(i){ var id = sorted[i].friendid; console.log('Removing: ', id); steamFriends.removeFriend(id); }); usersLastLogoff = []; } } , 5000); var connect = _.debounce(function (){ steamClient.connect(); } , 5000); steamClient.on('error', function (e){ console.log(e); connect(); }); net.createServer(function (socket) { socket.on('error', function(err){ console.log('Socket Error: \n', err); }); carrier.carry(socket, function(line) { if (steamClient.connected){ if ((_.startsWith(line, 'BCMD')) && (line.length > 12)) { var cmd = line.substring(4, 8); var packet = line.substring(8).split('|'); var id = steamid.convertTo64(packet[0]); var msg = packet[1]; if (_.has(steamFriends, ['friends', id])){ if (steamFriends.friends[id] === 3){ steamFriends.sendMessage(id, msg); } if (steamFriends.friends[id] === 4){ q[id].push(msg); } }else{ checkFriendsLimit(); steamFriends.addFriend(id); if (!(_.has(q, id))){ q[id] = []; } q[id].push(msg); } } } }); }).listen(config.port); console.log('Server running on port '+config.port+'\n'); it was working very well script but When I change my vds suddenly its not working, its not login to steam account.. someone can help me ?
×
×
  • Create New...