[Protocol] Valve: support app and dedicated app id

This commit is contained in:
CosminPerRam 2023-02-18 21:44:17 +02:00
parent fe46359e47
commit 150bc1762e
48 changed files with 259 additions and 179 deletions

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::ALIENS.as_app(), None, None)?;
}, SteamApp::ALIENS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::AOC.as_app(), None, None)?;
}, SteamApp::AOC.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 2304,
Some(port) => port
}, SteamID::ARMA2OA.as_app(), None, None)?;
}, SteamApp::ARMA2OA.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::ASE.as_app(), None, None)?;
}, SteamApp::ASE.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::ASRD.as_app(), None, None)?;
}, SteamApp::ASRD.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27020,
Some(port) => port
}, SteamID::AVORION.as_app(), None, None)?;
}, SteamApp::AVORION.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,13 +1,13 @@
use crate::GDError::TypeParse;
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let mut valve_response = valve::query(address, match port {
None => 7780,
Some(port) => port
}, SteamID::BAT1944.as_app(), None, None)?;
}, SteamApp::BAT1944.as_engine(), None, None)?;
if let Some(rules) = &mut valve_response.rules {
if let Some(bat_max_players) = rules.get("bat_max_players_i") {

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::BB2.as_app(), None, None)?;
}, SteamApp::BB2.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::BM.as_app(), None, None)?;
}, SteamApp::BM.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27016,
Some(port) => port
}, SteamID::BO.as_app(), None, None)?;
}, SteamApp::BO.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::CCURE.as_app(), None, None)?;
}, SteamApp::CCURE.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27004,
Some(port) => port
}, SteamID::COSU.as_app(), None, None)?;
}, SteamApp::COSU.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::CS.as_app(), None, None)?;
}, SteamApp::CS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::CSCZ.as_app(), None, None)?;
}, SteamApp::CSCZ.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::CSGO.as_app(), None, None)?;
}, SteamApp::CSGO.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::CSS.as_app(), None, None)?;
}, SteamApp::CSS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::DOD.as_app(), None, None)?;
}, SteamApp::DOD.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::DODS.as_app(), None, None)?;
}, SteamApp::DODS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::DOI.as_app(), None, None)?;
}, SteamApp::DOI.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27016,
Some(port) => port
}, SteamID::DST.as_app(), None, None)?;
}, SteamApp::DST.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::GM.as_app(), None, None)?;
}, SteamApp::GM.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::HL2DM.as_app(), None, None)?;
}, SteamApp::HL2DM.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::HLDMS.as_app(), None, None)?;
}, SteamApp::HLDMS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::INS.as_app(), None, None)?;
}, SteamApp::INS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::INSMIC.as_app(), None, None)?;
}, SteamApp::INSMIC.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27131,
Some(port) => port
}, SteamID::INSS.as_app(), None, None)?;
}, SteamApp::INSS.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::L4D.as_app(), None, None)?;
}, SteamApp::L4D.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::L4D2.as_app(), None, None)?;
}, SteamApp::L4D2.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27005,
Some(port) => port
}, SteamID::OHD.as_app(), None, None)?;
}, SteamApp::OHD.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 7776,
Some(port) => port
}, SteamID::ONSET.as_app(), None, None)?;
}, SteamApp::ONSET.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 16261,
Some(port) => port
}, SteamID::PZ.as_app(), None, None)?;
}, SteamApp::PZ.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27016,
Some(port) => port
}, SteamID::ROR2.as_app(), None, None)?;
}, SteamApp::ROR2.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::RUST.as_app(), None, None)?;
}, SteamApp::RUST.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::SC.as_app(), None, None)?;
}, SteamApp::SC.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 26900,
Some(port) => port
}, SteamID::SDTD.as_app(), None, None)?;
}, SteamApp::SDTD.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27016,
Some(port) => port
}, SteamID::TF.as_app(), None, None)?;
}, SteamApp::TF.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::TF2.as_app(), None, None)?;
}, SteamApp::TF2.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::TFC.as_app(), None, None)?;
}, SteamApp::TFC.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}

View file

@ -1,7 +1,7 @@
use std::collections::HashMap;
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{Server, ServerPlayer, get_optional_extracted_data, SteamID};
use crate::protocols::valve::{Server, ServerPlayer, get_optional_extracted_data, SteamApp};
#[derive(Debug)]
pub struct TheShipPlayer {
@ -85,7 +85,7 @@ pub fn query(address: &str, port: Option<u16>) -> GDResult<Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::TS.as_app(), None, None)?;
}, SteamApp::TS.as_engine(), None, None)?;
Ok(Response::new_from_valve_response(valve_response))
}

View file

@ -1,12 +1,12 @@
use crate::GDResult;
use crate::protocols::valve;
use crate::protocols::valve::{game, SteamID};
use crate::protocols::valve::{game, SteamApp};
pub fn query(address: &str, port: Option<u16>) -> GDResult<game::Response> {
let valve_response = valve::query(address, match port {
None => 27015,
Some(port) => port
}, SteamID::UNTURNED.as_app(), None, None)?;
}, SteamApp::UNTURNED.as_engine(), None, None)?;
Ok(game::Response::new_from_valve_response(valve_response))
}