From 2312ba9114eb4a8d4d2258b4b9b28b15929b6b45 Mon Sep 17 00:00:00 2001 From: CosminPerRam Date: Wed, 18 Jan 2023 18:06:08 +0200 Subject: [PATCH] Games: Colony Survival support. --- CHANGELOG.md | 1 + GAMES.md | 1 + examples/master_querant.rs | 3 ++- src/games/cosu.rs | 12 ++++++++++++ src/games/mod.rs | 2 ++ src/protocols/valve/types.rs | 2 ++ 6 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/games/cosu.rs diff --git a/CHANGELOG.md b/CHANGELOG.md index f16e0ca..4f6873e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Who knows what the future holds... ### Changes: Games: - [Don't Starve Together](https://store.steampowered.com/app/322330/Dont_Starve_Together/) support. +- [Colony Survival](https://store.steampowered.com/app/366090/Colony_Survival/) support. ### Breaking: Nothing. diff --git a/GAMES.md b/GAMES.md index 32e10f9..17e9fd0 100644 --- a/GAMES.md +++ b/GAMES.md @@ -37,6 +37,7 @@ Beware of the `Notes` column, as it contains information about query port offset | Project Zomboid | PZ | Valve Protocol | | | Age of Chivalry | AOC | Valve Protocol | | | Don't Starve Together | DST | Valve Protocol | Query port is 27016. | +| Colony Survival | COLU | Valve Protocol | | ## Planned to add support: _ diff --git a/examples/master_querant.rs b/examples/master_querant.rs index 1900616..0263456 100644 --- a/examples/master_querant.rs +++ b/examples/master_querant.rs @@ -1,6 +1,6 @@ use std::env; -use gamedig::{aliens, aoc, arma2oa, ase, asrd, bat1944, bm, cs, cscz, csgo, css, dod, dods, doi, dst, GDResult, gm, hl2dm, hldms, ins, insmic, inss, l4d, l4d2, mc, pz, ror2, rust, sc, sdtd, tf, tf2, tfc, ts, unturned}; +use gamedig::{aliens, aoc, arma2oa, ase, asrd, bat1944, bm, cosu, cs, cscz, csgo, css, dod, dods, doi, dst, GDResult, gm, hl2dm, hldms, ins, insmic, inss, l4d, l4d2, mc, pz, ror2, rust, sc, sdtd, tf, tf2, tfc, ts, unturned}; use gamedig::protocols::minecraft::LegacyGroup; use gamedig::protocols::valve; use gamedig::protocols::valve::App; @@ -75,6 +75,7 @@ fn main() -> GDResult<()> { "pz" => println!("{:#?}", pz::query(ip, port)?), "aoc" => println!("{:#?}", aoc::query(ip, port)?), "dst" => println!("{:#?}", dst::query(ip, port)?), + "cosu" => println!("{:#?}", cosu::query(ip, port)?), _ => panic!("Undefined game: {}", args[1]) }; diff --git a/src/games/cosu.rs b/src/games/cosu.rs new file mode 100644 index 0000000..0b883fd --- /dev/null +++ b/src/games/cosu.rs @@ -0,0 +1,12 @@ +use crate::GDResult; +use crate::protocols::valve; +use crate::protocols::valve::{game, SteamID}; + +pub fn query(address: &str, port: Option) -> GDResult { + let valve_response = valve::query(address, match port { + None => 27004, + Some(port) => port + }, SteamID::COSU.as_app(), None, None)?; + + Ok(game::Response::new_from_valve_response(valve_response)) +} diff --git a/src/games/mod.rs b/src/games/mod.rs index c2c17d9..bb843ee 100644 --- a/src/games/mod.rs +++ b/src/games/mod.rs @@ -69,3 +69,5 @@ pub mod pz; pub mod aoc; /// Don't Starve Together pub mod dst; +/// Colony Survival +pub mod cosu; diff --git a/src/protocols/valve/types.rs b/src/protocols/valve/types.rs index 04963b9..e97f2e5 100644 --- a/src/protocols/valve/types.rs +++ b/src/protocols/valve/types.rs @@ -187,6 +187,8 @@ pub enum SteamID { DST = 322320, /// Black Mesa BM = 362890, + /// Colony Survival + COSU = 366090, /// Day of Infamy DOI = 447820, /// The Forrest