* feat: add initial epic client auth call
* fix: working client auth
* feat: unfinished initial EOS query
* first successful query
* first successful server query
* run fmt
* be a bit more detailed about servers
* properly run fmt for sure this time fr fr
* port of what node gamedig has done
* feat: remove query_raw_values to query_raw
* feat: add raw field to epic response
* feat: pass SocketAddr to epic
* feat: remove unused pub access to internal only struct
* feat: add initial generic impl
* fix: possibly conditional comp
* feat: add epic to the protocol list
* feat: add version and add epic to RESPONSES.md
* feat: add asa to definitions
* feat: add initial protocol macros
* feat: conditional serde ser and des
* fix: cfg serde stuff
* fix: epic macro warn dead code
* partial feature gate epic to tls
* fix: remove asa from game definitions
* feat: savage 2 support
* fix: add savage 2 to definitions
* chore: run rustfmt
* fix: config serde use
* fix: remove needless borrow
* docs: add savage 2 to protocols.md
* WIP: Add unreal2 protocol
* Add/Update badge
* protocols/unreal2: Update doc comments and TODOs
* protocols/unreal2: Don't pre-allocate as many bot players
* protocols/unreal2: Use "encoding-rs" for decoding unreal2 strings
* Add/Update badge
* protocols/unreal2: Add constants for player pre-allocation.
Also improve some doc comments and update PACKET_SIZE.
* protocols/unreal2: Early break when enough players have been parsed
Add a fast-path to avoid waiting for packet timeout when we have parsed
as many players as specified in the server info packet.
* protocols/unreal2: Use HashSet to store mutators
* protocols/unreal2: Handle server sending multiple values for a rule
* protocols/unreal2: Add GatheringSettings to control what to query
GatheringSettings allows skipping querying rules and/or players which
can make the query return much faster. This also required moving each
individual query into its own helper.
* protocols/unreal2: Add more derives to types
* protocols/unreal2: Simplify ServerInfo::parse()
Co-Authored-By: CosminPerRam <cosmin.p@live.com>
* Docs: Add unreal2 protocol documentation
I used a website to generate the markdown RESPONSES table, the save file
from this website is included to make updating the table easier in the
future.
https://www.tablesgenerator.com/markdown_tables
* Add/Update badge
* protocols/unreal2: Use the correct encoding for UCS2 strings
* Docs: Remove unnecessary TGN file
---------
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: CosminPerRam <cosmin.p@live.com>
* [Protocol] Add initial files
* [Protocol] Add test to test the request
* [Protocol] Add initial query response type
* [Protocol] Parse teams
* [Protocol] Add players parse and add nice macro
* [Protocol] Add proper derives to structs
* [Protocol] Change to get all informations from one request
* [Protocol] Add Halo: CE support and update CHANGELOG.md
* [Protocol] Remove a .clone usage
* [Protocol] Add todo comment regarding code performance
* [Protocol] Use iterator instead of index range
* [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
* [Protocol] Gamespy3 initial code
* [Protocol] Add rest of challenge solving
* [Protocol] Remove unused stuff
* [Protocol] Remove adding unused bytes
* [Protocol] Clean up code
* [Protocol] Make gs3 a struct
* [Protocol] Add initial key-value parsing
* [Protocol] Manage multiple packets
* [Protocol] Split server vars and other vars
* Revert "[Protocol] Split server vars and other vars"
This reverts commit 9a930aeb68802fcf3d0908a2e031dfea054d37d0.
* [Protocol] Proper packet management and initial response struct
* [Protocol] Fix players_minimum
* [Protocol] Fix server vars to parse only the first packet
* [Protocol] Update CHANGELOG.md
* [Protocol] Initial player parsing
* [Protocol] Split GS one and three
* [Protocol] Add common code file
* [Protocol] Change static to const
* [Protocol] Fix players_online and break on data to map on empty key
* [Protocol] Remove unused types and printlns
* [Protocol] Add teams parsing
* [Protocol] Split key_values and parsing data
* [Crate] Update PROTOCOLS.md
* Initial files + unreal tournament
* Fix master_querant
* Split by delimiter and collect into hashmap
* Furter port to accept more packets
* Improve getting the server's values
* Some initial players parsing
* Players parsing
* Add error handling
* Add some more fields
* Add Battlefield 1942 support.
* Add query_vars and some docs
* Added needed ground stuff
* Minecraft bedrock support!
* Documentation acknowledgements!
* Added utf8_le_undended test, some docs and modified master_querant
* Modified query function to comply with the others
Before: game query -> protocol query (get port or default port)
After: game query (get port or default port) -> protocol query
* Modified md files
* Initial minecraft support
* Made previews_chat an option
* Better error handling and removed version structure
* Minecraft Server types
* Fixed compilation and renamed stuff
* 'extract till you drop!' extracted sockets
* extracted java version and fixed socket udp receive
* Legacy 1.4 and 1.6 implementation (incomplete)
* Furter implementation
* Implementations work
* Protocol beta v1.8+ implemented
* Removed bedrock support
* Added auto query
* Renamed minecraft to mc and added to md's
* Docs, renames and small optimization changes
* Changed java version to be able to return None on players sample