@codebluelife/cbl-base
Version:
A modern FiveM framework.
180 lines (179 loc) • 4.13 kB
TypeScript
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;
}