mirror of
https://github.com/tribufu/rust-gamedig
synced 2026-05-06 15:27:28 +00:00
* [Games] Update game definitions to match node-gamedig names * Update game file names to match definitions * [Games] rename minecraft definitions to better match node * [Games] Add test that all game files match definition name * Update SteamApp to match node names * [Games] Update the forest to match node-GameDig#367 * Clippy fix in games test * [Docs] Update GAMES.md with new names * [DOCS] Update changelog
202 lines
7.4 KiB
Rust
202 lines
7.4 KiB
Rust
use gamedig::protocols::minecraft::LegacyGroup;
|
|
use gamedig::protocols::valve;
|
|
use gamedig::protocols::valve::Engine;
|
|
use gamedig::protocols::{gamespy, quake};
|
|
use gamedig::{
|
|
ageofchivalry,
|
|
alienswarm,
|
|
arkse,
|
|
arma2oa,
|
|
asrd,
|
|
avorion,
|
|
ballisticoverkill,
|
|
bat1944,
|
|
bf1942,
|
|
blackmesa,
|
|
brainbread2,
|
|
codenamecure,
|
|
colonysurvival,
|
|
creativerse,
|
|
crysiswars,
|
|
cs,
|
|
cscz,
|
|
csgo,
|
|
css,
|
|
dod,
|
|
dods,
|
|
doi,
|
|
dst,
|
|
ffow,
|
|
garrysmod,
|
|
haloce,
|
|
hl2dm,
|
|
hldms,
|
|
hll,
|
|
insurgency,
|
|
insurgencymic,
|
|
insurgencysandstorm,
|
|
jc2mp,
|
|
left4dead,
|
|
left4dead2,
|
|
mc,
|
|
ohd,
|
|
onset,
|
|
przomboid,
|
|
quake1,
|
|
quake2,
|
|
quake3,
|
|
ror2,
|
|
rust,
|
|
sd2d,
|
|
ship,
|
|
sof2,
|
|
ss,
|
|
svencoop,
|
|
tf2,
|
|
tfc,
|
|
theforest,
|
|
unturned,
|
|
ut,
|
|
vrising,
|
|
warsow,
|
|
GDResult,
|
|
};
|
|
use std::env;
|
|
use std::net::{IpAddr, SocketAddr};
|
|
|
|
fn main() -> GDResult<()> {
|
|
let args: Vec<String> = env::args().collect();
|
|
|
|
if args.len() == 1 || args[1] == *"help" {
|
|
println!("Usage: <game> <ip> <port>");
|
|
println!(" <game> - any game, example: tf2");
|
|
println!(" <ip> - an ip, example: 192.168.0.0");
|
|
println!(" <port> - an port, optional, example: 27015");
|
|
return Ok(());
|
|
} else if args.len() < 3 {
|
|
println!("Minimum number of arguments: 3, try 'help' to see the details.");
|
|
return Ok(());
|
|
}
|
|
|
|
let ip = &args[2].as_str().parse::<IpAddr>().unwrap();
|
|
let port = match args.len() == 4 {
|
|
false => {
|
|
if args[1].starts_with('_') {
|
|
panic!("The port must be specified with an anonymous query.")
|
|
}
|
|
|
|
None
|
|
}
|
|
true => Some(args[3].parse::<u16>().expect("Invalid port!")),
|
|
};
|
|
let address = &SocketAddr::new(*ip, port.unwrap_or(0));
|
|
|
|
match args[1].as_str() {
|
|
"alienswarm" => println!("{:#?}", alienswarm::query(ip, port)?),
|
|
"asrd" => println!("{:#?}", asrd::query(ip, port)?),
|
|
"csgo" => println!("{:#?}", csgo::query(ip, port)?),
|
|
"css" => println!("{:#?}", css::query(ip, port)?),
|
|
"dods" => println!("{:#?}", dods::query(ip, port)?),
|
|
"garrysmod" => println!("{:#?}", garrysmod::query(ip, port)?),
|
|
"hl2dm" => println!("{:#?}", hl2dm::query(ip, port)?),
|
|
"tf2" => println!("{:#?}", tf2::query(ip, port)?),
|
|
"insurgencymic" => println!("{:#?}", insurgencymic::query(ip, port)?),
|
|
"insurgency" => println!("{:#?}", insurgency::query(ip, port)?),
|
|
"insurgencysandstorm" => println!("{:#?}", insurgencysandstorm::query(ip, port)?),
|
|
"left4dead" => println!("{:#?}", left4dead::query(ip, port)?),
|
|
"left4dead2" => println!("{:#?}", left4dead2::query(ip, port)?),
|
|
"ship" => println!("{:#?}", ship::query(ip, port)?),
|
|
"cscz" => println!("{:#?}", cscz::query(ip, port)?),
|
|
"dod" => println!("{:#?}", dod::query(ip, port)?),
|
|
"_src" => {
|
|
println!(
|
|
"{:#?}",
|
|
valve::query(address, Engine::Source(None), None, None)?
|
|
)
|
|
}
|
|
"_gld" => {
|
|
println!(
|
|
"{:#?}",
|
|
valve::query(address, Engine::GoldSrc(false), None, None)?
|
|
)
|
|
}
|
|
"_gld_f" => {
|
|
println!(
|
|
"{:#?}",
|
|
valve::query(address, Engine::GoldSrc(true), None, None)?
|
|
)
|
|
}
|
|
"mc" => println!("{:#?}", mc::query(ip, port)?),
|
|
"mc_java" => println!("{:#?}", mc::query_java(ip, port, None)?),
|
|
"mc_bedrock" => println!("{:#?}", mc::query_bedrock(ip, port)?),
|
|
"mc_legacy" => println!("{:#?}", mc::query_legacy(ip, port)?),
|
|
"mc_legacy_vb1_8" => {
|
|
println!(
|
|
"{:#?}",
|
|
mc::query_legacy_specific(LegacyGroup::VB1_8, ip, port)?
|
|
)
|
|
}
|
|
"mc_legacy_v1_4" => {
|
|
println!(
|
|
"{:#?}",
|
|
mc::query_legacy_specific(LegacyGroup::V1_4, ip, port)?
|
|
)
|
|
}
|
|
"mc_legacy_v1_6" => {
|
|
println!(
|
|
"{:#?}",
|
|
mc::query_legacy_specific(LegacyGroup::V1_6, ip, port)?
|
|
)
|
|
}
|
|
"7dtd" => println!("{:#?}", sd2d::query(ip, port)?),
|
|
"arkse" => println!("{:#?}", arkse::query(ip, port)?),
|
|
"unturned" => println!("{:#?}", unturned::query(ip, port)?),
|
|
"theforest" => println!("{:#?}", theforest::query(ip, port)?),
|
|
"tfc" => println!("{:#?}", tfc::query(ip, port)?),
|
|
"svencoop" => println!("{:#?}", svencoop::query(ip, port)?),
|
|
"rust" => println!("{:#?}", rust::query(ip, port)?),
|
|
"cs" => println!("{:#?}", cs::query(ip, port)?),
|
|
"arma2oa" => println!("{:#?}", arma2oa::query(ip, port)?),
|
|
"doi" => println!("{:#?}", doi::query(ip, port)?),
|
|
"hldms" => println!("{:#?}", hldms::query(ip, port)?),
|
|
"ror2" => println!("{:#?}", ror2::query(ip, port)?),
|
|
"bat1944" => println!("{:#?}", bat1944::query(ip, port)?),
|
|
"blackmesa" => println!("{:#?}", blackmesa::query(ip, port)?),
|
|
"przomboid" => println!("{:#?}", przomboid::query(ip, port)?),
|
|
"ageofchivalry" => println!("{:#?}", ageofchivalry::query(ip, port)?),
|
|
"dst" => println!("{:#?}", dst::query(ip, port)?),
|
|
"colonysurvival" => println!("{:#?}", colonysurvival::query(ip, port)?),
|
|
"onset" => println!("{:#?}", onset::query(ip, port)?),
|
|
"codenamecure" => println!("{:#?}", codenamecure::query(ip, port)?),
|
|
"ballisticoverkill" => println!("{:#?}", ballisticoverkill::query(ip, port)?),
|
|
"brainbread2" => println!("{:#?}", brainbread2::query(ip, port)?),
|
|
"avorion" => println!("{:#?}", avorion::query(ip, port)?),
|
|
"ohd" => println!("{:#?}", ohd::query(ip, port)?),
|
|
"vrising" => println!("{:#?}", vrising::query(ip, port)?),
|
|
"_gamespy1" => println!("{:#?}", gamespy::one::query(address, None)),
|
|
"_gamespy1_vars" => println!("{:#?}", gamespy::one::query_vars(address, None)),
|
|
"ut" => println!("{:#?}", ut::query(ip, port)),
|
|
"bf1942" => println!("{:#?}", bf1942::query(ip, port)),
|
|
"ss" => println!("{:#?}", ss::query(ip, port)),
|
|
"_gamespy3" => println!("{:#?}", gamespy::three::query(address, None)),
|
|
"_gamespy3_vars" => println!("{:#?}", gamespy::three::query_vars(address, None)),
|
|
"ffow" => println!("{:#?}", ffow::query(ip, port)),
|
|
"crysiswars" => println!("{:#?}", crysiswars::query(ip, port)),
|
|
"_quake1" => println!("{:#?}", quake::one::query(address, None)),
|
|
"_quake2" => println!("{:#?}", quake::two::query(address, None)),
|
|
"_quake3" => println!("{:#?}", quake::three::query(address, None)),
|
|
"quake2" => println!("{:#?}", quake2::query(ip, port)?),
|
|
"quake1" => println!("{:#?}", quake1::query(ip, port)?),
|
|
"quake3" => println!("{:#?}", quake3::query(ip, port)?),
|
|
"hll" => println!("{:#?}", hll::query(ip, port)?),
|
|
"sof2" => println!("{:#?}", sof2::query(ip, port)?),
|
|
"_gamespy2" => println!("{:#?}", gamespy::two::query(address, None)),
|
|
"haloce" => println!("{:#?}", haloce::query(ip, port)?),
|
|
"jc2mp" => println!("{:#?}", jc2mp::query(ip, port)?),
|
|
"warsow" => println!("{:#?}", warsow::query(ip, port)?),
|
|
"creativerse" => println!("{:#?}", creativerse::query(ip, port)?),
|
|
_ => panic!("Undefined game: {}", args[1]),
|
|
};
|
|
|
|
Ok(())
|
|
}
|