jsplanet
Version:
A controller for Trackmania 2020 dedicated server.
38 lines (37 loc) • 1.75 kB
TypeScript
import { TypedEmitter } from "tiny-typed-emitter";
import { ChatManager, MapsManager, PlayersManager, ScoresManager, ServerManager, TeamsManager } from "./managers/index.js";
import { Checkpoint, EndRoundEnd, Message, Player, PlayerStatus, Round, Scores, TeamColor, WarmupRound } from "./structures/index.js";
interface JsPlanetEvents {
checkpoint: (checkpoint: Checkpoint) => unknown;
disconnect: (reason: null | string) => unknown;
endRoundEnd: (round: EndRoundEnd) => unknown;
endRoundStart: (round: Round) => unknown;
message: (message: Message) => unknown;
playerConnect: (player: Player) => unknown;
playerDisconnect: (player: Player) => unknown;
playerStatusChange: (player: Player, oldStatus: PlayerStatus, newStatus: PlayerStatus) => unknown;
playerTeamChange: (player: Player, oldTeam: TeamColor, newTeam: TeamColor) => unknown;
race: (checkpoint: Checkpoint) => unknown;
ready: () => unknown;
scores: (scores: Scores) => unknown;
startRoundEnd: (round: Round) => unknown;
startRoundStart: (round: Round) => unknown;
warmupEnd: () => unknown;
warmupRoundEnd: (warmupRound: WarmupRound) => unknown;
warmupRoundStart: (warmupRound: WarmupRound) => unknown;
warmupStart: () => unknown;
}
declare class JsPlanet extends TypedEmitter<JsPlanetEvents> {
chatManager: ChatManager;
mapsManager: MapsManager;
playersManager: PlayersManager;
scoresManager: ScoresManager;
serverManager: ServerManager;
teamsManager: TeamsManager;
private remote;
constructor(host: string, port: number, user: string, password: string);
connect(): Promise<boolean>;
disconnect(reason?: string): void;
private forwardEvents;
}
export default JsPlanet;