From b51877ef5c7aacb67e75dcb97d63bcaf3604061e Mon Sep 17 00:00:00 2001 From: Michael Morrison Date: Sat, 1 Feb 2014 09:48:01 -0600 Subject: [PATCH] Add tons and tons of games and protocols --- README.md | 20 ++++++++++++++++++-- games/aliases.txt | 10 ++++++++++ games/americasarmy.js | 25 +++++++++++++++++++++++++ games/bf2.js | 8 ++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 games/americasarmy.js create mode 100644 games/bf2.js diff --git a/README.md b/README.md index fc3a644..70a8680 100644 --- a/README.md +++ b/README.md @@ -59,8 +59,19 @@ Some servers may return an additional player count number, which may be present Supported Games --- +* Age of Chivalry (ageofchivalry) * Alien Swarm (alienswarm) +* America's Army 1 (americasarmy) [[Separate Query Port - Usually port+1](#separate-query-port)] +* America's Army 2 (americasarmy2) [[Separate Query Port - Usually port+1](#separate-query-port)] +* America's Army 3 (americasarmy3) [[Separate Query Port - Usually 27020](#separate-query-port)] +* America's Army: Proving Grounds (americasarmypg) [[Separate Query Port - Usually 27020](#separate-query-port)] +* ArmA Armed Assault 1 (arma) +* ArmA Armed Assault 2 (arma2) +* ArmA Armed Assault 3 (arma3) * Armagetron (armagetron) +* Battlefield 1942 (bf1942) [[Separate Query Port - Usually 23000](#separate-query-port)] +* Battlefield 2 (bf2) [[Separate Query Port - Usually 29900](#separate-query-port)] +* Brink (brink) [[Separate Query Port - Usually port+1](#separate-query-port)] * Build and Shoot (buildandshoot) * Counter-Strike 1.6 (cs16) * Counter-Strike: Source (css) @@ -76,7 +87,7 @@ Supported Games * Minecraft (minecraft) [[Additional Notes](#minecraft)] * Mutant Factions (mutantfactions) * Natural Selection (ns) -* Natural Selection 2 (ns2) +* Natural Selection 2 (ns2) [[Separate Query Port - Usually port+1](#separate-query-port)] * No More Room in Hell (nmrih) * Nuclear Dawn (nucleardawn) * Quake 2 (quake2) @@ -116,13 +127,18 @@ Some minecraft servers may not respond to a typical status query. If this is the 'minecraftping' server type instead, which uses a less accurate but more reliable solution. #### Nadeo (ShootMania / TrackMania / etc) -To query a nadeo game, you must have a user account on the server with access level User or higher. +The server must have xmlrpc enabled, and you must pass the xmlrpc port to GameDig, not the connection port. +You must have a user account on the server with access level User or higher. Pass the login into to GameDig with the additional options: login, password #### Terraria Requires tshock server mod, and a REST user token, which can be passed to GameDig with the additional option: token +#### Separate Query Port +Games with this note use a query port which is usually not the same as the game's connection port. +You must pass the query port to GameDig, not the connection port. + Usage from Command Line --- diff --git a/games/aliases.txt b/games/aliases.txt index f12615f..a96fff3 100644 --- a/games/aliases.txt +++ b/games/aliases.txt @@ -1,6 +1,16 @@ # id | pretty | protocol | port? +ageofchivalry|Age of Chivalry|valve alienswarm|Alien Swarm|valve +americasarmy2|America's Army 2|americasarmy +americasarmy3|America's Army 3|valve|27020 +americasarmypg|America's Army: Proving Grounds|valve|27020 +arma|ArmA Armed Assault 1|gamespy2|2302 +arma2|ArmA Armed Assault 2|gamespy3|2302 +arma3|ArmA Armed Assault 3|gamespy3|2302 +bf1942|Battlefield 1942|gamespy1|23000 +bf2142|Battlefield 2142|gamespy3|29900 +brink|Brink|valve|27016 csgo|Counter-Strike: Global Offensive|valve css|Counter-Strike: Source|valve cs16|Counter-Strike 1.6|valvegold diff --git a/games/americasarmy.js b/games/americasarmy.js new file mode 100644 index 0000000..e19eb71 --- /dev/null +++ b/games/americasarmy.js @@ -0,0 +1,25 @@ +module.exports = require('./protocols/gamespy2').extend({ + init: function() { + this._super(); + this.options.port = 1717; + this.pretty = 'America\'s Army 1'; + }, + finalizeState: function(state) { + this._super(state); + state.name = this.stripColor(state.name); + state.map = this.stripColor(state.map); + for(var i in state.raw) { + if(!(typeof state.raw[i] == 'string')) continue; + state.raw[i] = this.stripColor(state.raw[i]); + } + for(var i = 0; i < state.players.length; i++) { + var player = state.players[i]; + if(!('name' in player)) continue; + player.name = this.stripColor(player.name); + } + }, + stripColor: function(str) { + // uses unreal 2 color codes + return str.replace(/\x1b...|[\x00-\x1a]/g,''); + } +}); diff --git a/games/bf2.js b/games/bf2.js new file mode 100644 index 0000000..a1abeaa --- /dev/null +++ b/games/bf2.js @@ -0,0 +1,8 @@ +module.exports = require('./protocols/gamespy3').extend({ + init: function() { + this._super(); + this.noChallenge = true; + this.pretty = 'Battlefield 2'; + this.options.port = 29900; + } +});