Commit graph

318 commits

Author SHA1 Message Date
Pat Hartl
a8efeb97e6 Better error handling for SteamCMD integration, add timeouts
Some checks failed
LANCommander Release / prep (push) Failing after 26s
LANCommander Release / build_server_linux_arm64 (push) Has been skipped
LANCommander Release / build_server_linux_x64 (push) Has been skipped
LANCommander Release / build_server_osx_arm64 (push) Has been skipped
LANCommander Release / build_server_osx_x64 (push) Has been skipped
LANCommander Release / build_server_win_arm64 (push) Has been skipped
LANCommander Release / build_server_win_x64 (push) Has been skipped
LANCommander Release / build_launcher_linux_arm64 (push) Has been skipped
LANCommander Release / build_launcher_linux_x64 (push) Has been skipped
LANCommander Release / build_launcher_osx_arm64 (push) Has been skipped
LANCommander Release / build_launcher_osx_x64 (push) Has been skipped
LANCommander Release / build_launcher_win_arm64 (push) Has been skipped
LANCommander Release / build_launcher_win_x64 (push) Has been skipped
LANCommander Release / build_release (push) Has been skipped
2026-01-23 02:31:48 -06:00
Pat Hartl
8e42a00f5a Validate username is valid Steam username 2026-01-23 01:36:41 -06:00
Pat Hartl
f23cf3384f Auto detect SteamCMD path 2026-01-23 01:36:26 -06:00
Pat Hartl
f0ec242bc5 Set default snippets directory if blank 2026-01-20 00:46:53 -06:00
Pat Hartl
e777a061ea Persist SteamCMD credentials 2026-01-20 00:32:39 -06:00
Pat Hartl
657dd746b8 Skip packaging if resulting path does not exist 2026-01-14 20:13:20 -06:00
Pat Hartl
66abc6e59e Implement infinite loading with chat thread
- Chat messages are now loaded based on scroll position
- Read status is now updated and set by last message read
- Reworked script importing by using ScriptProvider
2026-01-11 14:38:24 -06:00
Pat Hartl
2d95541942 Remove overload for GetMessages 2026-01-03 23:22:25 -06:00
Pat Hartl
e1c1469614 Fix chat component rendering
- Load thread after creation
- Change thread list from DataList to Flex
- Move unread badge to right side of chat thread list item
- Fix avatar rerendering after another message is added to message group
- Add styling to thread list
- Change message input to support markdown and add markdown rendering for message contents
2025-12-30 18:08:20 -06:00
Pat Hartl
83ff6a8237 Separate SignalR chat client from RPC client. Create abstraction for getting server address. Implement server-side chat client. 2025-12-23 21:12:06 -06:00
Pat Hartl
9b3e154eaa
Merge pull request #385 from aaronpowell/download-files-from-new-data-path
Download endpoints get correct paths
2025-12-19 01:11:10 -06:00
Aaron Powell
aaba97caed Fixing to check for absolute paths 2025-12-19 14:51:06 +11:00
Aaron Powell
2f9cb9a9f2 checking if the path is an absolute path or not 2025-12-19 14:46:46 +11:00
Aaron Powell
0e5a8c5be2 Ensuring that the download endpoints will receive correctly pathed folders for data directory
Also adding logging throughout the download endpoints
2025-12-17 22:52:28 +11:00
Aaron Powell
2d66c4c0b7 Some tidying up on the MediaService 2025-12-17 22:36:49 +11:00
Aaron Powell
d37623dbc0 Ensuring that the config/data directory is appended to the media path 2025-12-17 22:36:32 +11:00
Pat Hartl
962e227b03 Update snippet pathing 2025-12-11 02:06:04 -06:00
Pat Hartl
88301d9c79 Move config/user files to Data directory 2025-12-11 01:58:28 -06:00
Pat Hartl
17fa802c19 Implementation of script debugger component with RPC via SignalR 2025-12-10 20:55:38 -06:00
Pat Hartl
20731f355a Fix certain taxonomies (tag, genre, platform) being removed from game on save
Fixes the action, custom field, multiplayer mode, and save path editors from clearing out taxonomies when saving. Also passes the Game/Server/Redistributable ID as a cascading parameter.
2025-12-08 00:51:32 -06:00
Pat Hartl
1cdbde922f Add FileExistsAsync to differentiate from archive entity ExistsAsync 2025-12-03 23:41:51 -06:00
Pat Hartl
22fc2bb9e7 Fix ExistsAsync when media record doesn't exist 2025-12-03 19:33:27 -06:00
Pat Hartl
ce38a0f252 Fix sync relationships not updating the entity 2025-12-03 19:33:01 -06:00
Pat Hartl
5b444f91e7 Make SyncRelationCollectionAsync only match existing records 2025-12-03 18:56:35 -06:00
Pat Hartl
cf27436a71 Fix media importing when existing entity/file doesn't exist 2025-12-03 18:31:03 -06:00
Pat Hartl
54400fdb10 Refactor server importers
Refactors server importers to better handle dependencies on other data in the queue.
2025-12-03 02:22:37 -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
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
55ad5ddb96 Use DefaultAsync for default storage location 2025-11-21 13:15:57 -06:00
Pat Hartl
7374c904a1 Fix mapping of primary action on export 2025-11-21 13:15:35 -06:00
Pat Hartl
47d78f66d9 Add basic routes for issues, move to minimal API, resolve using user ID 2025-11-21 00:25:59 -06:00
Pat Hartl
cf16d7619f Move game endpoints to minimal API, fix archive upload compressed size calculation 2025-11-20 22:04:20 -06:00
Pat Hartl
256b46e823 Fix storage of authentication token 2025-11-19 00:36:03 -06:00
Pat Hartl
f84a373d65 Correctly register ArchiveService as IArchiveClient implementation 2025-11-17 22:09:19 -06:00
Pat Hartl
772dd03537 Rename to ArchiveService 2025-11-17 22:09:03 -06:00
Pat Hartl
3a5b3f0897 Configure database on startup 2025-11-17 20:31:11 -06:00
Pat Hartl
add770b227 Refactor Settings
Settings for the server are now combined with the settings from the SDK. This introduces a large breaking change and a migration should be created. This refactor utilizes .NET Configuration and the Options pattern. This will allow for the overriding of any setting using envionment variables. It also means that Settings.yml can be used to override any .NET configuration. A SettingsProvider implementation was created, and any updating of settings was changed from SettingsService.SaveSettings() to SettingsProvider.Update(s => { ... })
2025-11-16 12:31:25 -06:00
Pat Hartl
7efee54550 Fix check to see if user is already participant 2025-11-14 00:16:11 -06:00
Pat Hartl
cd0f33ccf3 Add log 2025-11-13 18:17:45 -06:00
Pat Hartl
4535d9891a Add chat read status, badges to avatars, avatars for groups 2025-11-12 18:26:25 -06:00
Pat Hartl
37eebfde9c Add hub method to get stripped list of users 2025-11-10 18:06:55 -06:00
Pat Hartl
9e754daa40 Add mapping for chat thread 2025-11-09 19:44:54 -06:00
Pat Hartl
3a87abe3da Remove null check 2025-11-09 19:23:54 -06:00
Pat Hartl
707332b68e Add null checks for participants and user 2025-11-05 23:42:36 -06:00
Pat Hartl
a92c7be6ec Enhance chat list
- Added SafeAvatar component for retrieving user avatars with fallback to initials
- Added a title/name for chat threads
- Moved chat input to a separate component
2025-11-03 23:27:05 -06:00
Pat Hartl
191827ed6d Remove manual tracking of user connections, populate participants in database
Removes the manual tracking of user connections by connection ID in the RPC hub. SignalR automatically links connections to connected users and provides Client.User[s] methods.

Also fixes message sending to participants and tracking of participants per thread.
2025-10-28 22:19:48 -05:00
Pat Hartl
2076c6e93b Allow different cookie policies for HTTP/S 2025-10-21 21:28:52 -05:00
Pat Hartl
0812387c55 Switch OIDC to use configuration endpoints 2025-10-12 20:54:56 -05:00
Pat Hartl
4968481460 Standardize YAML serializers 2025-10-06 19:23:49 -05:00
Pat Hartl
ad034918a4 Register client, rename settings file 2025-10-05 21:31:16 -05:00