How do I parse the chat messages I input into the game CSGO? There doesn't seem to be any API calls for it.
var Steam = require('steam');
var fs = require('fs');
var bot = new Steam.SteamClient();
//config
var AccName=''; //account login
var AccPasswd=''; //account passwd
var AuthCode=''; //account auth
var PASSWORD='123';//console password
var bCaptureMSG=false;
var CaptureID;
var bSendMessage=false;
var MessageReciveID;
var authID;
if (fs.existsSync('sentryfile'))
{
var sentry = fs.readFileSync('sentryfile');
console.log('[STEAM] logging in with sentry ');
bot.logOn({
accountName: AccName,
password: AccPasswd,
shaSentryfile: sentry
});
}
else
{
console.log('[STEAM] logging in without sentry');
bot.logOn({
accountName: AccName,
password: AccPasswd,
authCode: AuthCode
});
}
bot.on('loggedOn', function() {
console.log('[STEAM] Logged in.');
bot.setPersonaState(Steam.EPersonaState.Online);
});
bot.on('message', function(source, message, type, chatter) {
// respond to both chat room and private messages
console.log('Received message: ' + message);
console.log('Received from: ' + source);
if(bSendMessage){
if(message==''){
return 0;
}
bot.sendMessage(MessageReciveID, message, Steam.EChatEntryType.ChatMsg);
bSendMessage=false;
}
if(bCaptureMSG){
if(message!=''&&
source!=CaptureID)
bot.sendMessage(CaptureID, "FROM '"+source+"': "+'"'+message+'"', Steam.EChatEntryType.ChatMsg);
}
if(message.charAt(0)=='/'&&
source!=authID){
if(message.indexOf("/passwd ") > -1){
var string_start=message.indexOf("wd");
var passwd= "";
string_start+=3;
for (i = string_start; i < message.length; i++) {
passwd += message.charAt(i);
}
if(passwd==PASSWORD){
authID=source;
bot.sendMessage(source, 'Good password', Steam.EChatEntryType.ChatMsg);
return 0;
}else{
bot.sendMessage(source, 'Wrong Password.', Steam.EChatEntryType.ChatMsg);
return 0;
}
}else{
bot.sendMessage(source, 'Type the password before using commands.', Steam.EChatEntryType.ChatMsg);
return 0;
}
}
if (message == '/csgo') {
bot.sendMessage(source, 'Launching cs go.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([730]);
}else if (message == '/tf2') {
bot.sendMessage(source, 'Launching tf2.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([440]);
}else if (message == '/trove') {
bot.sendMessage(source, 'Launching trove.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([304050]);
}else if (message == '/dota2') {
bot.sendMessage(source, 'Launching dota 2.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([440]);
}else if (message == '/dirtybomb') {
bot.sendMessage(source, 'Launching dirty bomb.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([333930]);
}else if (message == '/exitgame') {
bot.sendMessage(source, 'Turning off games.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([0]);
}else if (message == '/run_games') {
bot.sendMessage(source, 'Launching some games.', Steam.EChatEntryType.ChatMsg); // ChatMsg by default
bot.gamesPlayed([730,333930,304050,570]);
}else if(message.indexOf("/setname ") > -1){
if(message.charAt(0)=='/'){
bot.sendMessage(source, 'Setting new name.', Steam.EChatEntryType.ChatMsg);
var name_start=message.indexOf("me");
var name= "";
name_start+=3;
for (i = name_start; i < message.length; i++) {
name += message.charAt(i);
}
bot.setPersonaName(name);
bot.sendMessage(source, "New name = " + name, Steam.EChatEntryType.ChatMsg);
}else{
bot.sendMessage(source, 'Wrong syntax: /setname <name>', Steam.EChatEntryType.ChatMsg);
}
}else if(message.indexOf("/run ") > -1){
if(message.charAt(0)=='/'){
bot.sendMessage(source, 'Running game.', Steam.EChatEntryType.ChatMsg);
var number_start=message.indexOf("un");
var snumber= "";
number_start+=3;
for (i = number_start; i < message.length; i++) {
snumber += message.charAt(i);
}
var game_id = parseInt(snumber);
bot.gamesPlayed([game_id]);
}else{
bot.sendMessage(source, 'Wrong syntax: /run <id>', Steam.EChatEntryType.ChatMsg);
}
}else if(message.indexOf("/sendmsg ") > -1){
if(message.charAt(0)=='/'){
bot.sendMessage(source, 'Type message:', Steam.EChatEntryType.ChatMsg);
var string_start=message.indexOf("sg");
var recive_ID= "";
string_start+=3;
for (i = string_start; i < message.length; i++) {
recive_ID += message.charAt(i);
}
bSendMessage=true;
MessageReciveID=recive_ID;
}else{
bot.sendMessage(source, 'Wrong syntax: /setname <name>', Steam.EChatEntryType.ChatMsg);
}
}else if(message.indexOf("/setstatus ") > -1){
if(message.charAt(0)=='/'){
bot.sendMessage(source, 'Setting new status.', Steam.EChatEntryType.ChatMsg);
var string_start=message.indexOf("us");
var status= "";
string_start+=3;
for (i = string_start; i < message.length; i++) {
status += message.charAt(i);
}
//if(status like "online") small and big letters
if(status.toUpperCase()==="ONLINE"){
bot.setPersonaState(Steam.EPersonaState.Online);
bot.sendMessage(source, 'New Status = '+status, Steam.EChatEntryType.ChatMsg);
}else if(status.toUpperCase()==="AWAY"){
bot.setPersonaState(Steam.EPersonaState.Away);
bot.sendMessage(source, 'New Status = '+status, Steam.EChatEntryType.ChatMsg);
}else if(status.toUpperCase()==="BUSY"){
bot.setPersonaState(Steam.EPersonaState.Busy);
bot.sendMessage(source, 'New Status = '+status, Steam.EChatEntryType.ChatMsg);
}else if(status.toUpperCase()==="LOOKINGTOTRADE"||
status.toUpperCase()==="LTT"||
status.toUpperCase()==="TRADE"){
bot.setPersonaState(Steam.EPersonaState.LookingToTrade);
bot.sendMessage(source, 'New Status = '+status, Steam.EChatEntryType.ChatMsg);
}else if(status.toUpperCase()==="LOOKINGTOPLAY"||
status.toUpperCase()==="LTP"||
status.toUpperCase()==="PLAY"){
bot.setPersonaState(Steam.EPersonaState.LookingToPlay);
bot.sendMessage(source, 'New Status = '+status, Steam.EChatEntryType.ChatMsg);
}else if(status.toUpperCase()==="OFFLINE"){
bot.setPersonaState(Steam.EPersonaState.Busy);
bot.sendMessage(source, 'New Status = '+status, Steam.EChatEntryType.ChatMsg);
}else{
bot.sendMessage(source, 'Unknown status.', Steam.EChatEntryType.ChatMsg);
}
}else{
bot.sendMessage(source, 'Wrong syntax: /setname <name>', Steam.EChatEntryType.ChatMsg);
}
}else if (message == '/capture_msg') {
if(bCaptureMSG==true){
bot.sendMessage(source, 'Turning Capture Messages off.', Steam.EChatEntryType.ChatMsg);
bCaptureMSG=false;
}else{
bot.sendMessage(source, 'Turning Capture Messages on.', Steam.EChatEntryType.ChatMsg);
CaptureID=source;
bCaptureMSG=true;
}
}else if (message == '/help') {
bot.sendMessage(source, '+++++++++++++++++++++++++++++++++++', Steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, '+++++++++++ SteamBOT v0.1 +++++++++++', Steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, '+++++++++++++++++++++++++++++++++++', Steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, '', Steam.EChatEntryType.ChatMsg);
bot.sendMessage(source, 'Commands:\n/tf2 ///runs team fortress 2\n/csgo ///runs csgo\n/dota2 ///runs dota2\n/trove ///runs trove\n/dirtybomb ///runs dirtybomb\n/run_games ///runs some popular games\n\n\/run <game_id> ///runs game with given game_id\n/exitgame ///exit all games\n\n/setname <name> //set given name\n\/setstatus <status> //set given status [Online,Offline,Away,Busy,LookingToPlay,LookingToPlay]\n\n/capture_msg ///capture all messages sent to this account\n/sendmsg <receiver_id> ///send message to someone', Steam.EChatEntryType.ChatMsg);
}else{
if(message!='')
if(message.charAt(0)=='/')
bot.sendMessage(source, 'Wrong command.', Steam.EChatEntryType.ChatMsg);
}
});
bot.on('sentry', function(sentryHash)
{//A sentry file is a file that is sent once you have
//passed steamguard verification.
console.log('[STEAM] Received sentry file.');
fs.writeFile('sentryfile',sentryHash,function(err) {
if(err){
console.log(err);
} else {
console.log('[FS] Saved sentry file to disk.');
}});
});
//Handle logon errors
bot.on('error', function(e) {
console.log('[STEAM] ERROR - Logon failed');
if (e.eresult == Steam.EResult.InvalidPassword)
{
console.log('Reason: invalid password');
}
else if (e.eresult == Steam.EResult.AlreadyLoggedInElsewhere)
{
console.log('Reason: already logged in elsewhere');
}
else if (e.eresult == Steam.EResult.AccountLogonDenied)
{
console.log('Reason: logon denied - steam guard needed');
}
})
from how to parse my inputted chat message from CSGO game?
No comments:
Post a Comment