Advertisement
Guest User

Untitled

a guest
May 31st, 2017
280
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.91 KB | None | 0 0
  1. const SteamUser = require('steam-user');
  2. const TradeOfferManager = require('steam-tradeoffer-manager');
  3. const SteamTotp = require('steam-totp');
  4. const SteamCommunity = require('steamcommunity');
  5. const config = require('./config.json');
  6. const csv = require('csv');
  7. const winston = require('winston');
  8.  
  9. const community = new SteamCommunity();
  10. const client = new SteamUser();
  11. const manager = new TradeOfferManager({
  12. steam: client,
  13. domain: 'example.com',
  14. language: 'en'
  15. });
  16.  
  17.  
  18. var RefToAdd = [];
  19. var refamount;
  20. var tfKeysToAdd = [];
  21. var csKeysToAdd = [];
  22. var KeysToAdd = [];
  23. var tfKeysToAdd = [];
  24. var TfKeysToAdd = [];
  25. var metal = 0;
  26. var Scrap = 0;
  27. var Refined = 0;
  28. var Reclaimed = 0;
  29. var RefRequired = 0;
  30. var RecRequired = 0;
  31. var ScrapRequired = 0;
  32. var change = 0;
  33. var ThereMetalToAdd = [];
  34. var totalMetal;
  35. var ChangeToAdd = [];
  36.  
  37. winston.add(winston.transports.File, {
  38. filename: 'somefile.log'
  39. });
  40. winston.remove(winston.transports.Console);
  41.  
  42.  
  43.  
  44. const logOnOptions = {
  45. accountName: config.username,
  46. password: config.password,
  47. twoFactorCode: SteamTotp.generateAuthCode(config.sharedSecret)
  48. };
  49. //log on
  50. client.logOn(logOnOptions);
  51.  
  52. client.on('loggedOn', function(details) {
  53. console.log(`Logged into Steam as ${client.steamID.getSteam3RenderedID()}`); //online then play tf2
  54. client.setPersona(SteamUser.Steam.EPersonaState.Online);
  55. client.gamesPlayed([440])
  56. });
  57.  
  58. client.on('webSession', function(sessionID, cookies) {
  59. manager.setCookies(cookies, function(err) {
  60. if (err) return console.log(err);
  61. console.log(`Got API key: ${manager.apiKey}`);
  62. });
  63.  
  64. community.setCookies(cookies);
  65. community.startConfirmationChecker(10000, config.identitySecret);
  66. });
  67.  
  68.  
  69. client.on('friendRelationship', (steamID, relationship) => { //freind requests
  70. if (relationship == 2) {
  71. client.addFriend(steamID);
  72. client.chatMessage(steamID, config.chat.welcomeMessage);
  73. }
  74. });
  75.  
  76. client.on('friendMessage', (steamID, message) => { //freind messgaes
  77. if (message.startsWith("!buy cs")) {
  78. var csAmount = parseInt(message.split("!buy cs")[1]);
  79. if (isNaN(csAmount)) { //calculating required keys
  80. csAmount = 1;
  81. }
  82.  
  83. var offer = manager.createOffer(steamID); //create offer
  84. client.chatMessage(steamID, "Creating your offer now");
  85. var refamount = csAmount * config.buyref;
  86. var price2 = csAmount * config.buyref2;
  87. var price = csAmount * config.buyref2;
  88. //calculating required refined metal
  89.  
  90. //trade stuff starts here
  91. manager.getUserInventoryContents(steamID, 440, 2, true, (err, inv) => { //loading there invent
  92. if (err) {
  93. console.log(err.message);
  94. return;
  95. }
  96.  
  97. manager.getInventoryContents(440, 2, true, (err, ourInv) => { //loading there invent
  98. if (err) {
  99. console.log(err.message);
  100. return;
  101. }
  102.  
  103.  
  104.  
  105. for (let i = 0; i < inv.length; i++) { //getting all metal in bp and vaules for diffrent metals
  106. if (inv[i].market_hash_name.includes('Refined Metal')) {
  107. metal = metal + 9;
  108. Refined = Refined + 9;
  109. } else {
  110. if (inv[i].market_hash_name.includes('Reclaimed Metal')) {
  111. metal = metal + 3;
  112. Reclaimed = Reclaimed + 3;
  113. } else {
  114. if (inv[i].market_hash_name.includes('Scrap Metal')) {
  115. metal = metal + 1;
  116. Scrap++;
  117. }
  118. }
  119. }
  120. }
  121.  
  122. while (price2 >= 9) { //getting req metal here
  123. RefRequired = RefRequired + 9;
  124. price2 = price2 - 9;
  125. }
  126.  
  127. while (price2 >= 3) {
  128. RecRequired = RecRequired + 3;
  129. price2 = price2 - 3;
  130. }
  131.  
  132. while (price2 >= 1) {
  133. ScrapRequired++
  134. price2 = price2 - 1;
  135. }
  136.  
  137.  
  138.  
  139. if (metal > price) { //if they have enough calculate change
  140. if (Scrap < ScrapRequired) {
  141. RecRequired = RecRequired + 3;
  142. ScrapRequired = ScrapRequired - 3;
  143. change = change + Math.abs(ScrapRequired);
  144. ScrapRequired = 0;
  145. }
  146.  
  147. if (Reclaimed < RecRequired) {
  148. RefRequired = RefRequired + 9;
  149. RecRequired = RecRequired - 9;
  150. change = change + Math.abs(RecRequired);
  151. RecRequired = 0;
  152. }
  153.  
  154. totalMetal = RefRequired + RecRequired + ScrapRequired //total metal needed
  155.  
  156. for (let i = 0; i < inv.length; i++) { //loop to get there metal.
  157. if (inv[i].market_hash_name.includes('Refined Metal') && totalMetal >= 9) {
  158. ThereMetalToAdd.push(inv[i].assetid);
  159. totalMetal = totalMetal - 9;
  160. } else {
  161. if (inv[i].market_hash_name.includes('Reclaimed Metal') && totalMetal >= 3) {
  162. ThereMetalToAdd.push(inv[i].assetid);
  163. totalMetal = totalMetal - 3;
  164. } else {
  165. if (inv[i].market_hash_name.includes('Scrap Metal') && totalMetal >= 1) {
  166. ThereMetalToAdd.push(inv[i].assetid);
  167. totalMetal = totalMetal - 1;
  168. }
  169. }
  170. }
  171. }
  172.  
  173.  
  174.  
  175.  
  176. for (let i = 0; i < ourInv.length; i++) { //loop to get required change.
  177. if (ourInv[i].market_hash_name.includes('Refined Metal') && change >= 9) {
  178. ChangeToAdd.push(ourInv[i].assetid);
  179. change = change - 9;
  180. console.log(change);
  181. } else {
  182. if (ourInv[i].market_hash_name.includes('Reclaimed Metal') && change >= 3) {
  183. ChangeToAdd.push(ourInv[i].assetid);
  184. change = change - 3;
  185. console.log(change);
  186. } else {
  187. if (ourInv[i].market_hash_name.includes('Scrap Metal') && change >= 1) {
  188. ChangeToAdd.push(ourInv[i].assetid);
  189. change = change - 1;
  190. console.log(change);
  191. }
  192. }
  193. }
  194. }
  195.  
  196. console.log(change);
  197.  
  198. if (totalMetal == 0) {
  199. for (let i = 0; i < ThereMetalToAdd.length; i++) { //add assest ids
  200. offer.addTheirItem({
  201. assetid: ThereMetalToAdd[i],
  202. appid: 440,
  203. contextid: 2
  204. });
  205. }
  206. }else{
  207. console.log("nope");
  208. }
  209.  
  210. if (change == 0) {
  211. for (let i = 0; i < ChangeToAdd.length; i++) { //add assest ids
  212. offer.addMyItem({
  213. assetid: ChangeToAdd[i],
  214. appid: 440,
  215. contextid: 2
  216. });
  217. }
  218. }
  219.  
  220.  
  221.  
  222. offer.send((err, status) => { //send offer.
  223. if (err) {
  224. console.log(err);
  225. }
  226. });
  227.  
  228. } else {
  229. client.chatMessage(steamID, "sorry you do not have enough metal to buy this many keys. Maybe try and buy less?");
  230. console.log("user " + steamID + " did not have enoguh metal");
  231. return;
  232. }
  233. });
  234. });
  235. }
  236. RefToAdd = [];
  237. KeysToAdd = [];
  238. ThereMetalToAdd = [];
  239. ChangeToAdd = [];
  240. totalMetal = 0;
  241. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement