Merge pull request #31 from Netifriik/master

added Killing Floor 2, 7 Days to Die, Battlefield Hardline and Unturned support
This commit is contained in:
Michael Morrison 2015-08-08 19:22:20 -05:00
commit 957c0e20ea
4 changed files with 21 additions and 10 deletions

View file

@ -39,7 +39,7 @@ module.exports = Class.extend(EventEmitter,{
name: '',
map: '',
password: false,
raw: {},
maxplayers: 0,
@ -82,7 +82,7 @@ module.exports = Class.extend(EventEmitter,{
});
}
this.timers = [];
if(this.tcpSocket) {
this.tcpSocket.destroy();
delete this.tcpSocket;
@ -124,7 +124,7 @@ module.exports = Class.extend(EventEmitter,{
},
parseDns: function(host,c) {
var self = this;
function resolveStandard(host,c) {
dns.lookup(host, function(err,address,family) {
if(err) return self.fatal(err);
@ -139,7 +139,7 @@ module.exports = Class.extend(EventEmitter,{
var line = addresses[0];
self.options.port = line.port;
var srvhost = line.name;
if(srvhost.match(/\d+\.\d+\.\d+\.\d+/)) {
self.options.address = srvhost;
c();
@ -177,8 +177,8 @@ module.exports = Class.extend(EventEmitter,{
return id;
},
trueTest: function(str) {
if(typeof str == 'boolean') return str;
if(typeof str == 'number') return str != 0;
@ -228,7 +228,7 @@ module.exports = Class.extend(EventEmitter,{
socket.setTimeout(10000);
socket.setNoDelay(true);
if(this.debug) console.log(address+':'+port+" TCPCONNECT");
var writeHook = socket.write;
socket.write = function(data) {
if(self.debug) console.log(address+':'+port+" TCP--> "+data.toString('hex'));
@ -292,7 +292,7 @@ module.exports = Class.extend(EventEmitter,{
if(!('address' in this.options)) return this.fatal('Attempted to send without setting an address');
if(typeof buffer == 'string') buffer = new Buffer(buffer,'binary');
if(this.debug) console.log(this.options.address+':'+this.options.port_query+" UDP--> "+buffer.toString('hex'));
this.udpSocket.send(buffer,0,buffer.length,this.options.port_query,this.options.address);
},

View file

@ -12,7 +12,7 @@ module.exports = require('./core').extend({
this.udpSend('\xff\xff\xff\xff'+this.sendHeader+'\x00',function(buffer) {
var reader = self.reader(buffer);
var header = reader.string({length:4});
if(header != '\xff\xff\xff\xff') return;
@ -76,7 +76,9 @@ module.exports = require('./core').extend({
if('g_needpass' in state.raw) state.password = state.raw.g_needpass;
if('mapname' in state.raw) state.map = state.raw.mapname;
if('sv_maxclients' in state.raw) state.maxplayers = state.raw.sv_maxclients;
if('maxclients' in state.raw) state.maxplayers = state.raw.maxclients;
if('sv_hostname' in state.raw) state.name = state.raw.sv_hostname;
if('hostname' in state.raw) state.name = state.raw.hostname;
self.finish(state);
return true;