Table of Contents

Class MultiVersionService

Namespace
McServerLauncher.Services
Assembly
McServerLauncher.dll

Letting people join from a Minecraft version other than the one the server runs.

public class MultiVersionService
Inheritance
MultiVersionService
Inherited Members

Remarks

Two plugins, and they are not interchangeable. ViaVersion admits clients newer than the server, which is what happens the week a Minecraft version ships and everyone updates before the server can. ViaBackwards admits clients older than the server, which is the friend who never updates. Installing only the first covers the rarer half and looks like the feature is broken for everyone else.

Deliberately independent of crossplay. Geyser does not need either of these, and a Java-only server gets the whole benefit — this is about which versions may connect, not which edition.

Constructors

MultiVersionService(ModrinthService?)

public MultiVersionService(ModrinthService? modrinth = null)

Parameters

modrinth ModrinthService

Fields

ProjectIds

Modrinth ids. Both publish for the paper loader, which covers the family.

public static readonly string[] ProjectIds

Field Value

string[]

Methods

CanEnable(ServerType)

Whether this kind of server can take them at all.

public static bool CanEnable(ServerType type)

Parameters

type ServerType

Returns

bool

Remarks

Plugin family only. The mod-loader builds exist, but a modded server already refuses clients whose mods do not match, so version bridging there solves a problem the loader recreates.

InstallAsync(ServerConfig, IProgress<string>?, CancellationToken)

Installs both plugins into the server, verified, reporting progress.

public Task InstallAsync(ServerConfig config, IProgress<string>? log, CancellationToken ct = default)

Parameters

config ServerConfig
log IProgress<string>
ct CancellationToken

Returns

Task

Remarks

Both or neither, like Geyser and Floodgate: half of this is a server that quietly turns away the very players it was switched on for.