* protocols: Fix building without the "games" feature
* crate/lib: Add required features for examples
This prevents cargo from running the examples if the required features
aren't enabled.
* ci: Run if ANY Cargo.toml files are changed
* ci: Make sure to run unit tests
* ci: Separate checks for library and CLI
* ci: Add slightly better comments
* ci: Only run deeper tests for CLI or LIB when their files were changed
* ci: Improve act arguments for testing actions locally
* ci: Fix pre-commit not running tests
* ci: Only update shared cache after the initial build
* ci: Make sure that rustup downloads get cached
* tidy: Clean up file formatting
* ci: Fix issue with audit
* ci: Update node coverage badge to work without games.txt
Fixes#155 using a new node script that should be more robust than the
old shell script.
* ci: Change badge cron time to less common time
By doing at a less common time we should reduce action time usage as
the runners will be under less load.
* Add/Update badge
* ci: Improve node-badge script
Co-Authored-By: CosminPerRam <cosmin.p@live.com>
* ci: Run node badge action if script changes
* ci: Update node badge path for workspaces
* ci: Revert loading games from index in node badge script
---------
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: CosminPerRam <cosmin.p@live.com>
Because TcpSocket connects in Socket::new TimeoutSettings are now
required for Socket::new. Since we already have TimeoutSettings there
Sockets are now expected to apply timeout settings in Socket::new.
* chore: initial move and refactor of minecraft
* fix: glob re-exports
* fix: failing example sample
* docs: update changelog to note the mc protocol implementation to games
* docs: add back the reference query standard reference
* fix: minecraft id naming inconsistencies
* fix: minecraft legacy beta 1.8 being wrongly id named in definitions
* docs: Update CHANGELOG to document minecraft legacy renames
* docs: Update CHANGELOG to note removal of legacy versions game names being prefixed with 'v'
* feat: add initial password checking
* feat: add password string check and made the field a bool
* chore: fix formatting
* feat: add password to has_password common response
* 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>
* Fix wrongly named game ids of l4d, l4d2 and q3a
* Specify how edition/protocol names are appended to games, rule 7
* Clarify rule 6 regarding numbers
* Add/Update badge
* Fix rule 7 misswording
* Fix 7 Days to Die
* List id changes in the changelog
* Forgot to fix test
* Apply Douile suggestion regarding rule 6
Co-authored-by: Tom <25043847+Douile@users.noreply.github.com>
* Fix typo on rule 6 and wrap text
* Clarify further rule 7
---------
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Tom <25043847+Douile@users.noreply.github.com>
* Remove the SteamApp enum.
* Further removal
* Replace SteamApp with Engine on game! usage
* Add removal of SteamApp in changelog
* docs: Update reference of SteamApp to Engine
* Update the docs of the Engine type to be more descriptive.
* [Games] Add macro to replace valve game query implementations
This somewhat reduces repeated code (#120), and also adds auto-generated
doc comments to all valve game query functions.
* [Games] Add macro to replace gamespy game query implementations
This somewhat reduces repeated code (#120), and also adds auto-generated
doc comments to all gamespy game query functions.
* [Games] Add macro to replace quake game query implementations
This somewhat reduces repeated code (#120), and also adds auto-generated
doc comments to all quake game query functions.
* [Games] Move all valve game modules into a single file using macros
Vastly reduces the number of files. However does break the game
definition-per-file test, so that was removed.
* [Games] Move all quake game modules into a single file using macros
* [Games] Move all gamespy game modules into a single file using macros
* [Docs] Update CHANGELOG
* [Docs] Improve game query function generation macro documentation
* [Games] Add missed Halo: Combat Evolved to gamespy
* Apply new id naming
* Fix failing CI on all features
* Update changelog
* Rename tf2 example to teamfortress2
* Fix typo in steamapp game names
* Rename minecraft legacy versions
* Apply CI node badge fix by Douile
* Add/Update badge
---------
Co-authored-by: GitHub Action <action@github.com>