@lobstar/preact
Version:
A collection of Preact hooks to use Lobstar library for network and lobby management for multiplayer web games
36 lines (35 loc) • 1.38 kB
TypeScript
import { GameSessionOptions } from "@lobstar/core";
import type { CustomMessageHandler, ErrorHandler, KickedHandler } from "./types";
export type GameLobbyOptions = {
options?: GameSessionOptions;
onMessage?: CustomMessageHandler;
onError?: ErrorHandler;
onKicked?: KickedHandler;
};
/**
* Main hook that provides a complete interface to the game session
*/
export declare function useGameLobby(lobbyOptions?: GameLobbyOptions): {
host: (playerName: string, lobbyId?: string) => Promise<string>;
join: (lobbyId: string, playerName: string) => Promise<void>;
leave: () => void;
setReady: (isReady: boolean) => void;
startGame: () => void;
endGame: () => void;
kickPlayer: (playerId: string) => void;
sendMessage: (peerId: string, data: unknown) => void;
sendMessageToHost: (data: unknown) => void;
broadcastMessage: (data: unknown, excludeSelf?: boolean) => void;
state: import("@lobstar/core").SessionState | null;
isConnected: boolean;
isPlaying: boolean;
isInLobby: boolean;
isGameOver: boolean;
areAllPlayersReady: boolean;
playersList: import("@lobstar/core").Player[];
self: import("@lobstar/core").Player | null;
hostPlayer: import("@lobstar/core").Player | null;
isHost: boolean;
maxPlayers: number;
session: import("@lobstar/core").GameSessionManager | null;
};