Table of Contents

Namespace McServerLauncher.ViewModels

Classes

ActiveFilterViewModel

One chip in the "what is filtering right now" row. Some of them are the server's own loader and version, which are not the user's to remove; the rest are categories, which are.

BackupDayGroup

The backups of one day, under a heading for it.

BackupItemViewModel

A single backup entry shown in the list.

BedrockAddressStates

The line of explanation each state shows.

BoolOpacityConverter

true -> fully opaque, false -> dimmed. Used to fade disabled mods in the list.

BulkObservableCollection<T>

ObservableCollection with bulk operations that raise a single Reset event instead of one CollectionChanged per element. Used by the console lists (EFI-4): a verbose server (e.g. Forge booting) used to pay one RemoveAt(0) — an O(n) array shift plus a UI notification — for every line beyond the cap; trimming in blocks makes that a single cheap Reset every couple hundred lines, which the virtualized ListBox absorbs by re-rendering only the visible viewport.

CleanupSuggestionViewModel

One row of the "you can clean up" panel: a jar, why it is there, and whether it is ticked.

ConnectionStepViewModel

One stretch of the way a player's packets travel, and how it did.

ConnectionTestViewModel

The connection test on a server's network page: where a slow game is coming from.

ConsoleBrushConverter

A console line's kind to the brush it is drawn in.

ConsoleHighlightConverter

A line plus what is being searched for, as text with the matches marked inside it.

ConsoleKindFilter

One category of console line, as a toggle with a count behind it.

ConsolePalette

The console colours, as something Avalonia can draw with.

Dialogs

The dialog service the app uses, replaceable for tests.

ExternalLinkViewModel

An external link shown in the details page (source, wiki, Discord…).

GalleryImageViewModel

One gallery image: a thumbnail for the strip and the full picture for the viewer.

HexBrushConverter

A hex string to a brush, for the live preview beside each colour box in the settings.

IdleHost

What IdleShutdownController needs to know about, and to be able to do to, its server.

IdleShutdownController

Stops the server once it has been empty for the configured time, and shows the countdown while that clock runs.

InstalledModFilter

Whether an installed jar matches what was typed in the installed list's search box.

MainViewModel

Main ViewModel: manages the server list, the selected server and persistence.

MainViewModel.LanguageOption

One entry of the language selector.

ModDetailsViewModel

The details page of one store item: everything Modrinth knows about a project, plus the two things Modrinth doesn't say — what it does in plain language, and whether it fits this server.

It paints in two passes. What the search result already carried (title, author, icon, summary) is shown at once, so opening a mod is instant; the long description, gallery, versions, dependencies and related items arrive as their requests come back. Nothing here decides whether a version is compatible or how a file is installed: both come from the existing services.

ModVersionViewModel

One published version, with the button that installs exactly that one.

ModpackExporter

Builds the zip a server's owner hands to their players: the mods the players' game needs, the instructions for installing them, and the scripts that do it.

ModpackResult

What one export put into the pack, and what it left out.

ModrinthProjectViewModel

One card in the browser: a store item, its tags, and the two buttons it offers.

NoticeBrushConverter

Background for the install banner: red when the install failed, green when it worked. Colour is the part of the message people read first, so it carries the outcome as well as the words do.

NotificationBrushes

The configured notification colours, as something Avalonia can draw with.

PerformanceSolutionsViewModel

The page that replaces the server's tabs when its owner asks how to make it run lighter: settings that cost less, memory if it is the problem and the machine can spare it, and mods that do not change the game.

PlayerDetailsViewModel

A player's profile: everything the app and the server know about them.

PlayerEventRowViewModel

One line of a player's activity.

PlayerHistoryViewModel

The Players tab's history: everyone who has been on this server, and each one's profile.

PlayerRowViewModel

One player in the list: name, whether they are on now, and when they were last seen.

PreflightHost

What StartPreflight needs from its server.

ProbeRow

One row of the technical table: the round trips to one place.

RelativeTime

"Hace 3 h", and the other ways of saying how long ago something was.

ServerBackupsViewModel

Manages world backups for a server: lists existing zip snapshots, and lets the user trigger one manually, restore an earlier one, or delete one. Automatic backups (before every start, after an explicit stop) are triggered by ServerViewModel itself; this view model is just the UI surface over the same WorldBackupService.

ServerConfigEffects

One row per ServerConfig field: what it feeds, and what has to be redone when it changes.

ServerConfigEffects.Row

What one field of the config feeds.

ServerModsViewModel

The "you can clean up" panel: libraries nothing uses any more, and mods switched off for a month.

ServerTypeBrushes

The per-type badge colours, as brushes.

ServerViewModel

The crossplay half of ServerViewModel: Geyser, the Bedrock tunnel and the address.

SettingsViewModel

The settings screen: language, window behaviour, the desktop shortcut, notifications, colours and the player history.

SolutionRow

One thing the Performance page offers, with the button that does it.

StartPreflight

Everything that is checked, and offered to fix, before a server's JVM is launched: that the port is free, that the path is one the server accepts, that its mods have what they need, and that the Java is the one its version requires.

StatBarViewModel

One line of a "most of what" list: a name, a count and its share of the total.

StepStateConverters

The verdict's colour, from its state.

StoreLinkViewModel

A dependency or a related project: a card that opens its own details page.

StoreTagViewModel

A tag as the interface shows it: translated name and its colour.

TunnelAddressStates

The line of explanation each state shows.

TunnelAddressTracker

Finds out, and keeps up to date, the public address a server's Playit tunnel has — and makes the tunnel in the first place.

TunnelHost

What TunnelAddressTracker needs to know about, and to be able to do to, its server.

TunnelRowViewModel

One line of the tunnels table.

TunnelSuggestionViewModel

One line of the "things I can fix" panel: what is wrong, and the button that fixes it.

TunnelsViewModel

The tunnels screen: the Playit account, every tunnel on it, and what to do about them.

WakeHost

What WakeOnDemandController needs to know about, and to be able to do to, its server.

WakeOnDemandController

Answers on a stopped server's port and starts the server when somebody tries to join.

WholeNumberConverter

Binds an int setting to a Avalonia.Controls.NumericUpDown, whose value is a decimal? that is null while the box is empty.

Interfaces

IDialogService

The questions and notices a view model puts to the user, behind an interface so what it does with the answer can be run without a window.

Enums

AppSection

What fills the window next to the rail.

BackupFilter

Which backups the list shows.

BedrockAddressState

How far along the Bedrock address is for a server that has crossplay switched on.

ConfigEffect

Work that has to happen when a field of a ServerConfig changes.

PlayerEventFilter

Which of a player's events the profile shows.

SettingsPage

The pages of the settings screen.

StepState

How one stretch of the connection did.

TunnelAddressState

How far along the public Java address is for a server that uses a playit tunnel.