505 Commits

Author SHA1 Message Date
Tixx
edbd99f389
Added CLI argument for user-path (#148)
Simple addition to the CLI args. It could probably do with some
validation, ie; making sure it ends in a slash.

cc: @WiserTixx
2025-05-05 23:47:11 +02:00
Tixx
0341d401e7
Download check (#184)
This PR makes it so that the mod hash and download confirmation are
verified before proceeding.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-05-05 23:46:32 +02:00
Tixx
da84d62391
Notify user about missing protected mods (#183)
Launcher implementation for
https://github.com/BeamMP/BeamMP-Server/pull/430. This PR checks if mods
are protected, and if a mod is missing the launcher will notify the user
about it and give them instructions on how to resolve it.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-05-05 23:46:14 +02:00
Tixx
cc6167cd2e
Bump version v2.4.1 2025-05-03 22:20:55 +02:00
Tixx
d3263acead
Log corrupted download confirmation 2025-05-01 20:54:28 +02:00
Tixx
4de0bc9a40
Check download confirmation packet 2025-05-01 20:47:16 +02:00
Tixx
25a1061700
Verify mod hash after downloading 2025-05-01 20:42:01 +02:00
Tixx
f193c25de6
Switch to using INI parser for startup.ini file 2025-04-27 23:35:39 +02:00
Tixx
efe9f5b614
Add INI parser and function to expand env vars 2025-04-27 23:35:11 +02:00
Tixx
6244fdafc6
Use std::filesystem::operator/ instead of string concat 2025-04-26 19:45:10 +02:00
Tixx
ca93effb7d
Update --user-path error message
Co-authored-by: Lion <development@kortlepel.com>
2025-04-26 18:46:15 +02:00
Tixx
f9d347bd9b
Look for a userfolder specficied in the game's ini config 2025-04-26 18:42:41 +02:00
Tixx
a63f1bd27c
Check if user path argument exists 2025-04-26 18:42:40 +02:00
Tyler Hoyt
ffc36e7f3d
Added cli option for user-path 2025-04-26 18:42:31 +02:00
SaltySnail
e216b6ec06
Get error code when the game fails to launch on windows (#179)
This PR logs the error `CreateProcessA` returns when failing on windows.
This can help with figuring out why the launcher `Failed to Launch the
game!`

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-04-19 21:43:41 +02:00
Tixx
6597fe5e26
Rename windows api variable 2025-04-19 21:23:51 +02:00
Tixx
2fa5d69369
Link to the docs (#181)
Link to the docs instead

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-04-05 12:45:22 +02:00
O1LER
fec80e2c67 Link to the docs 2025-04-05 12:04:57 +02:00
Tixx
dc78883451
Notify user about missing protected mods 2025-04-01 09:09:49 +02:00
Tixx
fa8627a22b
Fix recv return type and better download error handling (#178)
Fixes the recv return value type. This PR corrects the recv return value
type from `int32_t` to `int`. Casting the return value from `int` to
`int32_t` (Currently the case, changed by this pr) would in some cases,
if the transmitted packet was large enough, flip the value causing it to
be a high negative number, which recv will never return. This happens
frequently when downloading big mods over a fast connection.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-03-29 20:18:19 +01:00
Tixx
dd5256ae22
Increase download speed calculation precision 2025-03-29 00:19:25 +01:00
Tixx
e24cbf61bb
Only fail on socket error or connection closed 2025-03-29 00:19:24 +01:00
Tixx
472e2d16b6
Fix recv return type and better download error handling 2025-03-29 00:19:24 +01:00
Tixx
ae650cc142
Get error code when the game fails to launch on windows 2025-03-28 23:16:37 +01:00
Tixx
ad7177bec8
Include chrono (#176)
By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-03-23 22:38:20 +01:00
Tixx
a4005c5876
Include chrono 2025-03-15 23:06:49 +01:00
Tixx
a3ad6f8700
Properly handle the futures (#172)
This PR makes it so that the std::async calls are actually asynchronous.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-03-08 22:29:08 +01:00
Tixx
d3bddb0203
Properly handle the future 2025-02-23 22:04:15 +01:00
Tixx
9e93fa35fa
Bump version v2.4.0 2025-01-21 22:36:40 +01:00
Tixx
8373a70c4b
Mod download improvements (#162)
This PR adds multiple features relating to mod downloads.
1. With this PR the launcher will convert old style mods (without hash)
to new style mods (with hash). This is so people don't have to
re-download all of their mods after joining a server which was
previously on a version below 3.6.0
2. This PR will save the last used date of mods in a JSON file in the
caching directory. This will allow for smart deletion of cached mods

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-01-18 22:56:33 +01:00
Tixx
d52a791dd9
Create mods.json if its missing 2025-01-18 22:29:49 +01:00
Tixx
08a6f9a093
Log current and backend version (#169)
By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-01-18 21:13:54 +01:00
Tixx
e5e40e186b
Server info (#161)
Adds an `I` packet to the core handler, which allows the mod to use the
newly added [information packet
](https://github.com/BeamMP/BeamMP-Server/pull/382) in the server.
Usage:
Mod sends `I0.0.0.0:0000` and the launcher will send either
`I0.0.0.0:0000;` back if something went wrong, or `I0.0.0.0:0000;{Server
information JSON}` if it succeeded.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-01-18 20:52:44 +01:00
Tixx
bfbff52cb1
Log current and backend version 2025-01-12 23:17:23 +01:00
Tixx
8d4ba6f158
Implement size header for info packet 2025-01-12 16:57:33 +01:00
Tixx
a5d450b680
Raise buffer and remove timeout 2025-01-11 22:13:12 +01:00
Tixx
f4e985976f
Strip packet letter in log 2025-01-11 21:55:08 +01:00
Tixx
db9ec53a6e
Up curl connection timeout to 2 minutes (#160)
In some cases it can take longer than 10 seconds to connect to the
backend, so in this PR I've raised the limit to 2 minutes.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-01-11 21:54:35 +01:00
Tixx
f9b2edd410
Better curl debug (#165)
This PR makes it so the launcher logs curl's error description.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-01-11 21:51:13 +01:00
Tixx
333a95262b
Check port and timeout recv 2025-01-11 21:50:39 +01:00
Tixx
e53885a8a8
Raise http get timeout to 2 minutes 2025-01-11 21:45:06 +01:00
Tixx
c22ea1e85d
Fix typo in README.md (#166)
Fix non-critical typo in README:md

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2025-01-08 16:41:24 +01:00
O1LER
f8ea9bd8a3
Fix typo in README.md 2025-01-08 16:38:29 +01:00
Tixx
ad8eab3d66
Log error buffer 2024-12-29 16:39:56 +01:00
Tixx
e880da5cf9
Up curl connection timeout to 2 minutes 2024-12-25 00:54:19 +01:00
Tixx
d14b64c652
Fix linux build 2024-12-25 00:07:13 +01:00
Tixx
649514ca1a
Save mod usage date 2024-12-24 13:53:50 +01:00
Tixx
a8a4dfb77c
Fixed GameDir location issues. (#152)
I couldn't launch the game without this.

---

By creating this pull request, I understand that code that is AI
generated or otherwise automatically generated may be rejected without
further discussion.
I declare that I fully understand all code I pushed into this PR, and
wrote all this code myself and own the rights to this code.
2024-12-23 23:00:47 +01:00
Tixx
7149075d53
Implement core server information packet 2024-12-22 23:56:29 +01:00
Tixx
c485fba26b
Change an easily confusable warning to debug 2024-12-22 12:13:59 +01:00