Add tons and tons of games and protocols

This commit is contained in:
Michael Morrison 2014-02-01 09:48:01 -06:00
parent add06a7d8f
commit b51877ef5c
4 changed files with 61 additions and 2 deletions

View File

@ -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
---

View File

@ -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

25
games/americasarmy.js Normal file
View File

@ -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,'');
}
});

8
games/bf2.js Normal file
View File

@ -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;
}
});