UNPKG

@codebluelife/cbl-base

Version:
180 lines (179 loc) 4.13 kB
export type Dict<T> = { [key: string]: T; }; export interface Character { charId: number; stateId: string; firstName: string; lastName: string; gender: string; x?: number; y?: number; z?: number; heading?: number; lastPlayed?: string; health?: number; armour?: number; isNew?: boolean; } export interface NewCharacter { firstName: string; lastName: string; gender: string; date: number; } export interface PlayerMetadata { name: string; firstName: string; lastName: string; gender: string; dateOfBirth: string; phoneNumber: string; activeGroup?: string; } export interface CharacterLicense { issued: number; suspended?: [number, number]; [key: string]: any; } export type Vehicles = Dict<VehicleData>; export type VehicleCategories = "air" | "land" | "sea"; export type TopVehicleStats = Record<VehicleCategories, VehicleStats>; export interface VehicleStats { acceleration: number; braking: number; handling: number; speed: number; traction: number; } export declare enum VehicleClasses { COMPACT = 0, SEDAN = 1, SUV = 2, COUPE = 3, MUSCLE = 4, SPORTS_CLASSIC = 5, SPORTS = 6, SUPER = 7, MOTORCYCLE = 8, OFFROAD = 9, INDUSTRIAL = 10, UTILITY = 11, VANS = 12, CYCLES = 13, BOATS = 14, HELICOPTERS = 15, PLANES = 16, SERVICE = 17, EMERGENCY = 18, MILITARY = 19, COMMERCIAL = 20, TRAINS = 21, OPEN_WHEEL = 22 } export type VehicleTypes = "amphibious_automobile" | "amphibious_quadbike" | "automobile" | "bicycle" | "bike" | "blimp" | "boat" | "heli" | "plane" | "quadbike" | "submarine" | "submarinecar" | "trailer" | "train"; export interface VehicleData extends VehicleStats { class: VehicleClasses; doors: number; make: string; name: string; price: number; seats: number; type: VehicleTypes; category: VehicleCategories; weapons?: true; [key: string]: unknown; } export interface CBLLicense { name?: string; label?: string; } export interface CBLStatus { name: string; default: number; onTick: number; } export interface CBLAccountMetadata { id: number; balance: number; isDefault: boolean; label: string; type: "personal" | "shared" | "group"; owner?: number; group?: string; } export interface CBLAccountUserMetadata extends CBLAccountMetadata { role: CBLAccountRole; ownerName: string; } export interface DbGroup { name: string; label: string; grades: string[]; accountRoles: Dict<CBLAccountRole>; type?: string; colour?: number; hasAccount: boolean; activePlayers: Set<number>; } export interface CBLGroup extends DbGroup { grades: string[]; principal: string; } export interface CreateGroupProperties { name: string; label: string; grades: { label: string; accountRole?: CBLAccountRole; }[]; type?: string; colour?: number; hasAccount?: boolean; } export interface CBLGroupPermissions { [grade: string]: { [permission: string]: boolean; }; } export type CBLAccountRole = "viewer" | "contributor" | "manager" | "owner"; export interface CBLAccountPermissions { deposit: boolean; withdraw: boolean; addUser: boolean; removeUser: boolean; manageUser: boolean; transferOwnership: boolean; viewHistory: boolean; manageAccount: boolean; closeAccount: boolean; sendInvoice: boolean; payInvoice: boolean; } export interface CBLAccountInvoice { id: number; actorId?: number; payerId?: number; fromAccount: number; toAccount: number; amount: number; message?: string; sentAt: number; dueDate: number; paidAt?: number; } export interface CBLCreateInvoice { actorId?: number; fromAccount: number; toAccount: number; amount: number; message: string; dueDate: string; } export interface BanDetails { userId: number; token?: string; reason?: string; banned_at: number; unban_at?: number; }