Commit Graph

353 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 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 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 dc78883451 Notify user about missing protected mods 2025-04-01 09:09:49 +02: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 a4005c5876 Include chrono 2025-03-15 23:06:49 +01:00
Tixx d3bddb0203 Properly handle the future 2025-02-23 22:04:15 +01:00
Tixx 9e93fa35fa Bump version 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 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 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 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
Tixx d35567dd47 Look for new mods in the old format 2024-12-22 12:07:25 +01:00
Winos f2b86cd5a0 Improved error handling as requested. 2024-12-16 09:10:54 -03:00
Tixx 3e7d16a8e8 Update Check for Game Files on Native Linux (#92)
Beforehand, the launcher would check only if the game directory existed.
This would lead to an error if the game was moved through Steam since
Steam leaves the BeamNG.Drive directory behind. Now it checks for to see
if integrity.json is inside. I also removed some commented out code I
seem to have left behind when I was porting it.

I agree to this code (and the whole port to native Linux since the #63
was locked and I couldn't agree there) being licensed under AGPL 3.
2024-12-14 20:47:58 +01:00
Winos 63aee03969 Update BeamNG.cpp
As requested:
- Changed 'string' variables that referred to paths to 'filesystem'.
- Added error log for when a valid 'GameDir' isn't found.

Also readded error log for when 'libraryfolders.vdf' is missing for better contextualization for the 'basic_string::_M_replace_aux' error (the code doesn't reach the GameDir segment when that file is not found).
2024-12-10 20:10:07 -03:00
Tixx 46e6fda26e Update license header 2024-12-07 11:26:09 +01:00
Winos 89327b8e20 Update src/Security/BeamNG.cpp
Co-authored-by: Tixx <83774803+WiserTixx@users.noreply.github.com>
2024-12-06 15:03:25 -03:00
Winos ebf1579ce4 Update src/Security/BeamNG.cpp
Co-authored-by: Tixx <83774803+WiserTixx@users.noreply.github.com>
2024-12-06 15:03:19 -03:00
Winos a06470cb70 Update src/Security/BeamNG.cpp
Co-authored-by: Tixx <83774803+WiserTixx@users.noreply.github.com>
2024-12-06 15:02:07 -03:00
Winos 80a3feb349 Update src/Security/BeamNG.cpp
Co-authored-by: Tixx <83774803+WiserTixx@users.noreply.github.com>
2024-12-06 15:02:00 -03:00
Winos ec1a09bbcb Fixed GameDir localization issues.
I couldn't launch the game without this.
2024-12-05 03:56:13 -03:00