[Protocol] Add quake protocols. (#35)

* [Protocol] Initial packet receive implementation

* [Protocol] Add key extraction

* [Protocol] Fix new Ipv4Addr query address and get string with unended

* [Protocol] Properly parse the received data

* [Protocol] Add parse players

* [Protocol] Add bots

* [Protocol] Extract into functions

* [Protocol] Remove quotes from player name

* [Protocol] Add two and three files

* [Protocol] Make quake queries very modular

* [Protocol] Remove the need of a client instance

* [Protocol] Revesed if statement

* [Protocol] Apply clippy fixes and replace String by &str in get send header

* [Protocol] Add one and three implementations

* [Protocol] Add quake2 and quake3 to master_querant

* [Protocol] Fix Q2 implementation

* [Protocol] Change from Ipv4Addr to IpAddr

* [Protocol] Fix Q3 response header

* [Protocol] Fix Q3 response

* [Crate] Add Q1, 2 and 3 to changelog and protocols

* [Protocol] Extract client into separate file and add some docs
This commit is contained in:
CosminPerRam 2023-05-30 15:33:41 +03:00 committed by GitHub
parent 3dbc6498ed
commit d302d1173f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 339 additions and 8 deletions

View file

@ -1,4 +1,4 @@
use gamedig::protocols::gamespy;
use gamedig::protocols::{gamespy, quake};
use gamedig::protocols::minecraft::LegacyGroup;
use gamedig::protocols::valve;
use gamedig::protocols::valve::Engine;
@ -123,6 +123,9 @@ fn main() -> GDResult<()> {
"_gamespy3_vars" => println!("{:#?}", gamespy::three::query_vars(ip, port.unwrap(), None)),
"ffow" => println!("{:#?}", ffow::query(ip, port)),
"cw" => println!("{:#?}", cw::query(ip, port)),
"_quake1" => println!("{:#?}", quake::one::query(ip, port.unwrap(), None)),
"_quake2" => println!("{:#?}", quake::two::query(ip, port.unwrap(), None)),
"_quake3" => println!("{:#?}", quake::three::query(ip, port.unwrap(), None)),
_ => panic!("Undefined game: {}", args[1]),
};