Networking/LobbyMetadata.cs
using Sandbox.Network;
namespace sGBA;
public static class LobbyDataKeys
{
public const string RomTitle = "rom";
public const string GameCode = "code";
public const string RomSha1 = "sha1";
public const string Visibility = "vis";
public const string HostName = "host";
public const string Mode = "mode";
}
public static class LobbyMetadata
{
public static string GetRomTitle( this LobbyInformation lobby ) =>
lobby.Get( LobbyDataKeys.RomTitle, string.Empty );
public static string GetGameCode( this LobbyInformation lobby ) =>
lobby.Get( LobbyDataKeys.GameCode, string.Empty );
public static string GetRomSha1( this LobbyInformation lobby ) =>
lobby.Get( LobbyDataKeys.RomSha1, string.Empty );
public static string GetHostName( this LobbyInformation lobby ) =>
lobby.Get( LobbyDataKeys.HostName, string.Empty );
public static SessionVisibility GetVisibility( this LobbyInformation lobby )
{
var raw = lobby.Get( LobbyDataKeys.Visibility, "0" );
return int.TryParse( raw, out var v ) ? (SessionVisibility)v : SessionVisibility.Public;
}
public static NetworkManager.SessionMode GetMode( this LobbyInformation lobby )
{
var raw = lobby.Get( LobbyDataKeys.Mode, "0" );
return int.TryParse( raw, out var v ) ? (NetworkManager.SessionMode)v : NetworkManager.SessionMode.WirelessAdapter;
}
}