/**
* This is a simple example of a bot that will hook into the API and provide an Inventory system
* In which a bot will accept any trades in-which people offer something and he offers nothing.
* and
* bot will accept any trades done by an admin in-which the bot offers something and the admin offers nothing.
*
* Make sure you copy this file and not use it directly. Follow install instructions on github.
*/
/* We will require the node-steam-bot-manager module to use it */
var BotManager = require('node-steam-bot-manager');
var STEAMID64 = '__YOUR_STEAM_ID_64B__';// Here is your SteamID64
function InventoryBot() {
var botsManager = new BotManager();// Create new instance of the BotManager
// Once we receive an offer from someone (Using trade offers not live trades)
botsManager.on('newOffer', function (activeAccount, offer) {
// 'activeAccount' refers to us (the bot receiving the offer) doing the trade, check docs for more info.
// 'offer' contains details about the trade, check docs.
// We check if we are receiving or giving items.
if (offer.itemsToGive.length > 0 && offer.itemsToReceive.length == 0) {
// In this case we (the bot) are giving items.
if (offer.partner.getSteamID64() == STEAMID64) {
// We will be giving items in this case. So only accept if the 64Bit SteamID is ours/admins.
offer.accept(true, function (err, status) {
if (err)
console.log(err);
// Since we (the bot) is giving away items, it must authorize the trades...
// This will not ACCEPT or DECLINE Trades, it will simply authorize them, as you would with your phone/steam app.
activeAccount.confirmOutstandingTrades(function (err, confirmedTrades) {
callback(err, confirmedTrades);
});
});
}
else {
// Otherwise cancel the trade offer.
offer.cancel(function (err) {
if (err)
console.log(err);
});
}
}
else if (offer.itemsToGive.length == 0 && offer.itemsToReceive.length > 0) {
// The trader is giving items, we are not giving anything.
offer.accept(true, function (err, status) {
if (err)
console.log(err);
// So accept. Usually however, user may need to authorize the trade, which can be checked with another event.
});
}
else {
// The trade requires deposit from both traders, so just decline.
offer.cancel(function (err) {
if (err)
console.log(err);
});
}
});
botsManager.infoDebug("Starting Bot Manager");
botsManager.startManager(function (err) {
if (err)
botsManager.errorDebug("Failed to start Bot Manager");
});// You must start the manager at the end so that all the hooks above it, are registered.
}
new InventoryBot();// Run the code above.
module.exports = InventoryBot;