Gravwell-Online/docs/events.md
2022-03-07 17:58:33 -06:00

3.4 KiB

Events

Every event in this document has two forms, a request and a response, the event type can be differentiated by the event prefix, req is an event going to the server, and res is a response coming from the server to the client. Some events may only have one of these types, if this is the case, it will be denoted in the relevant section.

Important: Events with the Broadcasted event type, must be listened to even if you don't send any Request events of that type. This is because other clients connected to the server may trigger the server in such a way that the event response gets sent to multiple clients. Broadcasted events will use the res event type prefix.

Most request payload types inherit from ServerRequest, and all response payloads inherit from the ServerResponse type.


server.info

Retrieves information about the server that the client is currently connected to.

Supported Event Types

Request Response Broadcasted
Yes Yes No

Payloads

Request Payload: N/A

Response Payload: IServerInfo


lobby.info

Retrieves information about the lobby. In order for this event to return without error, the client requesting the information must be in the lobby already. This event is broadcasted to clients who are already in the lobby when the player list or a player's design gets updated.

Supported Event Types

Request Response Broadcasted
Yes Yes Yes

Payloads

Request Payload: IGetLobbyInfo

Response Payload: ILobbyInfo


lobby.create

Creates a game lobby that allows for online play.

Supported Event Types

Request Response Broadcasted
Yes Yes No

Payloads

Request Payload: ICreateLobby

Response Payload: ILobbyInfo


lobby.delete

Deletes the game lobby, clearing all players from the lobby and preventing others from joining the lobby. This endpoint errors whenever a client that isn't the host tries to call the endpoint.

Supported Event Types

Request Response Broadcasted
Yes Yes Yes

Payloads

Request Payload: IDeleteLobby

Response Payload: ServerResponse


lobby.players.join

Allows a player to join a lobby based on the lobby identifier.

Supported Event Types

Request Response Broadcasted
Yes Yes No, causes lobby.info broadcast

Payloads

Request Payload: IJoinLobby

Response Payload: ILobbyInfo


lobby.players.leave

This allows non-host players to leave the lobby without destroying it entirely. This endpoint errors when the client that created the lobby attempts to use the endpoint.

Supported Event Types

Request Response Broadcasted
Yes Yes No, causes lobby.info broadcast

Payloads

Request Payload: ILeaveLobby

Response Payload: ServerResponse


lobby.players.update

Allows the player to update their own information, this is primarily used for updating the ship design.

Supported Event Types

Request Response Broadcasted
Yes Yes No, causes lobby.info broadcast

Payloads

Request Payload: IUpdatePlayer

Response Payload: ServerResponse