· 6 years ago · Mar 31, 2020, 07:50 PM
1"use strict";
2
3const config = require("./assets/config.js");
4const steamUser = require("steam-user");
5const steamCommunity = require("steamcommunity");
6const totp = require("steam-totp");
7const steamManager = require("steam-tradeoffer-manager");
8const FS = require("fs");
9
10const client = new steamUser(),
11 logOnOptions = {
12 accountName: config.username,
13 password: config.password,
14 twoFactorCode: totp.generateAuthCode(config.sharedSecret)
15 };
16
17const community = new steamCommunity(),
18 manager = new steamManager({
19 steam: client,
20 community: community,
21 domain: "localhost",
22 pollInterval: 2000,
23 language: "en"
24 });
25
26client.logOn(logOnOptions);
27
28client.on("loggedOn", () => {
29 client.setPersona(steamUser.EPersonaState.Online, config.steamName);
30 client.gamesPlayed(config.gameId);
31 console.log(`Logged in to Steam`);
32});
33
34if (FS.existsSync("assets/polldata.json")) {
35 manager.pollData = JSON.parse(
36 FS.readFileSync("assets/polldata.json").toString("utf8")
37 );
38}
39
40client.on("webSession", (sid, cookies) => {
41 manager.setCookies(cookies, err => {
42 if (err) {
43 console.log(err);
44 process.exit(1); // couldn't get API key
45 return;
46 }
47 });
48 community.setCookies(cookies);
49 community.startConfirmationChecker(20000, config.identitySecret);
50});
51
52client.on("friendRelationship", (steamid, relationship) => {
53 if (relationship === 2) {
54 client.addFriend(steamid);
55 client.chatMessage(
56 config.owner,
57 `${steamid} added me to their friends list`
58 );
59 client.chatMessage(steamid, `Hello, thanks for adding me`);
60 console.log(`${steamid} added me to their friends list`);
61 }
62});
63
64manager.on("newOffer", offer => {
65 console.log(
66 `Received offer #${offer.id} from ${offer.partner.getSteamID64()}`
67 );
68 client.chatMessage(
69 config.owner,
70 `Received offer #${offer.id} from ${offer.partner.getSteamID64()}`
71 );
72
73 if (offer.partner.getSteamID64() === config.owner) {
74 offer.accept(false, (err, status) => {
75 if (err) {
76 client.chatMessage(
77 config.owner,
78 `Couldn't accept trade offer from owner`
79 );
80 console.log(`Couldn't accept trade offer from owner. ${err.message}`);
81 }
82
83 client.chatMessage(config.owner, `Accepting offer from owner...`);
84 console.log(`Accepting offer from owner...`);
85 });
86 } else if (!offer.itemsToGive.length) {
87 offer.accept(false, (err, status) => {
88 if (err) {
89 client.chatMessage(
90 config.owner,
91 `Couldn't accept the gift offer from ${offer.partner.getSteamID64()}`
92 );
93 console.log(
94 `Couldn't accept the gift offer from ${offer.partner.getSteamID64()}. Status: ${status} - ${
95 err.message
96 }`
97 );
98 }
99
100 client.chatMessage(
101 config.owner,
102 `Gift offer from ${offer.partner.getSteamID64()} successfully accepted`
103 );
104 console.log(
105 `Gift offer from ${offer.partner.getSteamID64()} successfully accepted`
106 );
107 });
108 } else if (!offer.itemsToReceive) {
109 offer.decline(err => {
110 if (err) {
111 client.chatMessage(
112 config.owner,
113 `Couldn't decline the trade from ${offer.partner.getSteamID64()}`
114 );
115 console.log(
116 `Couldn't decline the trade offer from ${offer.partner.getSteamID64()}`
117 );
118 }
119
120 client.chatMessage(
121 config.owner,
122 `Declined trade offer #${
123 offer.id
124 } from ${offer.partner.getSteamID64()} because partner did not include items`
125 );
126 console.log(
127 `Declined offer ${
128 offer.id
129 } from ${offer.partner.getSteamID64()} not offering items`
130 );
131 });
132 }
133});
134
135manager.on("receivedOfferChanged", (offer, oldState) => {
136 client.chatMessage(
137 config.owner,
138 `Received offer #${
139 offer.id
140 } from ${offer.partner.getSteamID64()} is now ${steamManager.ETradeOfferState[
141 offer.state
142 ].toLowerCase()}`
143 );
144 console.log(
145 `Received offer #${
146 offer.id
147 } from ${offer.partner.getSteamID64()} is now ${steamManager.ETradeOfferState[
148 offer.state
149 ].toLowerCase()}`
150 );
151});
152
153manager.on("sentOfferChanged", (offer, oldState) => {
154 client.chatMessage(
155 config.owner,
156 `Sent offer #${
157 offer.id
158 } from ${offer.partner.getSteamID64()} is now ${steamManager.ETradeOfferState[
159 offer.state
160 ].toLowerCase()}`
161 );
162 console.log(
163 `Sent offer #${offer.id} from ${offer.partner.getSteamID64()} is now ${
164 steamManager.ETradeOfferState[offer.state]
165 }`
166 );
167});
168
169manager.on("pollData", pollData => {
170 FS.writeFileSync("assets/polldata.json", JSON.stringify(pollData));
171});