Commit graph

79 commits

Author SHA1 Message Date
Pat Hartl
ab73e9c4e0 Rework SettingsProvider 2025-10-02 19:41:47 -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
d875377f15 Rename SDK services -> clients, implement new configuration, use dependency injection for clients 2025-09-24 20:58:23 -05:00
Pat Hartl
a648852292 Implement SDK using dependency injection
- API requests are now made through the ApiRequestBuilder with DI supplied via the ApiRequestFactory singleton
- Reliance on RestSharp and WebClient has been removed in favor of HttpClient
- Auth token is now being tracked by the ITokenProvider
- Network information (MAC address, broadcast addresses, IP address) is now supplied with the INetworkInformationProvider singleton
- Connection state is now being maintained by the ConnectionService, with a reliance on RPC (SignalR websocket) reporting actual connection state without relying on pings
- All download streams are now provided as a TrackableStream
- Singleton Client class has been removed. All usage of the SDK should happen via Dependency Injection

This is just a base, non-functional refactor of the SDK to use DI. The following changes to the rest of the codebase need to be made:
- Usage of the SDK client in the launcher needs to be replaced in favor of injecting SDK services
- PowerShell cmdlets need to be able to have services injected. Most likely a separate scope will have to be opened up per PS runtime?
- Usage of the SDK client in the server needs to be replaced in favor of injecting SDK services. This should be minimal and should actually provide benefit when it comes to executing client-like features (scripts mostly) without needing a fully configured client that maintains connection state.
- Configuration of the client needs to be implemented using ILANCommanderConfiguration
2025-09-22 00:29:51 -05:00
Pat Hartl
188926e37b Add new RPC hub, migrate existing SignalR messaging to strongly typed RPC, add chat data migrations 2025-08-28 19:57:23 -05:00
Pat Hartl
2d89d26e76 Built out hub logic, moved client side stuff to service 2025-08-20 20:53:48 -05:00
Pat Hartl
a9660f7ebe Merge branch 'feature/ReworkOfflineMode' of https://github.com/RattleSN4K3/LANCommander into RattleSN4K3-feature/ReworkOfflineMode
# Conflicts:
#	LANCommander.Launcher/UI/Authenticate/Components/LoginForm.razor
#	LANCommander.Launcher/UI/Authenticate/Components/RegistrationForm.razor
#	LANCommander.Launcher/UI/Components/LibraryItemContextMenu.razor
2025-08-03 00:55:27 -05:00
RattleSN4K3
79d161769e Proper error messaging for login/register, utilizing ErrorResponse 2025-06-22 01:36:17 +02:00
RattleSN4K3
d86b4dd8ee Limit suggested URIs only when proper port is given 2025-06-17 00:27:20 +02:00
RattleSN4K3
5a8ffad8b2 Limit the suggested URIs on attempt to connect to server 2025-06-15 23:39:29 +02:00
RattleSN4K3
d8b768c6d9 Option to temporarily switch to offline mode on startup (if credentials are existent) 2025-06-15 23:39:21 +02:00
RattleSN4K3
6fdb96f167 Reduce timeout of ping/auth request 2025-06-15 23:39:18 +02:00
RattleSN4K3
32b05f1122 No initial server pinging on startup 2025-06-15 18:08:46 +02:00
Pat Hartl
041a0069ee Add DiscoveryBeacon, DiscoveryProbe, new beacon message
Adds a discovery beacon and probe to the client and removes BeaconService from the server.
2025-04-23 21:23:33 -05:00
Pat Hartl
404697d588 Refactor save upload using SavePacker 2025-03-18 20:30:04 -05:00
Pat Hartl
698ddc378e Add test for checking CreatedBy on basic record creation 2025-03-16 21:04:24 -05:00
Pat Hartl
b80d7d0153 First working test 2025-03-15 22:02:26 -05:00
Pat Hartl
9ed99c47ba Fix inaccessible server not allowing launcher to start 2025-03-12 01:10:52 -05:00
Pat Hartl
89a6e4d0a5 Update login UI when attempting to connect launcher 2025-03-11 01:11:20 -05:00
Pat Hartl
dafd0e31ff Try fallback URIs if server is unreachable, enhance ping
Fixes #208
2025-03-10 21:44:51 -05:00
Pat Hartl
e378810edb Use proper token when doing validation
Fixes #186
2025-02-28 22:48:02 -06:00
Pat Hartl
38606a3231 Add progress for redistributable installing
Some checks failed
Publish SDK NuGet Package / publish (push) Failing after 1m42s
LANCommander Release / prep (push) Has been cancelled
LANCommander Release / build_server_win-x64 (push) Has been cancelled
LANCommander Release / build_launcher_linux-arm64 (push) Has been cancelled
LANCommander Release / build_launcher_linux-x64 (push) Has been cancelled
LANCommander Release / build_launcher_osx-arm64 (push) Has been cancelled
LANCommander Release / build_launcher_osx-x64 (push) Has been cancelled
LANCommander Release / build_launcher_win-arm64 (push) Has been cancelled
LANCommander Release / build_launcher_win-x64 (push) Has been cancelled
LANCommander Release / build_server_linux-arm64 (push) Has been cancelled
LANCommander Release / build_server_linux-x64 (push) Has been cancelled
LANCommander Release / build_server_osx-arm64 (push) Has been cancelled
LANCommander Release / build_server_osx-x64 (push) Has been cancelled
LANCommander Release / build_server_win-arm64 (push) Has been cancelled
LANCommander Release / build_release (push) Has been cancelled
2025-01-31 00:34:37 -06:00
Pat Hartl
dd4b961b56 Throw login errors properly 2025-01-25 13:51:00 -06:00
Pat Hartl
c6c372ffd3 Get playsessions on import as separate request 2025-01-25 12:45:33 -06:00
Pat Hartl
f2c7ec36af Skip sending token when trying to get auth providers 2025-01-21 00:17:55 -06:00
Pat Hartl
cf7e81ba54 Detect disconnection from server, automatically go into offline mode 2025-01-18 20:25:39 -06:00
Pat Hartl
7ed1cdebe2 Add login via auth provider to launcher 2025-01-05 21:09:57 -06:00
Pat Hartl
075a5a503d Rename method, add mapping for auth prov 2025-01-03 22:52:30 -06:00
Pat Hartl
e6301fb4ba Get authentication providers via API 2025-01-03 00:55:22 -06:00
Pat Hartl
d5d90d3f35 Change login route 2024-12-28 03:47:02 -06:00
Pat Hartl
7fd07e9de6 Switch HTTP methods 2024-11-12 23:28:05 -06:00
Pat Hartl
fd994c2524 Add more metadata to DepotGame, add DepotService 2024-11-11 19:54:02 -06:00
Pat Hartl
e30a1baef3 Start of migrations, services, controllers 2024-10-31 01:54:34 -05:00
Pat Hartl
0821dfde5c Merge tag 'v1.0.4' into v1.1.0
# Conflicts:
#	LANCommander.Launcher.Services/InstallService.cs
#	LANCommander.Launcher.Services/ProfileService.cs
#	LANCommander.Launcher/UI/Components/DownloadQueue.razor
#	LANCommander.Launcher/wwwroot/css/app.css.map
#	LANCommander.SDK/Enums/InstallStatus.cs
2024-10-28 01:01:57 -05:00
Pat Hartl
4b79df6c48 Report correct error on registration
Fixes #132
2024-10-24 19:44:20 -05:00
Pat Hartl
ce80697332 Throw exception on register if any 2024-10-24 19:38:31 -05:00
Pat Hartl
421e5d4277 Start of save manager dialog
Ref #105
2024-10-23 18:17:01 -05:00
Pat Hartl
781b77f930 Move SDK services to separate namespace 2024-10-04 23:39:07 -05:00
Pat Hartl
3d9749a9db Add importing/exporting of redistributable and server to CLI 2024-10-01 17:56:06 -05:00
Pat Hartl
79786d23b0 More logging for SDK 2024-09-17 00:19:23 -05:00
Pat Hartl
869a2dbfd2 Fix missing LobbyService singleton 2024-09-06 00:30:10 -05:00
Pat Hartl
e3b238e3f0 Refactor game launching
Changes to game launching:
- Games can now be launched using the SDK
- Games can be stopped by the SDK
- Running games are tracked by the SDK
- Game state in play buttons are now tracked by polling SDK game service
- Library service no longer controls any launching/stopping/tracking
- Actions now are keyed in the manifest
- Game launching occurs in a GameExecutionContext
- Game launching variables have been consolidated
2024-08-26 20:18:54 -05:00
Pat Hartl
c0943f559c Add cmdlets for getting/setting custom fields 2024-08-21 20:19:04 -05:00
Pat Hartl
bf9ef30b4b Add game importing via CLI 2024-08-12 19:33:26 -05:00
Pat Hartl
76106691eb Add ability to track issues with games
Adds an admin section to view and resolve submitted issues and a menu option in the game context menu in the launcher to report an issue.
2024-08-11 14:48:00 -05:00
Pat Hartl
fb479d1683 Move script service to SDK 2024-08-05 20:29:12 -05:00
Pat Hartl
9e770f4965 Bundle PowerShell runtime
This does a very basic job of bundling a PowerShell runtime into the SDK. Previously, scripts had been run by spawning a separate PowerShell process and feeding the script into it. This was nothing better than a hack and meant that PowerShell had to be separately installed on the machine it's executing on. This should open up the opportunity for scripts to run on other platforms.

There's still some things that need to be figured out. Some sort of console output as well as a debugging mode would be highly beneficial for those that wish to actively develop scripts for their games.
2024-08-05 18:02:01 -05:00
Pat Hartl
4fa3e339f6 Update RestSharp 2024-08-04 20:47:19 -05:00
Pat Hartl
f6cae223ca Remove unused client code 2024-08-04 20:46:37 -05:00