Namespace McServerLauncher.Views
Classes
- InstallLoaderDialog
Installs a mod loader (Fabric for now) into an EXISTING server folder, turning a vanilla server into a moddable one. On success it updates the passed ServerConfig in place and the dialog returns true.
- LogBatcher
Buffered progress logger for dialog TextBoxes (EFI-6): the Forge installer prints thousands of lines, and appending each one directly (Text += line) froze the UI. Lines are buffered and flushed a few times per second, keeping only the most recent McServerLauncher.Views.LogBatcher.MaxLines. Extracted from CreateServerDialog and InstallLoaderDialog, which kept two identical copies of this logic. Call Stop() from the dialog's OnClosed.
- MessageBox
Small cross-platform message box helper (Avalonia has no built-in one). Provides an information/warning dialog and a yes/no confirmation, both modal and localized.
- MissingDependenciesDialog
Shown before starting a server whose mods or plugins are waiting on something that is not there.
- MissingDependencyRow
One missing thing, shaped for the list in the dialog.
- PlayitApiKeyDialog
Connects the user's Playit account. Primary path (partner configured): the third-party setup-code flow — the user gets a setup code from playit.gg (opened only on a click), pastes it, and the dialog exchanges it for a per-user self-managed agent (secret key + id) via PlayitPartnerService. Fallback (partner NOT configured, e.g. dev builds): the legacy behavior of pasting a Playit write key. Which one ran is signalled by IsSetupResult.
- PlayitConnection
Shared "connect your Playit account" flow, used both from the per-server tunnel actions and from the Settings dialog. Encapsulates the setup-code dialog, persisting the resulting agent secret (encrypted) and wiring PlayitApiService, so the user never touches keys or files.
- ServerTypePicker
Picking the server type as a grid of cards rather than a drop-down of bare names.
- SettingsDialog
App settings, grouped in one place (language, notifications, Playit connection, and room for more later). Language and notifications are edited on a copy and applied by the caller on Save; the Playit connection is an action that persists immediately (connect/disconnect).
- ToastService
Small toast notifications drawn as borderless always-on-top windows in the bottom-right corner of the screen (pure Avalonia, no external dependencies, works even while the main window is hidden in the tray). They never steal focus, auto-dismiss after a few seconds, and clicking one restores the main window. Used for "player joined" / "server crashed" style events.
- WhatsNewDialog
Shows what's-new notes after an update, accumulating every version the user skipped.
Enums
- MissingDependenciesChoice
What the user decided about a server whose content is missing something.