@heyvr/sdk-arena
Version:
The SDK for heyVR's arena system.
53 lines (52 loc) • 2.05 kB
TypeScript
import { MediaConnection, PeerError } from "peerjs";
import { LobbyP2P as Lobby, Lobby as LobbyArena } from "./types";
import { BaseLobby } from "./BaseLobby";
export declare class LobbyP2P extends BaseLobby<typeof LobbyP2P.events[number]> implements Lobby {
static readonly events: readonly ["peerConnecting", "peerConnected", "peerDisconnected", "peerAbandoned", "peerRefused", "peerError", "dataReceived", "serverConnected", "serverDisconnected", "serverError"];
private static instance?;
private con?;
private host?;
private lobby?;
private media?;
protected opponent?: string;
private peer;
private target?;
private username?;
constructor(lobby?: LobbyArena);
get actions(): {
listPlayers: () => Promise<Array<string>>;
disconnect: () => void;
reconnect: () => Promise<LobbyP2P>;
abandon: () => Promise<void>;
};
get communications(): {
chat: (message: string) => Promise<string>;
call: () => Promise<MediaConnection>;
onCall: (callback: (accept: (stream?: MediaStream) => void, decline: () => void) => void) => void;
hangUp: () => Promise<void>;
onMessage: (callback: (message: string) => void) => void;
};
get data(): {
send: (data: any) => void;
onReceive: (callback: (payload: any) => void) => void;
};
get events(): {
onConnect: (callback: () => void) => void;
onMatchFound: (callback: (opponent: string) => void) => void;
onDisconnect: (callback: () => void) => void;
onAbandon: (callback: () => void) => void;
onError: (callback: (error: PeerError<any>, fatal: boolean) => void) => void;
};
get session(): {
username: string;
opponent: string;
isConnected: boolean;
};
connect(target: string): Promise<void>;
private destroy;
private disconnectSafely;
getID(): Promise<string>;
static getInstance(): LobbyP2P;
private registerDataCallbacks;
private resolveConnection;
}