UNPKG

erlc-api

Version:

An ER:LC API wrapper for JS/TS

128 lines (109 loc) 3.8 kB
declare module "erlc-api" { // Error handling types export class ErlcError extends Error { code: string | number; status?: number; category?: string; severity?: string; suggestions?: string[]; retryable?: boolean; timestamp: string; originalError?: Error; constructor( message: string, code: string | number, status?: number, originalError?: Error ); toJSON(): object; toString(): string; } export interface ErrorInfo { message: string; description: string; category: string; severity: string; code?: number; } export interface ClientConfig { globalToken: string; // The ER:LC global API token } export const BASEURL = "https://api.policeroleplay.community/v1"; type PlayerId = string; type PlayerName = string; type TextureName = string; type CarName = string; export type ErlcPlayer = `${PlayerName}:${PlayerId}`; // Playername:UserID export type ErlcPlayerPermission = | "Normal" | "Server Administrator" | "Server Owner" | "Server Moderator"; export interface ServerStatus { Name: string; // The server name OwnerUsername: string; // The username of the server owner CoOwnerUsernames: string[]; // The usernames of the server co owners CurrentPlayers: number; // The amount of people currently in-game MaxPlayers: number; // The amount of people who can join the server including server owner JoinKey: string; // The code used to join the private server AccVerifiedReq: "Disabled" | "Email" | "Phone/ID"; // The level of verification roblox accounts need to join the private server TeamBalance: boolean; // If team balance is enabled or not VanityURL: string; // The vanity URL to join the server } export interface ServerPlayer { Player: ErlcPlayer; Permission: ErlcPlayerPermission; } export interface JoinLog { Join: boolean; // True is join and False is leave Timestamp: number; // Timestamp in seconds Player: ErlcPlayer; } export interface KillLog { Killed: ErlcPlayer; Timestamp: number; // Timestamp in seconds Killer: ErlcPlayer; } export interface CommandLog { Player: ErlcPlayer; Timestamp: number; // Timestamp in seconds Command: string; } export interface ModcallLog { Caller: ErlcPlayer; Moderator?: ErlcPlayer; // If call is unanswered property is undefined Timestamp: number; // Timestamp in seconds } export type ServerBan = Record<PlayerId, PlayerName>; export interface VehiclesLog { Texture: string | null; Name: string; Owner: ErlcPlayer; } export interface ServerStaff { CoOwners: number[]; Admins: Record<string, string>; Mods: Record<string, string>; } export interface VSMCommandBody { command: string; // ":h Hey everyone!" } export function getBans(serverToken: string): Promise<ServerBan>; export function getCommandLogs(serverToken: string): Promise<CommandLog[]>; export function getJoinLogs(serverToken: string): Promise<JoinLog[]>; export function getKillLogs(serverToken: string): Promise<KillLog[]>; export function getModcallLogs(serverToken: string): Promise<ModcallLog[]>; export function getPlayers(serverToken: string): Promise<ServerPlayer[]>; export function getQueue(serverToken: string): Promise<number[]>; export function getServer(serverToken: string): Promise<ServerStatus>; export function getStaff(serverToken: string): Promise<ServerStaff>; export function getVehicles(serverToken: string): Promise<VehiclesLog[]>; export function runCommand( serverToken: string, command: string ): Promise<boolean>; export class Client { constructor(options: ClientConfig); config(): ClientConfig; } }