namespace Lobbies { /// /// Contains a lobby client event /// public class LobbyClientEvent { /// /// Identifier type of the event /// public LobbyClientEventTypes EventType { get; internal set; } /// /// Optional data object, contains additional information for the event. See for possible values. /// public object? EventData { get; internal set; } } /// /// The list of events that can occur. /// public enum LobbyClientEventTypes { /// /// Client connected to lobby server. EventData is null. /// Connected, /// /// Client disconnected from lobby server graceful. EventData is . /// Disconnected, /// /// Connection lost to lobby server. EventData is LobbyClientDisconnectReason. /// Failed, /// /// A lobby was added to the lobby list for the observed game id. EventData is with the lobby data. /// LobbyAdd, /// /// A lobby was changed for the observed game id. EventData is with the lobby data. /// LobbyUpdate, /// /// A lobby was removed from the lobby list for the observed game id. EventData is with the lobby id. /// LobbyDelete, /// /// The game host shared his self known address. EventData is with the games hosts self known address, most likely internal. /// LobbyHostInfo, /// /// A nat punch was requested by another LobbyClient to be performed by the host LobbyClient. EventData is with the clients seen external address to nat punch to. /// LobbyRequestNatPunch, /// /// Game host has finished the nat punch. EventData is with the games hosts external address. /// LobbyNatPunchDone, /// /// Response to a query of our external ip and port seen by the lobby server. EventData is with the clients seen external address. /// ExternalIpAndPort } }