Class CrossplayLibraries
- Namespace
- Valheim.Testing.GameSessions
- Assembly
- Valheim.Testing.GameSessions.dll
Whether a Linux runtime can load crossplay. The game's PlayFab Party library (libparty.so in the runtime's
Plugins folder) needs system libraries a bare Linux host may lack, libpulse0 and libpulse-mainloop-glib0
among them. Without one, Unity logs Failed to open plugin, the game's first PlayFab call fails with
DllNotFoundException: libParty.so, and a -crossplay server retries its network every 30 s and never opens a
lobby. The check asks the host's own loader (ldd, with the launch's library path) before anything starts, and a
refusal names each missing library and, where known, the Debian or Ubuntu package that provides it.
public static class CrossplayLibraries
- Inheritance
-
objectCrossplayLibraries
Properties
Packages
The Debian and Ubuntu package for each library libparty.so needs that a minimal install may lack.
public static IReadOnlyDictionary<string, string> Packages { get; }
Property Value
- IReadOnlyDictionary<string, string>
PartyLibraries
The dedicated server's library, relative to its runtime. A client plugin cannot satisfy a server preflight.
public static IReadOnlyList<string> PartyLibraries { get; }
Property Value
- IReadOnlyList<string>
Methods
Missing(string)
The libraries ldd reports as not found, in its order, each once.
public static IReadOnlyList<string> Missing(string lddOutput)
Parameters
lddOutputstring
Returns
- IReadOnlyList<string>
Refusal(string, string, IReadOnlyList<string>)
The refusal for missing libraries of library on where.
public static string Refusal(string where, string library, IReadOnlyList<string> missing)
Parameters
wherestringlibrarystringmissingIReadOnlyList<string>
Returns
- string
RequireAsync(IGameHost, string, TimeSpan, CancellationToken)
Refuses a Linux runtime on host (a bash host) whose libparty.so is absent or
cannot load, naming what is missing; returns the library it checked. A host without ldd is refused too: nothing
else there can prove the library loads.
public static Task<string> RequireAsync(IGameHost host, string runtime, TimeSpan timeout, CancellationToken cancellation = default)
Parameters
hostIGameHostruntimestringtimeoutTimeSpancancellationCancellationToken
Returns
- Task<string>