Lanpartyseating.Desktop is a Microsoft Windows desktop client companion for the Lanparty-seating web application. This desktop client, written in C#, aims to enhance the functionality of the web application by directly managing gaming computers. Its primary purpose is to facilitate various actions related to gaming sessions, such as automatic login and logout of users, session time extension or reduction without interrupting players, preparing computers for tournaments, and monitoring computer status.
Please Note: As of the current release, not all of the aforementioned functionality has been implemented, but Lanpartyseating.Desktop is designed to evolve over time.
The core features of Lanpartyseating.Desktop include:
-
Automatic User Login/Logout: The client will automatically log users in at the start of gaming sessions and log them out at the end, simplifying the user experience and improving security.
-
Session Time Management: It will enable administrators to extend or shorten gaming sessions without disrupting players, ensuring smooth transitions between different activities during a LAN party.
-
Tournament Preparation: Lanpartyseating.Desktop will assist in preparing computers for tournaments, helping administrators manage and optimize the gaming environment.
-
Computer Monitoring: The client will provide real-time monitoring of computer status, allowing administrators to identify and address issues promptly.
Lanpartyseating.Desktop is configured using the appsettings.json
file, located either in the same directory as the
executable or in the C:\ProgramData\Lanparty Seating
directory.
The following settings are available:
Warning
The Debug
settings should only be used to facilitate development of the software. Enabling them in production will cause the software to malfunction.
Setting | Description |
---|---|
Debug.ReactToAllStations |
Set to true to process stations events regardless of if they are destined for the current station. |
Debug.UseDummySessionManager |
Set to true to simply log descriptive messages instead of logging in and out of windows sessions for real. |
Seating.WebsocketEndpoint |
The lanparty-seating WebSocket endpoint to connect to. |
Seating.GamerAccountUsername |
The username of the gamer account to use for automatic login. |
Seating.GamerAccountPassword |
The password of the gamer account to use for automatic login. |
Seating.TournamentAccountUsername |
The username of the tournament account to use for tournaments. |
Seating.TournamentAccountPassword |
The password of the tournament account to use for tournaments. |
An example configuration file can be found in the repo at Lanpartyseating.Desktop/appsettings.Production.json
.
The client connects to a Phoenix.Channel within the web application, enabling seamless communication between the desktop client and the server. The Phoenix.Channel is a WebSocket-based transport that allows for realtime bidirectional data transfer.
Lanpartyseating.Desktop operates by reacting to broadcast messages received from the server. These messages are sent by the server to all connected clients and are used to trigger various actions within the client.
Lanpartyseating.Desktop is released under the MIT License.