Commit graph

17 commits

Author SHA1 Message Date
Pat Hartl
c4fa0c7335 Handle Process killing via extension method w/ libc import on Linux 2026-06-14 00:53:31 -05:00
Pat Hartl
c4a4b98e95 Add fallback for ProcessTerminationMethod for Windows, use absolute pathing for kill in Linux/macOS 2026-06-11 17:54:19 -05:00
Pat Hartl
b52f83df1e Add repeatable options with list type 2026-05-18 22:04:03 +00:00
Pat Hartl
97fdb68899 Add display names to option choices 2026-05-17 01:21:05 -05:00
Pat Hartl
ecdc5f9ce3 Add options to redistributables
Options are defined schema that the redistributable will allow a game to customize / override. This will be useful for install scripts on a redistributable. It opens up the opportunity to define a redistributable for something such as dgVoodoo and override options on a per-game basis without having to edit the config manually in the game's scripts.
2026-05-15 00:14:46 -05: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
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
ace43fa09e Revert "Merge branch 'feature/server-process-resource-monitoring'"
This reverts commit 8be2341305, reversing
changes made to cf0fe7c1b6.
2025-07-30 19:29:18 -05:00
Pat Hartl
cddf67a613 Resource stats component, better tracking of child processes, fix serialization bugs 2025-06-14 15:33:10 -05:00
Pat Hartl
425bae360b Abstract server state to support other engines, add Docker container stats 2025-05-26 22:19:53 -05:00
Pat Hartl
b3371fcd26 Fix obsolete usage of GetStatus, rework server control as siwtch 2025-05-25 21:11:33 -05:00
Pat Hartl
1fec97a408 Fix server starts 2025-02-28 22:58:28 -06:00
Pat Hartl
de60ceb04d Fix server starting/stopping, fix server autostart preventing app from starting, fix status update on external close of server 2025-02-25 22:05:23 -06:00
Pat Hartl
f3708b4f3c Refactor redistributable installation
- Install now extracts the redistributable archive to the game's `.lancommander` directory, under a directory matching the redist's ID
- Scripts are downloaded and saved to the same location
- BeforeStart, AfterStop, and NameChange scripts are now available for redistributables
- Change manifest reading/writing to use async
2025-01-30 23:57:12 -06:00
Pat Hartl
aa4ba8a056 Add custom fields to games and allow them to be used in scripts / actions 2025-01-30 19:21:02 -06:00
Pat Hartl
45717345d3 Refactor execution context to include servers, use in server process orchestration 2025-01-29 20:35:42 -06:00