Skip to content

Instantly share code, notes, and snippets.

@trevorstarick
Last active December 16, 2015 15:29
Show Gist options
  • Save trevorstarick/5456778 to your computer and use it in GitHub Desktop.
Save trevorstarick/5456778 to your computer and use it in GitHub Desktop.
var steam = require("steam");
var fs = require('fs');
var yql = require('yql');
var steamname ="";
//
var username = "traderbot";
var bot = new steam.SteamClient();
bot.logOn(username, 'Batman12345','K8HQB');
bot.on('loggedOn', function(){
console.log("Logged on...");
bot.setPersonaState(steam.EPersonaState.Online);
});
//
if (fs.existsSync('servers')) {
steam.servers = JSON.parse(fs.readFileSync('servers'));
}
if(fs.existsSync('sentryfile')){
var sentryfile = fs.readFileSync('sentryfile');
}
//
bot.on('sentry',function(sentryHash) {
require('fs').writeFile(username+'.sentryfile',sentryHash,function(err) {
if(err){
console.log(err);
} else {
console.log('Saved sentry file hash as "sentryfile"');
}
});
});
bot.on('servers', function(servers) {
fs.writeFile('servers', JSON.stringify(servers));
});
bot.on('chatInvite', function(chatRoomID, chatRoomName, patronID) {
console.log('Got an invite to ' + chatRoomName + ' from ' + bot.users[patronID].playerName);
bot.joinChat(chatRoomID); // autojoin on invite
});
bot.on('message', function(source, message, type, chatter) {
// respond to both chat room and private messages
message = message.replace(/\./g,'');
message = message.toLowerCase();
if (message.charAt(0) == '/'){
switch (message) {
case '/ping':
bot.sendMessage(source, 'Pong!', steam.EChatEntryType.ChatMsg);
newMessage(message,source);
break;
case '/whoami':
bot.sendMessage(source, 'You are '+name, steam.EChatEntryType.ChatMsg);
newMessage(message,source);
break;
case '/admin':
bot.sendMessage(source, 'Admin features not fully enabled yet!',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, 'Type "/admin help" to get a list of admin commands',steam.EChatEntryType.ChatMsg);
newMessage(message,source);
break;
case '/admin help':
bot.sendMessage(source, 'ADMIN HELP MENU:',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, '**Admin features not fully enabled yet!**',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, ' Type "/whoami" to get your Steam ID',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, ' Type "/ping" to ping the traderbot',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, ' Type "/help" to get a list of commands',steam.EChatEntryType.ChatMsg);
newMessage(message,source);
break;
case '/help':
bot.sendMessage(source, 'HELP MENU:',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, ' Type "/whoami" to get your Steam ID',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, ' Type "/ping" to ping the traderbot',steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, ' Type "/help" to get a list of commands',steam.EChatEntryType.ChatMsg);
newMessage(message,source);
break;
default:
bot.sendMessage(source, "Sorry I don't know that command. Type '/help' to get a list of commands",steam.EChatEntryType.ChatMsg);
newMessage(message,source);
}
}
if (message.charAt(0) !== '/'){
switch (message) {
case 'hi':
bot.sendMessage(source, "Hi! I'm Traderbot. What can I help you with? Type '/help' to get a list of commands", steam.EChatEntryType.ChatMsg);
newMessage(message,source);
break;
case '' :
break;
default:
newMessage(message,source);
}
}
});
function newMessage(message,source){
new yql.exec("SELECT * FROM html where url=\"http://steamidconverter.com/"+source+"\" and xpath='//h2[@id=\"name\"]'", function(res) {
steamname = res.query.results.h2.content;
console.log('Received message from '+steamname+': ' + message);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment