* tidy: Move TimeoutSettings out of protocol types
* tidy: Move game type to a types file
* tidy: Move generic query functions to own file
* tidy: Move ExtraRequestSettings to game types
* tidy: Move generic query functions into games module
* Revert "tidy: Move ExtraRequestSettings to game types"
This reverts commit aa0d23fc2acc12d68f03265a9caff6f98bf25054.
* Revert "tidy: Move TimeoutSettings out of protocol types"
This reverts commit 7ee10711ed11f17cc06565d4cc9102040d53a319.
* tidy: Re-export types needed for query at the root
* Add/Update badge
---------
Co-authored-by: GitHub Action <action@github.com>
* [Test] Add best effort test to validate game ID rules
An attempt to implement the rules specified in #108 as a programmatic
test.
* [Test] Refactor ID rules to check if a mod exists after - in game name
This allows fivem to pass the check following rule 8, but could also
cause a false pass in some cases.
* [Test] Add unit tests for ID rule checker
Adds unit tests based on the examples in CONTRIBUTING.md to confirm in
those cases we would allow ID to pass. However these tests don't check
any error cases.
* test/id: Correctly extract protocol names
* games/defs: Fix unreal tournament IDs
* tests: Require game definitions to run ID tests
* tests: Improve comments on ID tests
* tests/id: Combine - seperated numbers
* games/defs: Fix darkest hour ID
* Add/Update badge
---------
Co-authored-by: GitHub Action <action@github.com>
* 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>
* 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>
* 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>