Table of Contents

Namespace McServerLauncher.Views

Namespaces

McServerLauncher.Views.ServerSettings

Classes

AboutView

The About screen: version, updates, repository links, credits and the legal notices.

ColorChooser

A colour setting, edited by code or by eye: a swatch that opens the palette and the spectrum, and the #RRGGBB box beside it.

DeleteServerDialog

Asks what "delete" means for this server: only the entry on the list, its files on disk as well, and whether to take its Playit tunnel with it.

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 the old create dialog and the old loader dialog, which kept two identical copies of this logic. A view that comes and goes stops it while it is off screen and starts it again when it is back.

MainWindow

The main window: the server list, the selected server's console, its stats and its players.

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.

ModDetailsView

The details page of a store item, bound to ModDetailsViewModel.

NewServerResult

What the new-server panel produced: the server, and what to do with it next.

NewServerView

Makes a server from nothing — type, version, port and RAM in, a running server out — or takes over a folder that already holds one, inside the window instead of a dialog.

PerformanceSolutionsView

The page that replaces a server's tabs with ways to make it run lighter. See PerformanceSolutionsViewModel.

PlayerDetailsView

A player's profile in the Players tab, bound to PlayerDetailsViewModel.

PlayersTabView

The Players tab: who is connected, everyone the server has ever seen, and the op, whitelist and ban lists. A player's profile replaces all of it while it is open.

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.

PlayitConnection.Source

One credential that might open the account, and where it came from.

ServerBackupsView

The backups panel of a server, bound to ServerBackupsViewModel.

ServerCardView

The server as the game's server list draws it: icon, name, loader badge and version, the MOTD in colour, the player count and the signal bars.

ServerModsView

The Mods (or Plugins) tab of a server, bound to ServerModsViewModel: the store on one side, what is installed on the other.

ServerSettingsView

A server's settings, in the window: every page of them behind one index, saved together from a bar that only shows while something is unsaved.

ServerTypePicker

Picking the server type as a grid of cards rather than a drop-down of bare names.

SettingsView

The settings screen. Everything it does is in SettingsViewModel.

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, close by themselves after a few seconds — a bar along the bottom shows how many are left, and the pointer resting on a card stops the clock — and clicking one restores the main window. Used for "player joined" / "server crashed" style events.

TunnelsView

The tunnels screen. Markup only: everything it does is in TunnelsViewModel.

WhatsNewDialog

Shows what's-new notes after an update, accumulating every version the user skipped.

WholeNumberBoxes

What every Avalonia.Controls.NumericUpDown in the app is: a box for a whole number, typed in any language, that never ends up empty or showing something it did not save.

Enums

MissingDependenciesChoice

What the user decided about a server whose content is missing something.

PlayitConnection.SourceKind

Where a way of reaching the account came from.