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,
///
/// A direct connection test without a nat punch was testet. EventData is with information if a direct connection was possible and on what address.
///
DirectConnectionTestComplete,
///
/// A join request to a lobby has failed. EventData is with information about the failure.
///
LobbyJoinFailed,
}
}