@armoury/fivem-framework-server 0.0.0-stage → 1.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/decorators/command.decorator.js +37 -0
- package/dist/cjs/decorators/controller.decorator.js +9 -0
- package/dist/cjs/decorators/decorator.utils.js +43 -0
- package/dist/cjs/decorators/event-listener.decorator.js +64 -0
- package/dist/cjs/decorators/export.decorator.js +18 -0
- package/dist/cjs/decorators/index.js +16 -0
- package/dist/cjs/decorators/key-binding.decorator.js +29 -0
- package/dist/cjs/decorators/ui-listener.decorator.js +24 -0
- package/dist/cjs/server/entity-controllers/server-entity-entrance.controller.js +28 -0
- package/dist/cjs/server/index.js +82 -0
- package/dist/cjs/server/models/create-vehicle.enums.js +8 -0
- package/dist/cjs/server/models/index.js +17 -0
- package/dist/cjs/server/models/session/base-items/array.session-item.js +60 -0
- package/dist/cjs/server/models/session/base-items/index.js +17 -0
- package/dist/cjs/server/models/session/index.js +19 -0
- package/dist/cjs/server/models/session/session-item.model.js +19 -0
- package/dist/cjs/server/models/session/session.model.js +2 -0
- package/dist/cjs/server/server-db-dependent.controller.js +227 -0
- package/dist/cjs/server/server.base.js +32 -0
- package/dist/cjs/server/server.controller.js +83 -0
- package/dist/cjs/server/server.entities.js +57 -0
- package/dist/cjs/server/services/index.js +21 -0
- package/dist/cjs/server/services/server-enterable-database.service.js +37 -0
- package/dist/cjs/server/services/server-resource-database.service.js +242 -0
- package/dist/cjs/server/services/server-translate.service.js +54 -0
- package/dist/cjs/server/services/server-virtual-worlds.service.js +62 -0
- package/dist/cjs/server/services/session/default-entities/character.entity.js +31 -0
- package/dist/cjs/server/services/session/default-entities/index.js +24 -0
- package/dist/cjs/server/services/session/default-entities/session-account-id.js +10 -0
- package/dist/cjs/server/services/session/default-entities/session-cash.js +10 -0
- package/dist/cjs/server/services/session/default-entities/session-hours-played.js +16 -0
- package/dist/cjs/server/services/session/default-entities/session-id.js +10 -0
- package/dist/cjs/server/services/session/default-entities/session-language.js +10 -0
- package/dist/cjs/server/services/session/default-entities/session-last-location.js +19 -0
- package/dist/cjs/server/services/session/default-entities/session-name.js +10 -0
- package/dist/cjs/server/services/session/index.js +17 -0
- package/dist/cjs/server/services/session/server-session.service.js +271 -0
- package/dist/cjs/shared/index.js +17 -0
- package/dist/cjs/shared/models/account.js +2 -0
- package/dist/cjs/shared/models/character.js +2 -0
- package/dist/cjs/shared/models/index.js +18 -0
- package/dist/cjs/utils/utils.js +109 -0
- package/dist/esm/decorators/command.decorator.js +33 -0
- package/dist/esm/decorators/controller.decorator.js +6 -0
- package/dist/esm/decorators/decorator.utils.js +38 -0
- package/dist/esm/decorators/event-listener.decorator.js +59 -0
- package/dist/esm/decorators/export.decorator.js +14 -0
- package/dist/esm/decorators/index.js +6 -0
- package/dist/esm/decorators/key-binding.decorator.js +25 -0
- package/dist/esm/decorators/ui-listener.decorator.js +20 -0
- package/dist/esm/server/entity-controllers/server-entity-entrance.controller.js +24 -0
- package/dist/esm/server/index.js +64 -0
- package/dist/esm/server/models/create-vehicle.enums.js +5 -0
- package/dist/esm/server/models/index.js +1 -0
- package/dist/esm/server/models/session/base-items/array.session-item.js +56 -0
- package/dist/esm/server/models/session/base-items/index.js +1 -0
- package/dist/esm/server/models/session/index.js +3 -0
- package/dist/esm/server/models/session/session-item.model.js +15 -0
- package/dist/esm/server/models/session/session.model.js +1 -0
- package/dist/esm/server/server-db-dependent.controller.js +224 -0
- package/dist/esm/server/server.base.js +28 -0
- package/dist/esm/server/server.controller.js +80 -0
- package/dist/esm/server/server.entities.js +54 -0
- package/dist/esm/server/services/index.js +5 -0
- package/dist/esm/server/services/server-enterable-database.service.js +34 -0
- package/dist/esm/server/services/server-resource-database.service.js +239 -0
- package/dist/esm/server/services/server-translate.service.js +51 -0
- package/dist/esm/server/services/server-virtual-worlds.service.js +59 -0
- package/dist/esm/server/services/session/default-entities/character.entity.js +28 -0
- package/dist/esm/server/services/session/default-entities/index.js +8 -0
- package/dist/esm/server/services/session/default-entities/session-account-id.js +6 -0
- package/dist/esm/server/services/session/default-entities/session-cash.js +6 -0
- package/dist/esm/server/services/session/default-entities/session-hours-played.js +12 -0
- package/dist/esm/server/services/session/default-entities/session-id.js +6 -0
- package/dist/esm/server/services/session/default-entities/session-language.js +6 -0
- package/dist/esm/server/services/session/default-entities/session-last-location.js +15 -0
- package/dist/esm/server/services/session/default-entities/session-name.js +6 -0
- package/dist/esm/server/services/session/index.js +1 -0
- package/dist/esm/server/services/session/server-session.service.js +268 -0
- package/dist/esm/shared/index.js +1 -0
- package/dist/esm/shared/models/account.js +1 -0
- package/dist/esm/shared/models/character.js +1 -0
- package/dist/esm/shared/models/index.js +2 -0
- package/dist/esm/utils/utils.js +93 -0
- package/dist/types/ambient.declarations.d.ts +62840 -0
- package/dist/types/decorators/command.decorator.d.ts +5 -0
- package/dist/types/decorators/controller.decorator.d.ts +1 -0
- package/dist/types/decorators/decorator.utils.d.ts +15 -0
- package/dist/types/decorators/event-listener.decorator.d.ts +15 -0
- package/dist/types/decorators/export.decorator.d.ts +2 -0
- package/dist/types/decorators/index.d.ts +6 -0
- package/dist/types/decorators/key-binding.decorator.d.ts +8 -0
- package/dist/types/decorators/ui-listener.decorator.d.ts +4 -0
- package/dist/types/server/entity-controllers/server-entity-entrance.controller.d.ts +14 -0
- package/dist/types/server/index.d.ts +23 -0
- package/dist/types/server/models/create-vehicle.enums.d.ts +3 -0
- package/dist/types/server/models/index.d.ts +1 -0
- package/dist/types/server/models/session/base-items/array.session-item.d.ts +13 -0
- package/dist/types/server/models/session/base-items/index.d.ts +1 -0
- package/dist/types/server/models/session/index.d.ts +3 -0
- package/dist/types/server/models/session/session-item.model.d.ts +22 -0
- package/dist/types/server/models/session/session.model.d.ts +4 -0
- package/dist/types/server/server-db-dependent.controller.d.ts +29 -0
- package/dist/types/server/server.base.d.ts +7 -0
- package/dist/types/server/server.controller.d.ts +20 -0
- package/dist/types/server/server.entities.d.ts +13 -0
- package/dist/types/server/services/index.d.ts +5 -0
- package/dist/types/server/services/server-enterable-database.service.d.ts +14 -0
- package/dist/types/server/services/server-resource-database.service.d.ts +37 -0
- package/dist/types/server/services/server-translate.service.d.ts +12 -0
- package/dist/types/server/services/server-virtual-worlds.service.d.ts +15 -0
- package/dist/types/server/services/session/default-entities/character.entity.d.ts +5 -0
- package/dist/types/server/services/session/default-entities/index.d.ts +8 -0
- package/dist/types/server/services/session/default-entities/session-account-id.d.ts +4 -0
- package/dist/types/server/services/session/default-entities/session-cash.d.ts +4 -0
- package/dist/types/server/services/session/default-entities/session-hours-played.d.ts +5 -0
- package/dist/types/server/services/session/default-entities/session-id.d.ts +4 -0
- package/dist/types/server/services/session/default-entities/session-language.d.ts +4 -0
- package/dist/types/server/services/session/default-entities/session-last-location.d.ts +6 -0
- package/dist/types/server/services/session/default-entities/session-name.d.ts +4 -0
- package/dist/types/server/services/session/index.d.ts +1 -0
- package/dist/types/server/services/session/server-session.service.d.ts +70 -0
- package/dist/types/shared/index.d.ts +1 -0
- package/dist/types/shared/models/account.d.ts +5 -0
- package/dist/types/shared/models/character.d.ts +4 -0
- package/dist/types/shared/models/index.d.ts +2 -0
- package/dist/types/utils/utils.d.ts +15 -0
- package/package.json +35 -5
- package/README.md +0 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function Controller(data?: any): (target: any) => void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Provider } from "injection-js";
|
|
2
|
+
export declare class DecoratorUtils {
|
|
3
|
+
static map(target: any, _prototype: any, providers: Object[]): {
|
|
4
|
+
key: any;
|
|
5
|
+
target: any;
|
|
6
|
+
value: any;
|
|
7
|
+
}[];
|
|
8
|
+
}
|
|
9
|
+
export declare function Decorate<T extends {
|
|
10
|
+
new (...args: any[]): any;
|
|
11
|
+
} & Provider>(instance: T, _prototype: any, providers: Provider[], decorationType?: DecorationType): void;
|
|
12
|
+
export declare enum DecorationType {
|
|
13
|
+
SERVER = 0,
|
|
14
|
+
CLIENT = 1
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function EventListener(data?: {
|
|
2
|
+
eventName?: string;
|
|
3
|
+
direction?: EVENT_DIRECTIONS;
|
|
4
|
+
type?: 'ui' | 'default';
|
|
5
|
+
}): (target: any, propertyKey: string) => void;
|
|
6
|
+
export declare function EventListeners(target: any, _prototype: any, providers?: Object[]): void;
|
|
7
|
+
export declare enum EVENT_DIRECTIONS {
|
|
8
|
+
SERVER_TO_SERVER = 0,
|
|
9
|
+
SERVER_TO_CLIENT = 1,
|
|
10
|
+
CLIENT_TO_SERVER = 2,
|
|
11
|
+
CLIENT_TO_CLIENT = 3
|
|
12
|
+
}
|
|
13
|
+
export declare const DEFAULT_EVENTS: {
|
|
14
|
+
[key: string]: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { Command } from './command.decorator';
|
|
2
|
+
export { Controller } from './controller.decorator';
|
|
3
|
+
export { EventListener, EVENT_DIRECTIONS } from './event-listener.decorator';
|
|
4
|
+
export { Export } from './export.decorator';
|
|
5
|
+
export { KeyBinding } from './key-binding.decorator';
|
|
6
|
+
export { UIListener } from './ui-listener.decorator';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function KeyBinding(data: {
|
|
2
|
+
command?: string;
|
|
3
|
+
description: string;
|
|
4
|
+
defaultMapper: KeyBindingType;
|
|
5
|
+
key: string;
|
|
6
|
+
}): (target: any, propertyKey: string) => void;
|
|
7
|
+
export declare function KeyBindings(target: any, _prototype: any, providers?: Object[]): void;
|
|
8
|
+
export type KeyBindingType = 'digitalbutton_axis' | 'game_controlled' | 'joystick_axis' | 'joystick_axis_negative' | 'joystick_axis_positive' | 'joystick_button' | 'joystick_iaxis' | 'joystick_pov' | 'joystick_pov_axis' | 'keyboard' | 'mkb_axis' | 'mouse_absoluteaxis' | 'mouse_button' | 'mouse_buttonany' | 'mouse_centeredaxis' | 'mouse_relativeaxis' | 'mouse_scaledaxis' | 'mouse_normalized' | 'mouse_wheel' | 'pad_analogbutton' | 'pad_axis' | 'pad_debugbutton' | 'pad_digitalbutton' | 'pad_digitalbuttonany' | 'touchpad_absolute_axis' | 'touchpad_centered_axis';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ServerDBDependentController } from '../server-db-dependent.controller';
|
|
2
|
+
export declare class ServerEntityWithEntranceController<T extends {
|
|
3
|
+
id: number;
|
|
4
|
+
entranceX: number;
|
|
5
|
+
entranceY: number;
|
|
6
|
+
entranceZ: number;
|
|
7
|
+
exitX: number;
|
|
8
|
+
exitY: number;
|
|
9
|
+
exitZ: number;
|
|
10
|
+
}> extends ServerDBDependentController<T> {
|
|
11
|
+
protected getClosestEntityOfSameTypeToPlayer(player: number): T | null;
|
|
12
|
+
protected getClosestEntityOfSameTypeEntranceToPlayer(source: number): T | null;
|
|
13
|
+
protected getClosestEntityOfSameTypeExitToPlayer(source: number): T | null;
|
|
14
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference path="../ambient.declarations.d.ts" />
|
|
2
|
+
import 'reflect-metadata';
|
|
3
|
+
import { Provider } from 'injection-js';
|
|
4
|
+
import { SessionId, SessionLastLocation, SessionName } from './services/session/default-entities';
|
|
5
|
+
export declare const SERVER_PROVIDERS: ({
|
|
6
|
+
provide: string;
|
|
7
|
+
useValue: SessionId;
|
|
8
|
+
multi: boolean;
|
|
9
|
+
} | {
|
|
10
|
+
provide: string;
|
|
11
|
+
useValue: SessionName;
|
|
12
|
+
multi: boolean;
|
|
13
|
+
} | {
|
|
14
|
+
provide: string;
|
|
15
|
+
useValue: SessionLastLocation;
|
|
16
|
+
multi: boolean;
|
|
17
|
+
})[];
|
|
18
|
+
export declare function Server_Init<T extends {
|
|
19
|
+
new (...args: any[]): any;
|
|
20
|
+
} & Provider>(_class: T, ...providers: Provider[]): Promise<T>;
|
|
21
|
+
export * from './services';
|
|
22
|
+
export * from './models';
|
|
23
|
+
export * from '@armoury/fivem-framework-common';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './session';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ISessionItem, SessionItem } from "../session-item.model";
|
|
2
|
+
export declare abstract class ArraySessionItem<T> extends SessionItem<Array<T>> implements ISessionItem<Array<T>> {
|
|
3
|
+
readonly tableName: string;
|
|
4
|
+
readonly syncedProperties: ISqlProperty[];
|
|
5
|
+
constructor(name: string, value: Array<T>, critical: boolean | undefined, tableName: string, syncedProperties: ISqlProperty[]);
|
|
6
|
+
load(accountId: number, characterId: number): Promise<Array<T>>;
|
|
7
|
+
save(accountId: number, characterId: number, value: Array<T>): Promise<void>;
|
|
8
|
+
private setup;
|
|
9
|
+
}
|
|
10
|
+
export interface ISqlProperty {
|
|
11
|
+
name: string;
|
|
12
|
+
type: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './array.session-item';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare abstract class SessionItem<T> implements ISessionItem<T> {
|
|
2
|
+
readonly name: string;
|
|
3
|
+
readonly defaultValue: T;
|
|
4
|
+
readonly critical: boolean;
|
|
5
|
+
constructor(name: string, defaultValue: T, critical?: boolean);
|
|
6
|
+
load(_accountId: number, _characterId: number, bruteValue: any): Promise<T>;
|
|
7
|
+
compute(_playerId: number, originalValue: T): T;
|
|
8
|
+
}
|
|
9
|
+
export interface ISessionItem<T> extends ISessionItemBase {
|
|
10
|
+
defaultValue: T;
|
|
11
|
+
compute(playerId: number, originalValue: T): T;
|
|
12
|
+
load(accountId: number, characterId: number, bruteValue: any): Promise<T>;
|
|
13
|
+
save?(accountId: number, characterId: number, value: T): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface ISessionItemBase {
|
|
16
|
+
name: string;
|
|
17
|
+
defaultValue: any;
|
|
18
|
+
critical?: boolean;
|
|
19
|
+
compute(playerId: number, originalValue: any): any;
|
|
20
|
+
load(accountId: number, characterId: number, bruteValue: any): any;
|
|
21
|
+
save?(accountId: number, characterId: number, value: any): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ServerController } from "./server.controller";
|
|
2
|
+
export declare class ServerDBDependentController<T extends {
|
|
3
|
+
id: number;
|
|
4
|
+
}> extends ServerController {
|
|
5
|
+
protected dbTableName: string;
|
|
6
|
+
private _entities;
|
|
7
|
+
protected get entities(): T[];
|
|
8
|
+
private _cachedProperties;
|
|
9
|
+
protected get cachedProperties(): string[];
|
|
10
|
+
private _playerToEntityBindings;
|
|
11
|
+
protected get playerToEntityBindings(): Map<number, (number | string)[]>;
|
|
12
|
+
constructor(dbTableName: string, loadAllAtStart?: boolean);
|
|
13
|
+
protected getEntities(): T[];
|
|
14
|
+
protected createEntity(entity: T, forceId?: number): Promise<T | null>;
|
|
15
|
+
protected removeEntity(entity: T): Promise<boolean>;
|
|
16
|
+
protected saveDBEntityAsync(id: number): Promise<boolean>;
|
|
17
|
+
protected getEntityByDBId(id: number): T | undefined;
|
|
18
|
+
protected loadDBEntityFor(value: number | string, key?: string, bindTo?: number): Promise<T | T[] | null>;
|
|
19
|
+
protected loadDBEntities(): Promise<T[]>;
|
|
20
|
+
private getEntityProperties;
|
|
21
|
+
private getEntityPropertiesValues;
|
|
22
|
+
protected syncWithClients(client?: number): void;
|
|
23
|
+
protected bindEntityToPlayer(entity: T, playerId: number): void;
|
|
24
|
+
protected bindEntityToPlayerByEntityId(id: number | string, playerId: number): void;
|
|
25
|
+
protected onBoundEntityDestroyed(_entity: T, _boundPlayer: number): void;
|
|
26
|
+
onPlayerAuthenticate(playerId: number, _player: any): void;
|
|
27
|
+
onPlayerDisconnect(): void;
|
|
28
|
+
private computeTableProperties;
|
|
29
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class ServerBase {
|
|
2
|
+
constructor();
|
|
3
|
+
protected RegisterAdminCommand(commandName: string, adminLevelRequired: number, handlerFunction: Function, restricted: boolean): void;
|
|
4
|
+
private assignServerBaseListeners;
|
|
5
|
+
protected setRoutingBucket(playerId: number, routingBucket: number): void;
|
|
6
|
+
protected routingBucketCondition: (source: number, routingBucket: number) => boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ServerEntities } from "./server.entities";
|
|
2
|
+
export declare class ServerController extends ServerEntities {
|
|
3
|
+
protected translationFile?: {
|
|
4
|
+
[key: string]: string;
|
|
5
|
+
};
|
|
6
|
+
private _translationLanguage;
|
|
7
|
+
protected get translationLanguage(): string;
|
|
8
|
+
private _clientsidedResourceMap;
|
|
9
|
+
protected get clientsidedResourceMap(): Map<number, {
|
|
10
|
+
[metadataKey: string]: any;
|
|
11
|
+
}>;
|
|
12
|
+
protected getPlayerClientsidedCacheKey(playerId: number, key: string): any;
|
|
13
|
+
protected updatePlayerClientsidedCacheKey(playerId: number, key: string, value: any): void;
|
|
14
|
+
onPlayerClientsidedCacheLoaded(metadataObject: any): void;
|
|
15
|
+
onPlayerDisconnect(): void;
|
|
16
|
+
protected translate(key: string, params?: {
|
|
17
|
+
[key: string]: string;
|
|
18
|
+
}): string;
|
|
19
|
+
protected setTranslationLanguage(language: string): void;
|
|
20
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ServerBase } from './server.base';
|
|
2
|
+
export declare class ServerEntities extends ServerBase {
|
|
3
|
+
private _virtualWorldsWithPlayers;
|
|
4
|
+
/** This only counts virtual worlds related to the resource! If another resource changes the virtual world of the player, this resource won't know it! */
|
|
5
|
+
protected get virtualWorldsWithPlayers(): Map<number, number[]>;
|
|
6
|
+
onPlayerEnteredScope(data: {
|
|
7
|
+
for: number;
|
|
8
|
+
player: number;
|
|
9
|
+
}): void;
|
|
10
|
+
protected setPlayerVirtualWorld(playerId: number, virtualWorld: number): void;
|
|
11
|
+
protected getPlayerVirtualWorld(playerId: number): number;
|
|
12
|
+
removeClientsideVehicles(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ServerResourceDatabase } from "./server-resource-database.service";
|
|
2
|
+
export declare class ServerEnterableDatabase<T extends {
|
|
3
|
+
id: number;
|
|
4
|
+
entranceX: number;
|
|
5
|
+
entranceY: number;
|
|
6
|
+
entranceZ: number;
|
|
7
|
+
exitX: number;
|
|
8
|
+
exitY: number;
|
|
9
|
+
exitZ: number;
|
|
10
|
+
}> extends ServerResourceDatabase<T> {
|
|
11
|
+
getClosestToPlayer(player: number): T | null;
|
|
12
|
+
getClosestEntranceToPlayer(source: number): T | null;
|
|
13
|
+
getClosestExitToPlayer(source: number): T | null;
|
|
14
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Observable } from "rxjs";
|
|
2
|
+
export declare class ServerResourceDatabase<T extends {
|
|
3
|
+
id: number;
|
|
4
|
+
}> {
|
|
5
|
+
readonly _tableName: string;
|
|
6
|
+
readonly _loadAllAtStart?: boolean | undefined;
|
|
7
|
+
private _onBoundEntityDestroyed$;
|
|
8
|
+
get onBoundEntityDestroyed$(): Observable<{
|
|
9
|
+
entity: T;
|
|
10
|
+
boundPlayer: number;
|
|
11
|
+
}>;
|
|
12
|
+
private _onSync$;
|
|
13
|
+
get onSync$(): Observable<{
|
|
14
|
+
player: number;
|
|
15
|
+
} | void>;
|
|
16
|
+
private _entities;
|
|
17
|
+
get entities(): T[];
|
|
18
|
+
private _cachedProperties;
|
|
19
|
+
get cachedProperties(): string[];
|
|
20
|
+
private _playerToEntityBindings;
|
|
21
|
+
get playerToEntityBindings(): Map<number, (number | string)[]>;
|
|
22
|
+
constructor(_tableName: string, _loadAllAtStart?: boolean | undefined);
|
|
23
|
+
create(entity: T, forceId?: number): Promise<T | null>;
|
|
24
|
+
remove(entity: T): Promise<boolean>;
|
|
25
|
+
saveAsync(id: number): Promise<boolean>;
|
|
26
|
+
protected loadDBEntityFor(value: number | string, key?: string, bindTo?: number): Promise<T | T[] | null>;
|
|
27
|
+
protected loadDBEntities(): Promise<T[]>;
|
|
28
|
+
private getEntityProperties;
|
|
29
|
+
private getEntityPropertiesValues;
|
|
30
|
+
bindEntityToPlayer(entity: T, playerId: number): void;
|
|
31
|
+
bindEntityToPlayerByEntityId(id: number | string, playerId: number): void;
|
|
32
|
+
onPlayerAuthenticate(playerId: number, _player: any): void;
|
|
33
|
+
onPlayerDisconnect(): void;
|
|
34
|
+
private computeTableProperties;
|
|
35
|
+
getEntityByDBId(id: number): T | undefined;
|
|
36
|
+
getEntities(): T[];
|
|
37
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class ServerTranslateService {
|
|
2
|
+
private readonly _translations;
|
|
3
|
+
private playersMappedToLanguages;
|
|
4
|
+
constructor(_translations: {
|
|
5
|
+
[key: string]: {
|
|
6
|
+
[key: string]: string;
|
|
7
|
+
};
|
|
8
|
+
});
|
|
9
|
+
instant(forPlayer: number, key: string): string;
|
|
10
|
+
onPlayerDisconnect(): void;
|
|
11
|
+
getLanguage(forPlayer: number): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ServerSessionService } from "./session";
|
|
2
|
+
export declare class ServerVirtualWorldsService {
|
|
3
|
+
private readonly _session;
|
|
4
|
+
constructor(_session: ServerSessionService);
|
|
5
|
+
private _virtualWorldsWithPlayers;
|
|
6
|
+
/** This only counts virtual worlds related to the resource! If another resource changes the virtual world of the player, this resource won't know it! */
|
|
7
|
+
get virtualWorldsWithPlayers(): Map<number, number[]>;
|
|
8
|
+
onPlayerEnteredScope(data: {
|
|
9
|
+
for: number;
|
|
10
|
+
player: number;
|
|
11
|
+
}): void;
|
|
12
|
+
setPlayerVirtualWorld(playerId: number, virtualWorld: number): void;
|
|
13
|
+
getPlayerVirtualWorld(playerId: number): number;
|
|
14
|
+
removeClientsideVehicles(): void;
|
|
15
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './character.entity';
|
|
2
|
+
export * from './session-account-id';
|
|
3
|
+
export * from './session-cash';
|
|
4
|
+
export * from './session-hours-played';
|
|
5
|
+
export * from './session-language';
|
|
6
|
+
export * from './session-last-location';
|
|
7
|
+
export * from './session-name';
|
|
8
|
+
export * from './session-id';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { SessionItem, ISessionItem } from "../../../models";
|
|
2
|
+
export declare class SessionLastLocation extends SessionItem<Array<number>> implements ISessionItem<Array<number>> {
|
|
3
|
+
constructor();
|
|
4
|
+
compute(playerId: number, originalValue: Array<number>): Array<number>;
|
|
5
|
+
load(_accountId: number, _characterId: number, bruteValue: any): Promise<Array<number>>;
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './server-session.service';
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { Provider } from "injection-js";
|
|
2
|
+
import { IAccount } from "../../../shared";
|
|
3
|
+
import { ISessionItemBase } from "../../models";
|
|
4
|
+
import { ISession } from "../../models/session/session.model";
|
|
5
|
+
export declare class ServerSessionService {
|
|
6
|
+
private readonly _sessionItems?;
|
|
7
|
+
private _sessions;
|
|
8
|
+
private _untrackedSessionItems;
|
|
9
|
+
get players(): number[];
|
|
10
|
+
get authenticatedPlayers(): number[];
|
|
11
|
+
constructor(_sessionItems?: ISessionItemBase[] | undefined);
|
|
12
|
+
/**
|
|
13
|
+
* Registers an account.
|
|
14
|
+
* @param playerId The playerId (NOT from the database) of this player
|
|
15
|
+
* @param accountName The account name of this player
|
|
16
|
+
* @param hashedPassword The hashed password of this account
|
|
17
|
+
* @param email The email of this account
|
|
18
|
+
* @returns The SQL ID of the newly-created account
|
|
19
|
+
*/
|
|
20
|
+
register(playerId: number, accountName: string, hashedPassword: string, email: string): Promise<number>;
|
|
21
|
+
/**
|
|
22
|
+
* Logs into an account
|
|
23
|
+
* @param playerId The playerId (NOT from the database) of this player
|
|
24
|
+
* @param email The email of the account
|
|
25
|
+
* @param hashedPassword The hashed password fo this account
|
|
26
|
+
* @returns Account data for this account
|
|
27
|
+
*/
|
|
28
|
+
login(playerId: number, email: string, hashedPassword: string): Promise<IAccount>;
|
|
29
|
+
/**
|
|
30
|
+
* Fetches all the characters related to the provided account
|
|
31
|
+
* @param playerId The playerId (NOT from the database) of this player
|
|
32
|
+
* @param accountId The accountId of the
|
|
33
|
+
* @returns Data for all characters on the given account
|
|
34
|
+
*/
|
|
35
|
+
fetch(playerId: number, accountId?: number): Promise<ISession[]>;
|
|
36
|
+
/**
|
|
37
|
+
* Loads the entire character given a character ID
|
|
38
|
+
* @param playerId The playerId (NOT from the database) of this player
|
|
39
|
+
* @param characterId The character's SQL ID
|
|
40
|
+
* @returns Data for the given characterId
|
|
41
|
+
*/
|
|
42
|
+
load(playerId: number, characterId: number): Promise<ISession>;
|
|
43
|
+
/**
|
|
44
|
+
* Creates a character
|
|
45
|
+
* @param playerId
|
|
46
|
+
* @param accountName
|
|
47
|
+
* @param hashedPassword
|
|
48
|
+
* @param email
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
create(playerId: number, accountId?: number): Promise<number>;
|
|
52
|
+
setPlayerInfo<T>(playerId: number, stat: string, value: T, ...args: any[]): void;
|
|
53
|
+
setPlayerCash(playerId: number, value: number, options?: SessionUpdaterOptions): void;
|
|
54
|
+
givePlayerCash(playerId: number, value: number, options?: SessionUpdaterOptions): void;
|
|
55
|
+
getPlayerCash(playerId: number): number;
|
|
56
|
+
saveCritical(playerId: number): void;
|
|
57
|
+
getPlayerInfo<T>(playerId: number, stat: string): T;
|
|
58
|
+
clearPlayerInfo(playerId: number): void;
|
|
59
|
+
onResourceStart(resource: string): void;
|
|
60
|
+
exchangeSessionItems(items: ISessionItemBase[]): ISessionItemBase[];
|
|
61
|
+
static withDefaults(): Provider;
|
|
62
|
+
static withItems<T extends {
|
|
63
|
+
new (...args: any[]): any;
|
|
64
|
+
}>(...items: T[]): Provider[];
|
|
65
|
+
}
|
|
66
|
+
interface SessionUpdaterOptions {
|
|
67
|
+
executeSqlCommand?: boolean;
|
|
68
|
+
ignoreSqlCommandFor?: string[];
|
|
69
|
+
}
|
|
70
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './models';
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const Delay: (ms: number) => Promise<unknown>;
|
|
2
|
+
declare const isPlayerInArea: (playerPosX: number, playerPosY: number, playerPosZ: number, areaMinX: number, areaMinY: number, areaMinZ: number, areaMaxX: number, areaMaxY: number, areaMaxZ: number) => boolean;
|
|
3
|
+
declare const isPlayerInRangeOfPoint: (playerPosX: number, playerPosY: number, playerPosZ: number, pointX: number, pointY: number, pointZ: number, range: number) => boolean;
|
|
4
|
+
declare const waitUntilThenDo: (condition: Function, func: Function) => Promise<void>;
|
|
5
|
+
export declare const calculateDistance: (pos: number[]) => number;
|
|
6
|
+
export declare const calculateDistanceInKm: (pos: number[]) => number;
|
|
7
|
+
export declare const getRandomPositionInsideArea: (x1: number, x2: number, y1: number, y2: number) => [number, number];
|
|
8
|
+
export declare const isPositionIn2DArea: (x: number, y: number, x1: number, x2: number, y1: number, y2: number) => boolean;
|
|
9
|
+
declare const numberWithCommas: (x: number) => string;
|
|
10
|
+
declare const isJSON: (str: string) => boolean;
|
|
11
|
+
export declare const phoneFormatted: (phone: number) => string;
|
|
12
|
+
export declare const toThousandsString: (input: number, args?: number) => string | number | null;
|
|
13
|
+
export declare const fromThousandsString: (input: string) => number;
|
|
14
|
+
export declare const toTitleCase: (str: string) => string;
|
|
15
|
+
export { Delay, isPlayerInArea, isPlayerInRangeOfPoint, waitUntilThenDo, numberWithCommas, isJSON };
|
package/package.json
CHANGED
|
@@ -1,6 +1,36 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@armoury/fivem-framework-server",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
1
|
+
{
|
|
2
|
+
"name": "@armoury/fivem-framework-server",
|
|
3
|
+
"version": "1.0.8",
|
|
4
|
+
"description": "Server APIs for the Armoury FiveM framework",
|
|
5
|
+
"main": "dist/cjs/server/index.js",
|
|
6
|
+
"module": "dist/esm/server/index.js",
|
|
7
|
+
"types": "dist/types/server/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/types/server/index.d.ts",
|
|
11
|
+
"import": "./dist/esm/server/index.js",
|
|
12
|
+
"require": "./dist/cjs/server/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"files": ["dist"],
|
|
16
|
+
"scripts": {
|
|
17
|
+
"build": "npm run build:cjs && npm run build:esm && npm run build:types",
|
|
18
|
+
"build:cjs": "tsc -p tsconfig.cjs.json",
|
|
19
|
+
"build:esm": "tsc -p tsconfig.esm.json",
|
|
20
|
+
"build:types": "tsc -p tsconfig.types.json && node ../../tools/move_ambientdeclaration.js server"
|
|
21
|
+
},
|
|
22
|
+
"dependencies": {
|
|
23
|
+
"@armoury/fivem-framework-common": "1.0.7",
|
|
24
|
+
"injection-js": "^2.4.0",
|
|
25
|
+
"reflect-metadata": "^0.2.1",
|
|
26
|
+
"rxjs": "^7.8.1"
|
|
27
|
+
},
|
|
28
|
+
"peerDependencies": {
|
|
29
|
+
"@armoury/fivem-framework-common": "1.0.7",
|
|
30
|
+
"@mikro-orm/core": "^6.2.9",
|
|
31
|
+
"@mikro-orm/mysql": "^6.2.9"
|
|
32
|
+
},
|
|
33
|
+
"publishConfig": {
|
|
34
|
+
"access": "public"
|
|
35
|
+
}
|
|
6
36
|
}
|
package/README.md
DELETED