Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2017
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.44 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. for (let i = 0; i < inv.length; i++) { //getting all metal in bp and vaules for diffrent metals
  104. if (inv[i].market_hash_name.includes('Refined Metal')) { //metal = all scrap,rec and ref combined
  105. metal = metal + 9;
  106. Refined = Refined + 9;
  107. } else {
  108. if (inv[i].market_hash_name.includes('Reclaimed Metal')) {
  109. metal = metal + 3;
  110. Reclaimed = Reclaimed + 3;
  111. } else {
  112. if (inv[i].market_hash_name.includes('Scrap Metal')) {
  113. metal = metal + 1;
  114. Scrap++;
  115. }
  116. }
  117. }
  118. }
  119.  
  120. while (price2 >= 9) { //getting req metal here by seeing if price is over a certain vaule if it is then add to a required var and minus that number from price
  121. RefRequired = RefRequired + 9;
  122. price2 = price2 - 9;
  123. }
  124.  
  125. while (price2 >= 3) {
  126. RecRequired = RecRequired + 3;
  127. price2 = price2 - 3;
  128. }
  129.  
  130. while (price2 >= 1) {
  131. ScrapRequired++
  132. price2 = price2 - 1;
  133. }
  134.  
  135.  
  136.  
  137. if (metal > price) { //if they have enough calculate change
  138. if (Scrap < ScrapRequired) { //by seeing if scrap is under scrap required if it is add a rec to the rec required variable minus 3 from scrap and add the absouloute to the change var
  139. RecRequired = RecRequired + 3; //then 0 out scrap required
  140. ScrapRequired = ScrapRequired - 3;
  141. change = change + Math.abs(ScrapRequired);
  142. ScrapRequired = 0;
  143. }
  144.  
  145. if (Reclaimed < RecRequired) { //same here as scrap
  146. RefRequired = RefRequired + 9;
  147. RecRequired = RecRequired - 9;
  148. change = change + Math.abs(RecRequired);
  149. RecRequired = 0;
  150. }
  151.  
  152. totalMetal = RefRequired + RecRequired + ScrapRequired //total metal needed by adding all the required metals.
  153.  
  154. for (let i = 0; i < inv.length; i++) { //loop to get there metal.
  155. if (inv[i].market_hash_name.includes('Refined Metal') && totalMetal >= 9) {
  156. ThereMetalToAdd.push(inv[i].assetid);
  157. totalMetal = totalMetal - 9;
  158. } else {
  159. if (inv[i].market_hash_name.includes('Reclaimed Metal') && totalMetal >= 3) {
  160. ThereMetalToAdd.push(inv[i].assetid);
  161. totalMetal = totalMetal - 3;
  162. } else {
  163. if (inv[i].market_hash_name.includes('Scrap Metal') && totalMetal >= 1) {
  164. ThereMetalToAdd.push(inv[i].assetid);
  165. totalMetal = totalMetal - 1;
  166. }
  167. }
  168. }
  169. }
  170.  
  171.  
  172.  
  173.  
  174. for (let i = 0; i < ourInv.length; i++) { //loop to get our required change.
  175. if (ourInv[i].market_hash_name.includes('Refined Metal') && change >= 9) {
  176. ChangeToAdd.push(ourInv[i].assetid);
  177. change = change - 9;
  178. console.log(change);
  179. } else {
  180. if (ourInv[i].market_hash_name.includes('Reclaimed Metal') && change >= 3) {
  181. ChangeToAdd.push(ourInv[i].assetid);
  182. change = change - 3;
  183. console.log(change);
  184. } else {
  185. if (ourInv[i].market_hash_name.includes('Scrap Metal') && change >= 1) {
  186. ChangeToAdd.push(ourInv[i].assetid);
  187. change = change - 1;
  188. console.log(change);
  189. }
  190. }
  191. }
  192. }
  193.  
  194. if (totalMetal == 0) {
  195. for (let i = 0; i < ThereMetalToAdd.length; i++) { //add assest ids
  196. offer.addTheirItem({
  197. assetid: ThereMetalToAdd[i],
  198. appid: 440,
  199. contextid: 2
  200. });
  201. }
  202. }else{
  203. console.log("nope");
  204. return;
  205. }
  206.  
  207. if (change == 0) {
  208. for (let i = 0; i < ChangeToAdd.length; i++) { //add assest ids
  209. offer.addMyItem({
  210. assetid: ChangeToAdd[i],
  211. appid: 440,
  212. contextid: 2
  213. });
  214. }
  215. }else{
  216. console.log("nope 2")
  217. }
  218.  
  219.  
  220.  
  221. offer.send((err, status) => { //send offer.
  222. if (err) {
  223. console.log(err);
  224. }
  225. });
  226.  
  227. } else {
  228. client.chatMessage(steamID, "sorry you do not have enough metal to buy this many keys. Maybe try and buy less?");
  229. console.log("user " + steamID + " did not have enoguh metal");
  230. return;
  231. }
  232. });
  233. });
  234. }
  235. RefToAdd = [];
  236. KeysToAdd = [];
  237. ThereMetalToAdd = [];
  238. ChangeToAdd = [];
  239. totalMetal = 0;
  240. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement