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. |
||
|---|---|---|
| .. | ||
| Abstractions | ||
| Attributes | ||
| Enums | ||
| Exceptions | ||
| Extensions | ||
| Factories | ||
| Helpers | ||
| Interceptors | ||
| Models | ||
| PowerShell | ||
| Providers | ||
| Rpc | ||
| Services | ||
| Utilities | ||
| AppPaths.cs | ||
| Client.cs | ||
| DownloadProgressChangedEventArgs.cs | ||
| EventArgs.cs | ||
| ExtractionResult.cs | ||
| FileTransferMonitor.cs | ||
| LANCommander.SDK.csproj | ||
| package-icon.png | ||
| ProcessExecutionContext.cs | ||
| README.md | ||
| TrackableStream.cs | ||
LANCommander.SDK
The LANCommander SDK is a .NET 8 assembly designed to allow developers to implement their own client. Most of the core functionality of the official launcher is implemented directly in the SDK and currently supports functionality such as:
- Authentication to a LANCommander server
- Installation of games / redistributables
- Launching of games and play session tracking
- Media linking and downloading
- Game save uploading and downloading, including packing and extraction
- PowerShell script execution
- Updating player's alias and custom fields
- Submission of issues
- Game lobby scanning
Basic Use
In order to do almost anything through the SDK, you must have an authenticated instance of the LANCommander.SDK.Client class. Here is an example of how to instantiate the class and authenticate to a server:
var client = new LANCommander.SDK.Client("http://localhost:1337", "C:\\Games");
await client.AuthenticateAsync("username", "password");
Once the client is authenticated, everything you need is available as a manager under the client. For example, to install a game by ID you might use the following:
await client.Games.InstallAsync("114f653d-ea91-484b-8fe9-8e9bb58bde81");
Documentation
For full documentation, review the official LANCommander documentation.