Skip to content

1681-engine / index / LobbyClient

Class: LobbyClient ​

Defined in: src/net/lobby/LobbyClient.ts:45

The lobby as a client sees it: the room list, your room, your place in the queue and a match waiting for your answer, kept up to date from the server's messages, with a method for everything a lobby screen does. Hand it the game's Connection (or anything that sends JSON and emits the messages it does not handle):

ts
const conn = new Connection('wss://lobby.example.com', { hello: () => ({ name }) }).connect();
const lobby = new LobbyClient(conn);
lobby.events.on('change', () => drawLobby(lobby));
lobby.events.on('start', ({ data }) => joinGame(data));
lobby.queue('duel');

Constructors ​

Constructor ​

ts
new LobbyClient(link): LobbyClient;

Defined in: src/net/lobby/LobbyClient.ts:59

Parameters ​

ParameterType
linkLobbyLink

Returns ​

LobbyClient

Properties ​

events ​

ts
readonly events: EventBus<LobbyClientEvents>;

Defined in: src/net/lobby/LobbyClient.ts:46


id ​

ts
id: number = -1;

Defined in: src/net/lobby/LobbyClient.ts:48

Your id in the lobby (-1 until welcomed).


lockedUntil ​

ts
lockedUntil: number = 0;

Defined in: src/net/lobby/LobbyClient.ts:55

Kept out of the queue until then (server ms), after a declined match.


match ​

ts
match: PendingMatch | null = null;

Defined in: src/net/lobby/LobbyClient.ts:56


modes ​

ts
modes: string[] = [];

Defined in: src/net/lobby/LobbyClient.ts:49


queued ​

ts
queued: 
  | {
  mode: string;
  since: number;
  waiting: number;
}
  | null = null;

Defined in: src/net/lobby/LobbyClient.ts:53

Your queue: the mode, since when (server ms) and how many other groups wait for it.


room ​

ts
room: RoomState | null = null;

Defined in: src/net/lobby/LobbyClient.ts:51


rooms ​

ts
rooms: RoomSummary[] = [];

Defined in: src/net/lobby/LobbyClient.ts:50

Accessors ​

isHost ​

Get Signature ​

ts
get isHost(): boolean;

Defined in: src/net/lobby/LobbyClient.ts:63

Returns ​

boolean


roomReady ​

Get Signature ​

ts
get roomReady(): boolean;

Defined in: src/net/lobby/LobbyClient.ts:68

Every member of your room but the host has said ready.

Returns ​

boolean

Methods ​

accept() ​

ts
accept(): void;

Defined in: src/net/lobby/LobbyClient.ts:111

Returns ​

void


chat() ​

ts
chat(text): void;

Defined in: src/net/lobby/LobbyClient.ts:99

Parameters ​

ParameterType
textstring

Returns ​

void


create() ​

ts
create(options?): void;

Defined in: src/net/lobby/LobbyClient.ts:75

Parameters ​

ParameterType
optionsOmit<Extract<LobbyClientMessage, { t: "lobby/create"; }>, "t">

Returns ​

void


decline() ​

ts
decline(): void;

Defined in: src/net/lobby/LobbyClient.ts:116

Returns ​

void


destroy() ​

ts
destroy(): void;

Defined in: src/net/lobby/LobbyClient.ts:121

Returns ​

void


join() ​

ts
join(room): void;

Defined in: src/net/lobby/LobbyClient.ts:78

Parameters ​

ParameterType
roomstring

Returns ​

void


joinByCode() ​

ts
joinByCode(code): void;

Defined in: src/net/lobby/LobbyClient.ts:81

Parameters ​

ParameterType
codestring

Returns ​

void


kick() ​

ts
kick(player): void;

Defined in: src/net/lobby/LobbyClient.ts:90

Parameters ​

ParameterType
playernumber

Returns ​

void


leave() ​

ts
leave(): void;

Defined in: src/net/lobby/LobbyClient.ts:84

Returns ​

void


leaveQueue() ​

ts
leaveQueue(): void;

Defined in: src/net/lobby/LobbyClient.ts:108

Returns ​

void


list() ​

ts
list(): void;

Defined in: src/net/lobby/LobbyClient.ts:72

Returns ​

void


promote() ​

ts
promote(player): void;

Defined in: src/net/lobby/LobbyClient.ts:93

Parameters ​

ParameterType
playernumber

Returns ​

void


queue() ​

ts
queue(mode): void;

Defined in: src/net/lobby/LobbyClient.ts:105

Parameters ​

ParameterType
modestring

Returns ​

void


setReady() ​

ts
setReady(ready): void;

Defined in: src/net/lobby/LobbyClient.ts:87

Parameters ​

ParameterType
readyboolean

Returns ​

void


setSettings() ​

ts
setSettings(settings): void;

Defined in: src/net/lobby/LobbyClient.ts:96

Parameters ​

ParameterType
settingsunknown

Returns ​

void


startRoom() ​

ts
startRoom(): void;

Defined in: src/net/lobby/LobbyClient.ts:102

Returns ​

void

Released under the MIT License.