@colyseus/core
Version:
Multiplayer Framework for Node.js.
35 lines (34 loc) • 1.1 kB
TypeScript
import type { IRoomCache } from '../matchmaker/LocalDriver/LocalDriver.ts';
import type { Client } from '../Transport.ts';
import { Room } from '../Room.ts';
type LobbyClient = Client<{
messages: {
rooms: IRoomCache[];
'+': [roomId: string, room: IRoomCache];
'-': string;
};
}>;
export interface FilterInput {
name?: string;
metadata?: any;
}
export interface LobbyOptions {
filter?: FilterInput;
}
export declare class LobbyRoom<Metadata = any> extends Room {
rooms: IRoomCache<Metadata>[];
unsubscribeLobby: () => void;
clientOptions: {
[sessionId: string]: LobbyOptions;
};
messages: {
filter: (client: LobbyClient, filter: FilterInput) => void;
};
onCreate(options: any): Promise<void>;
onJoin(client: LobbyClient, options: LobbyOptions): void;
onLeave(client: LobbyClient): void;
onDispose(): void;
protected filterItemsForClient(options: LobbyOptions): IRoomCache<Metadata>[];
protected filterItemForClient(room: IRoomCache, filter?: LobbyOptions['filter']): boolean;
}
export {};