Commit graph

178 commits

Author SHA1 Message Date
Pat Hartl
17fa802c19 Implementation of script debugger component with RPC via SignalR 2025-12-10 20:55:38 -06:00
Pat Hartl
b67d47ce51 Update game actions/save paths if installed version is latest version 2025-12-05 21:24:30 -06:00
Pat Hartl
30423a139a Update import event handlers to AsyncEventHandler 2025-12-05 21:24:08 -06:00
Pat Hartl
18bf0f251c Refactor launcher import (again)
Implements a queue-based importer based on the implementation server-side.
2025-12-05 21:04:01 -06:00
Pat Hartl
01d0b3fa5c Make status required 2025-12-03 02:22:51 -06:00
Pat Hartl
4951aa1a95 Download media on import 2025-12-01 01:21:21 -06:00
Pat Hartl
2ddcd75c19 Bind import UI events 2025-12-01 01:05:32 -06:00
Pat Hartl
09eae10935 Try to get existing entity before creating another 2025-12-01 01:05:18 -06:00
Pat Hartl
0f4633aa50 Rework game importer to maintain collections 2025-11-30 21:52:18 -06:00
Pat Hartl
54ace5d141 Map relational game data, fix individual game import 2025-11-29 19:31:43 -06:00
Pat Hartl
6dfc0906ac Refactor launcher library importing, manifests
Switched the library importing in the launcher to work based on a queue. As a new game is added to the queue, it should find any related data and also add it to the queue. This should result in an easier to maintain importer while reducing the load on the launcher's DAL. This may result in more RAM usage while importing. Local manifests have also been refactored to match manifests in import/export LCX files, removing the old manifest format. This is a large breaking change that will probably break existing game installations. A migration will probably have to be created.
2025-11-29 18:24:27 -06:00
Pat Hartl
a281ef473e Fix script debugging in launcher, fix cmdlet registration 2025-11-26 22:38:04 -06:00
Pat Hartl
e6c12b4809 Refactor script debugging
Instead of providing delegates to a ScriptClient singleton, script execution now relies on dependency injection for debugging. This can be handled by registering an implementation of IScriptDebugger. Multiple script debuggers are supported. These changes required the creation of a PowerShellScriptFactory to handle DI of the service provider to the script.

In the case of LANCommander, "debugging" scripts really just gives an opportunity for the application to break after a script's execution and provide a poor-man's pty. This could be expanded upon in the future to hook directly into PowerShell's debugging functionality, but would require a substantial refactor to script execution.
2025-11-26 01:09:52 -06:00
Pat Hartl
d8af75df26 Load all cmdlets defined in code 2025-11-25 23:58:43 -06:00
Pat Hartl
a549f06a85 Fix service registration in CLI. Create abstraction for external script runners. 2025-11-23 20:54:56 -06:00
Pat Hartl
d6577564db Move launcher settings to separate assembly 2025-11-23 20:53:45 -06:00
Pat Hartl
52dc00791b Fix null reference when no token is stored 2025-11-20 01:20:51 -06:00
Pat Hartl
256b46e823 Fix storage of authentication token 2025-11-19 00:36:03 -06:00
Pat Hartl
5fa665f5ed Merge branch 'main' into development
# Conflicts:
#	LANCommander.Launcher.Services/AuthenticationService.cs
#	LANCommander.Launcher/UI/App.Chat.razor
#	LANCommander.Launcher/UI/App.Main.razor
#	LANCommander.Launcher/UI/Pages/Settings/Index.razor
2025-11-09 14:33:07 -06:00
Pat Hartl
f05e125809 Fix scope lifetime, remove OnLogin/OnRegister events 2025-11-09 14:30:31 -06:00
Pat Hartl
acb91f8484 Fix login/logout UX
- Moves authentication back to a /Authenticate page route
- Flatten the namespaces of page components
- Implement top-level layouts as windows
- Move handling of redirecting to /Authenticate with component inside of an AuthenticatedLayout
- Use individiual injected services instead of SDK.Client
- Wipe out tokens on logout
- Process logout even if server can't be reached
2025-11-07 20:19:13 -06:00
Pat Hartl
cf0ccc3b70 Load additional data for populating depot results 2025-11-07 19:24:04 -06:00
Pat Hartl
1983cf4bb3 Apply database migration on startup, add default install directory 2025-11-06 20:15:05 -06:00
Pat Hartl
8b3bf3de7b Add grace period to keep alive
Adds a grace period to the keep alive watchdog. This ensures that if the connection is severed for more than 10 seconds, it will then raise the ConnectionSevered event, thus displaying the notification of disconnection.
2025-10-22 00:09:18 -05:00
Pat Hartl
d85e716bbb Add cancel install to launcher
Fixes #293
2025-10-15 21:26:40 -05:00
Pat Hartl
2f969a196d Add ability to browse files on Linux/macOS
Fixes #349
2025-10-15 20:21:54 -05:00
Pat Hartl
cf73dca217 Increase debug logging 2025-10-08 19:51:44 -05:00
Pat Hartl
2b30158764 Implement debounce to avoid thrashing disk on settings update 2025-10-06 19:25:24 -05:00
Pat Hartl
c6bcb7e920 Refactor KeepAliveService to rely on IConnectionClient 2025-10-05 19:30:59 -05:00
Pat Hartl
382a270b03 Simplify connection state management 2025-10-05 17:13:47 -05:00
Pat Hartl
ab73e9c4e0 Rework SettingsProvider 2025-10-02 19:41:47 -05:00
Pat Hartl
4cbf672bb1 Fix auth, API response deserialization 2025-10-01 18:45:30 -05:00
Pat Hartl
5cab1f3618 Remove old SettingsService, replace with Options pattern 2025-09-29 19:49:09 -05:00
Pat Hartl
aaf65fcf09 Runnable launcher using new client 2025-09-27 16:39:54 -05:00
Pat Hartl
d24f72beed Merge branch 'main' into refactor/sdk-dependency-injection
# Conflicts:
#	LANCommander.SDK/LANCommander.SDK.csproj
2025-09-25 19:38:21 -05:00
Pat Hartl
6dd4475e49 Centrally manage packages 2025-09-25 19:11:37 -05:00
Pat Hartl
d875377f15 Rename SDK services -> clients, implement new configuration, use dependency injection for clients 2025-09-24 20:58:23 -05:00
Pat Hartl
b4d48afe3a Track when game was last imported 2025-09-05 17:38:34 -05:00
Pat Hartl
209208632d Fix importing using transaction 2025-09-05 17:38:05 -05:00
Pat Hartl
c223b3756c Improve import speed by using transactions 2025-09-05 02:00:59 -05:00
Pat Hartl
aa6096b9e2 Merge branch 'feature/chat' 2025-08-29 00:57:38 -05:00
Pat Hartl
4682ace384 Clean up launcher startup using extensions 2025-08-24 20:29:31 -05:00
Pat Hartl
edbd37430b Basic support for calling the launcher via shell scheme (e.g. lancommander://Run {GameId}) 2025-08-21 18:16:21 -05:00
Pat Hartl
5a32bbf890 Add localization support to launcher
Adds localization across the launcher and includes English, German, Spanish, French, Italian, Japanese, Korean, Dutch, Portuguese, Ukranian, and Chinese. These localizations were generated by Claude 3.5 and need to be reviewed by a human for accuracy.
2025-08-18 21:29:38 -05:00
Pat Hartl
91bead2ed7 Have launcher use AppData/Local if it has no write access to its base directory
Fixes #292
2025-08-18 17:49:17 -05:00
Bastien Vidé
5b7d24584f Corrected client-side autoupdater and server-side CheckForUpdate route 2025-08-12 19:04:19 +02:00
Pat Hartl
640f476986
Merge pull request #291 from RattleSN4K3/feature/LibraryGameModifySelective
Library changes to addon installation
2025-08-03 14:03:12 -05:00
RattleSN4K3
f87fc87f7e Stop timer events ignoring connection timeouts causing early connection-lost + show retry count in toast message 2025-06-16 01:36:39 +02:00
RattleSN4K3
274f56d3f3 Prevent logging out when reconnecting in the state of switching to offline mode (stop timer before triggering event) 2025-06-16 01:20:03 +02:00
RattleSN4K3
967d1f0579 Fix keep-alive not working after reconnect 2025-06-16 00:12:44 +02:00