haxjs
Version:
haxball headless api written in typescript
95 lines (94 loc) • 4.96 kB
TypeScript
import { AnnounceStyle } from './announce-style';
import { CollisionFlags } from './collision-flags';
import { DiscProperties } from './disc-properties';
import { Player } from './player';
import { Position } from './position';
import { RoomConfig } from './room-config';
import { Scores } from './scores';
import { DefaultStadium } from './default-stadium';
import { TeamID } from './team-id';
declare global {
export interface Window {
_room: Room;
HBInit: (roomConfig: RoomConfig) => Room;
onPlayerJoin: (player: Player) => void;
onPlayerLeave: (player: Player) => void;
onTeamVictory: (scores: Scores) => void;
onPlayerChat: (player: Player, message: string) => void;
onPlayerBallKick: (player: Player) => void;
onTeamGoal: (team: TeamID) => void;
onGameStart: (byPlayer: Player | null) => void;
onGameStop: (byPlayer: Player | null) => void;
onPlayerAdminChange: (changedPlayer: Player, byPlayer: Player | null) => void;
onPlayerTeamChange: (changedPlayer: Player, byPlayer: Player | null) => void;
onPlayerKicked: (kickedPlayer: Player, reason: string, ban: boolean, byPlayer: Player | null) => void;
onGameTick: () => void;
onGamePause: (byPlayer: Player | null) => void;
onGameUnpause: (byPlayer: Player | null) => void;
onPositionsReset: () => void;
onPlayerActivity: (player: Player) => void;
onStadiumChange: (newStadiumName: string, byPlayer: Player | null) => void;
onKickRateLimitSet: (min: number, rate: number, burst: number, byPlayer: Player | null) => void;
}
}
export declare class Room {
private page;
private config;
constructor(config: RoomConfig);
private openNewTab;
private exposeFunctions;
private createRoom;
start(): Promise<void>;
sendChat(message: string, targetId?: number | null): Promise<void>;
setPlayerAdmin(playerId: number, admin: boolean): Promise<void>;
setPlayerTeam(playerId: number, team: number): Promise<void>;
kickPlayer(playerId: number, reason: string, ban: boolean): Promise<void>;
clearBan(playerId: number): Promise<void>;
clearBans(): Promise<void>;
setScoreLimit(limit: number): Promise<void>;
setTimeLimit(limitInMinutes: number): Promise<void>;
setCustomStadium(stadiumFileContents: string): Promise<boolean>;
setDefaultStadium(stadiumName: DefaultStadium): Promise<void>;
setTeamsLock(locked: boolean): Promise<void>;
setTeamColors(team: TeamID, angle: number, textColor: number, colors: number[]): Promise<void>;
startGame(): Promise<void>;
stopGame(): Promise<void>;
pauseGame(pauseState: boolean): Promise<void>;
getPlayer(playerId: number): Promise<Player | null>;
getPlayerList(): Promise<Player[]>;
getScores(): Promise<Scores | null>;
getBallPosition(): Promise<Position | null>;
startRecording(): Promise<void>;
stopRecording(): Promise<Uint8Array | null>;
setPassword(password: string | null): Promise<void>;
setRequireRecaptcha(required: boolean): Promise<void>;
reorderPlayers(playerIdList: number[], moveToTop: boolean): Promise<void>;
sendAnnouncement(msg: string, targetId?: number | null, color?: number | null, style?: AnnounceStyle | null, sound?: number | null): Promise<void>;
setKickRateLimit(min: number, rate: number, burst: number): Promise<void>;
setPlayerAvatar(playerId: number, avatar: string | null): Promise<void>;
setDiscProperties(discIndex: number, properties: Partial<DiscProperties>): Promise<void>;
getDiscProperties(discIndex: number): Promise<DiscProperties | null>;
setPlayerDiscProperties(playerId: number, properties: Partial<DiscProperties>): Promise<void>;
getPlayerDiscProperties(playerId: number): Promise<DiscProperties | null>;
getDiscCount(): Promise<number>;
CollisionFlags: CollisionFlags;
onPlayerJoin?(player: Player): void;
onPlayerLeave?(player: Player): void;
onTeamVictory?(scores: Scores): void;
onPlayerChat?(player: Player, message: string): void;
onPlayerBallKick?(player: Player): void;
onTeamGoal?(team: TeamID): void;
onGameStart?(byPlayer: Player | null): void;
onGameStop?(byPlayer: Player | null): void;
onPlayerAdminChange?(changedPlayer: Player, byPlayer: Player | null): void;
onPlayerTeamChange?(changedPlayer: Player, byPlayer: Player | null): void;
onPlayerKicked?(kickedPlayer: Player, reason: string, ban: boolean, byPlayer: Player | null): void;
onGameTick?(): void;
onGamePause?(byPlayer: Player | null): void;
onGameUnpause?(byPlayer: Player | null): void;
onPositionsReset?(): void;
onPlayerActivity?(player: Player): void;
onStadiumChange?(newStadiumName: string, byPlayer: Player | null): void;
onRoomLink?(url: string): void;
onKickRateLimitSet?(min: number, rate: number, burst: number, byPlayer: Player | null): void;
}