@open-core/framework 1.0.1-beta.1
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/LICENSE +373 -0
- package/README.md +350 -0
- package/dist/client/client-bootstrap.d.ts +1 -0
- package/dist/client/client-bootstrap.js +53 -0
- package/dist/client/client-container.d.ts +2 -0
- package/dist/client/client-container.js +6 -0
- package/dist/client/client-core.d.ts +18 -0
- package/dist/client/client-core.js +52 -0
- package/dist/client/decorators/controller.d.ts +3 -0
- package/dist/client/decorators/controller.js +14 -0
- package/dist/client/decorators/export.d.ts +7 -0
- package/dist/client/decorators/export.js +15 -0
- package/dist/client/decorators/gameEvent.d.ts +47 -0
- package/dist/client/decorators/gameEvent.js +54 -0
- package/dist/client/decorators/index.d.ts +10 -0
- package/dist/client/decorators/index.js +26 -0
- package/dist/client/decorators/interval.d.ts +7 -0
- package/dist/client/decorators/interval.js +15 -0
- package/dist/client/decorators/key.d.ts +2 -0
- package/dist/client/decorators/key.js +10 -0
- package/dist/client/decorators/localEvent.d.ts +7 -0
- package/dist/client/decorators/localEvent.js +15 -0
- package/dist/client/decorators/nui.d.ts +1 -0
- package/dist/client/decorators/nui.js +9 -0
- package/dist/client/decorators/onNet.d.ts +1 -0
- package/dist/client/decorators/onNet.js +9 -0
- package/dist/client/decorators/resourceLifecycle.d.ts +11 -0
- package/dist/client/decorators/resourceLifecycle.js +24 -0
- package/dist/client/decorators/tick.d.ts +1 -0
- package/dist/client/decorators/tick.js +9 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.js +22 -0
- package/dist/client/loaders/exports.loader.d.ts +1 -0
- package/dist/client/loaders/exports.loader.js +13 -0
- package/dist/client/player/player.d.ts +262 -0
- package/dist/client/player/player.js +480 -0
- package/dist/client/player/player.loader.d.ts +1 -0
- package/dist/client/player/player.loader.js +22 -0
- package/dist/client/services/core/index.d.ts +1 -0
- package/dist/client/services/core/index.js +17 -0
- package/dist/client/services/core/spawn.service.d.ts +20 -0
- package/dist/client/services/core/spawn.service.js +143 -0
- package/dist/client/services/index.d.ts +4 -0
- package/dist/client/services/index.js +24 -0
- package/dist/client/services/streaming/index.d.ts +1 -0
- package/dist/client/services/streaming/index.js +17 -0
- package/dist/client/services/streaming/streaming.service.d.ts +165 -0
- package/dist/client/services/streaming/streaming.service.js +341 -0
- package/dist/client/services/ui/index.d.ts +3 -0
- package/dist/client/services/ui/index.js +19 -0
- package/dist/client/services/ui/notification.service.d.ts +76 -0
- package/dist/client/services/ui/notification.service.js +111 -0
- package/dist/client/services/ui/progress.service.d.ts +82 -0
- package/dist/client/services/ui/progress.service.js +210 -0
- package/dist/client/services/ui/textui.service.d.ts +82 -0
- package/dist/client/services/ui/textui.service.js +156 -0
- package/dist/client/services/world/blip.service.d.ts +112 -0
- package/dist/client/services/world/blip.service.js +215 -0
- package/dist/client/services/world/index.d.ts +4 -0
- package/dist/client/services/world/index.js +20 -0
- package/dist/client/services/world/marker.service.d.ts +94 -0
- package/dist/client/services/world/marker.service.js +153 -0
- package/dist/client/services/world/ped.service.d.ts +182 -0
- package/dist/client/services/world/ped.service.js +302 -0
- package/dist/client/services/world/vehicle.service.d.ts +168 -0
- package/dist/client/services/world/vehicle.service.js +296 -0
- package/dist/client/system/metadata-client.keys.d.ts +13 -0
- package/dist/client/system/metadata-client.keys.js +16 -0
- package/dist/client/system/processors/export.processor.d.ts +7 -0
- package/dist/client/system/processors/export.processor.js +39 -0
- package/dist/client/system/processors/gameEvent.processor.d.ts +10 -0
- package/dist/client/system/processors/gameEvent.processor.js +58 -0
- package/dist/client/system/processors/interval.processor.d.ts +7 -0
- package/dist/client/system/processors/interval.processor.js +43 -0
- package/dist/client/system/processors/key.processor.d.ts +8 -0
- package/dist/client/system/processors/key.processor.js +27 -0
- package/dist/client/system/processors/localEvent.processor.d.ts +7 -0
- package/dist/client/system/processors/localEvent.processor.js +38 -0
- package/dist/client/system/processors/netEvent.processor.d.ts +7 -0
- package/dist/client/system/processors/netEvent.processor.js +38 -0
- package/dist/client/system/processors/nui.processor.d.ts +7 -0
- package/dist/client/system/processors/nui.processor.js +40 -0
- package/dist/client/system/processors/resourceLifecycle.processor.d.ts +9 -0
- package/dist/client/system/processors/resourceLifecycle.processor.js +69 -0
- package/dist/client/system/processors/tick.processor.d.ts +5 -0
- package/dist/client/system/processors/tick.processor.js +37 -0
- package/dist/client/system/processors.register.d.ts +1 -0
- package/dist/client/system/processors.register.js +27 -0
- package/dist/client/types/game-events.d.ts +126 -0
- package/dist/client/types/game-events.js +83 -0
- package/dist/client/types/index.d.ts +1 -0
- package/dist/client/types/index.js +17 -0
- package/dist/client/ui-bridge.d.ts +116 -0
- package/dist/client/ui-bridge.js +201 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +46 -0
- package/dist/server/bootstrap.d.ts +16 -0
- package/dist/server/bootstrap.js +57 -0
- package/dist/server/bus/core-event-bus.d.ts +6 -0
- package/dist/server/bus/core-event-bus.js +31 -0
- package/dist/server/configs/api.config.d.ts +71 -0
- package/dist/server/configs/api.config.js +81 -0
- package/dist/server/configs/config.base.d.ts +63 -0
- package/dist/server/configs/config.base.js +64 -0
- package/dist/server/configs/index.d.ts +2 -0
- package/dist/server/configs/index.js +18 -0
- package/dist/server/container.d.ts +2 -0
- package/dist/server/container.js +6 -0
- package/dist/server/controllers/chat.controller.d.ts +10 -0
- package/dist/server/controllers/chat.controller.js +50 -0
- package/dist/server/controllers/command.controller.d.ts +7 -0
- package/dist/server/controllers/command.controller.js +47 -0
- package/dist/server/core.d.ts +1 -0
- package/dist/server/core.js +7 -0
- package/dist/server/database/adapters/oxmysql.adapter.d.ts +89 -0
- package/dist/server/database/adapters/oxmysql.adapter.js +149 -0
- package/dist/server/database/database.contract.d.ts +128 -0
- package/dist/server/database/database.contract.js +29 -0
- package/dist/server/database/database.service.d.ts +216 -0
- package/dist/server/database/database.service.js +301 -0
- package/dist/server/database/index.d.ts +53 -0
- package/dist/server/database/index.js +70 -0
- package/dist/server/database/types.d.ts +67 -0
- package/dist/server/database/types.js +7 -0
- package/dist/server/database.d.ts +7 -0
- package/dist/server/database.js +23 -0
- package/dist/server/decorators/bind.d.ts +2 -0
- package/dist/server/decorators/bind.js +15 -0
- package/dist/server/decorators/command.d.ts +19 -0
- package/dist/server/decorators/command.js +18 -0
- package/dist/server/decorators/controller.d.ts +3 -0
- package/dist/server/decorators/controller.js +14 -0
- package/dist/server/decorators/coreEvent.d.ts +2 -0
- package/dist/server/decorators/coreEvent.js +9 -0
- package/dist/server/decorators/export.d.ts +1 -0
- package/dist/server/decorators/export.js +9 -0
- package/dist/server/decorators/guard.d.ts +5 -0
- package/dist/server/decorators/guard.js +39 -0
- package/dist/server/decorators/index.d.ts +10 -0
- package/dist/server/decorators/index.js +26 -0
- package/dist/server/decorators/netEvent.d.ts +36 -0
- package/dist/server/decorators/netEvent.js +40 -0
- package/dist/server/decorators/onTick.d.ts +1 -0
- package/dist/server/decorators/onTick.js +9 -0
- package/dist/server/decorators/public.d.ts +16 -0
- package/dist/server/decorators/public.js +25 -0
- package/dist/server/decorators/requiresState.d.ts +55 -0
- package/dist/server/decorators/requiresState.js +62 -0
- package/dist/server/decorators/throttle.d.ts +9 -0
- package/dist/server/decorators/throttle.js +36 -0
- package/dist/server/decorators/utils.d.ts +7 -0
- package/dist/server/decorators/utils.js +13 -0
- package/dist/server/entities/index.d.ts +1 -0
- package/dist/server/entities/index.js +17 -0
- package/dist/server/entities/player.d.ts +157 -0
- package/dist/server/entities/player.js +217 -0
- package/dist/server/error-handler.d.ts +2 -0
- package/dist/server/error-handler.js +43 -0
- package/dist/server/index.d.ts +10 -0
- package/dist/server/index.js +29 -0
- package/dist/server/loaders/exports.loader.d.ts +0 -0
- package/dist/server/loaders/exports.loader.js +23 -0
- package/dist/server/loaders/playerSession.loader.d.ts +1 -0
- package/dist/server/loaders/playerSession.loader.js +42 -0
- package/dist/server/services/access-control.service.d.ts +56 -0
- package/dist/server/services/access-control.service.js +99 -0
- package/dist/server/services/chat.service.d.ts +7 -0
- package/dist/server/services/chat.service.js +31 -0
- package/dist/server/services/command.service.d.ts +15 -0
- package/dist/server/services/command.service.js +74 -0
- package/dist/server/services/config.service.d.ts +75 -0
- package/dist/server/services/config.service.js +116 -0
- package/dist/server/services/default/default-security.handler.d.ts +6 -0
- package/dist/server/services/default/default-security.handler.js +26 -0
- package/dist/server/services/http/http.service.d.ts +50 -0
- package/dist/server/services/http/http.service.js +126 -0
- package/dist/server/services/index.d.ts +10 -0
- package/dist/server/services/index.js +26 -0
- package/dist/server/services/parallel/index.d.ts +49 -0
- package/dist/server/services/parallel/index.js +67 -0
- package/dist/server/services/parallel/parallel-compute.service.d.ts +132 -0
- package/dist/server/services/parallel/parallel-compute.service.js +449 -0
- package/dist/server/services/parallel/types.d.ts +188 -0
- package/dist/server/services/parallel/types.js +7 -0
- package/dist/server/services/parallel/worker-pool.d.ts +83 -0
- package/dist/server/services/parallel/worker-pool.js +350 -0
- package/dist/server/services/parallel/worker.d.ts +19 -0
- package/dist/server/services/parallel/worker.js +49 -0
- package/dist/server/services/persistence.service.d.ts +59 -0
- package/dist/server/services/persistence.service.js +166 -0
- package/dist/server/services/player.service.d.ts +96 -0
- package/dist/server/services/player.service.js +132 -0
- package/dist/server/services/rate-limiter.service.d.ts +5 -0
- package/dist/server/services/rate-limiter.service.js +39 -0
- package/dist/server/services/registers.d.ts +1 -0
- package/dist/server/services/registers.js +18 -0
- package/dist/server/setup.d.ts +9 -0
- package/dist/server/setup.js +28 -0
- package/dist/server/system/metadata-server.keys.d.ts +9 -0
- package/dist/server/system/metadata-server.keys.js +12 -0
- package/dist/server/system/processors/command.processor.d.ts +9 -0
- package/dist/server/system/processors/command.processor.js +31 -0
- package/dist/server/system/processors/coreEvent.processor.d.ts +7 -0
- package/dist/server/system/processors/coreEvent.processor.js +38 -0
- package/dist/server/system/processors/export.processor.d.ts +7 -0
- package/dist/server/system/processors/export.processor.js +26 -0
- package/dist/server/system/processors/netEvent.processor.d.ts +11 -0
- package/dist/server/system/processors/netEvent.processor.js +100 -0
- package/dist/server/system/processors/tick.processor.d.ts +5 -0
- package/dist/server/system/processors/tick.processor.js +36 -0
- package/dist/server/system/processors.register.d.ts +1 -0
- package/dist/server/system/processors.register.js +21 -0
- package/dist/server/templates/admin/admin.controller-template.d.ts +10 -0
- package/dist/server/templates/admin/admin.controller-template.js +2 -0
- package/dist/server/templates/auth/auth-provider.contract.d.ts +58 -0
- package/dist/server/templates/auth/auth-provider.contract.js +23 -0
- package/dist/server/templates/index.d.ts +8 -0
- package/dist/server/templates/index.js +21 -0
- package/dist/server/templates/persistence/index.d.ts +30 -0
- package/dist/server/templates/persistence/index.js +34 -0
- package/dist/server/templates/persistence/player-persistence.contract.d.ts +86 -0
- package/dist/server/templates/persistence/player-persistence.contract.js +52 -0
- package/dist/server/templates/repository/index.d.ts +57 -0
- package/dist/server/templates/repository/index.js +61 -0
- package/dist/server/templates/repository/repository.contract.d.ts +224 -0
- package/dist/server/templates/repository/repository.contract.js +342 -0
- package/dist/server/templates/repository/repository.types.d.ts +51 -0
- package/dist/server/templates/repository/repository.types.js +7 -0
- package/dist/server/templates/security/permission.types.d.ts +32 -0
- package/dist/server/templates/security/permission.types.js +2 -0
- package/dist/server/templates/security/principal-provider.contract.d.ts +43 -0
- package/dist/server/templates/security/principal-provider.contract.js +19 -0
- package/dist/server/templates/security/security-handler.contract.d.ts +5 -0
- package/dist/server/templates/security/security-handler.contract.js +6 -0
- package/dist/server/types/core-events.d.ts +17 -0
- package/dist/server/types/core-events.js +2 -0
- package/dist/server/types/security.types.d.ts +7 -0
- package/dist/server/types/security.types.js +2 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +17 -0
- package/dist/shared/logger/core-logger.d.ts +35 -0
- package/dist/shared/logger/core-logger.js +52 -0
- package/dist/shared/logger/index.d.ts +11 -0
- package/dist/shared/logger/index.js +26 -0
- package/dist/shared/logger/logger.config.d.ts +47 -0
- package/dist/shared/logger/logger.config.js +33 -0
- package/dist/shared/logger/logger.service.d.ts +161 -0
- package/dist/shared/logger/logger.service.js +279 -0
- package/dist/shared/logger/logger.types.d.ts +85 -0
- package/dist/shared/logger/logger.types.js +74 -0
- package/dist/shared/logger/transports/buffered.transport.d.ts +88 -0
- package/dist/shared/logger/transports/buffered.transport.js +174 -0
- package/dist/shared/logger/transports/console.transport.d.ts +37 -0
- package/dist/shared/logger/transports/console.transport.js +134 -0
- package/dist/shared/logger/transports/index.d.ts +3 -0
- package/dist/shared/logger/transports/index.js +19 -0
- package/dist/shared/logger/transports/transport.interface.d.ts +40 -0
- package/dist/shared/logger/transports/transport.interface.js +2 -0
- package/dist/system/class-constructor.d.ts +1 -0
- package/dist/system/class-constructor.js +2 -0
- package/dist/system/decorator-processor.d.ts +4 -0
- package/dist/system/decorator-processor.js +2 -0
- package/dist/system/metadata.scanner.d.ts +7 -0
- package/dist/system/metadata.scanner.js +45 -0
- package/dist/utils/errors.d.ts +14 -0
- package/dist/utils/errors.js +25 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.js +20 -0
- package/dist/utils/result.d.ts +12 -0
- package/dist/utils/result.js +10 -0
- package/dist/utils/rgb.d.ts +5 -0
- package/dist/utils/rgb.js +2 -0
- package/dist/utils/vector3.d.ts +13 -0
- package/dist/utils/vector3.js +27 -0
- package/package.json +70 -0
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.VehicleService = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
/**
|
|
12
|
+
* Service for vehicle operations and management.
|
|
13
|
+
*/
|
|
14
|
+
let VehicleService = class VehicleService {
|
|
15
|
+
/**
|
|
16
|
+
* Spawn a vehicle at a position.
|
|
17
|
+
*
|
|
18
|
+
* @param options - Spawn options
|
|
19
|
+
* @returns The vehicle handle
|
|
20
|
+
*/
|
|
21
|
+
async spawn(options) {
|
|
22
|
+
const { model, position, heading = 0, placeOnGround = true, warpIntoVehicle = false, seatIndex = -1, primaryColor, secondaryColor, plate, networked = true, } = options;
|
|
23
|
+
const modelHash = GetHashKey(model);
|
|
24
|
+
// Load the model
|
|
25
|
+
if (!IsModelInCdimage(modelHash) || !IsModelAVehicle(modelHash)) {
|
|
26
|
+
throw new Error(`Invalid vehicle model: ${model}`);
|
|
27
|
+
}
|
|
28
|
+
RequestModel(modelHash);
|
|
29
|
+
while (!HasModelLoaded(modelHash)) {
|
|
30
|
+
await new Promise((r) => setTimeout(r, 0));
|
|
31
|
+
}
|
|
32
|
+
// Create the vehicle
|
|
33
|
+
const vehicle = CreateVehicle(modelHash, position.x, position.y, position.z, heading, networked, false);
|
|
34
|
+
SetModelAsNoLongerNeeded(modelHash);
|
|
35
|
+
if (!vehicle || vehicle === 0) {
|
|
36
|
+
throw new Error('Failed to create vehicle');
|
|
37
|
+
}
|
|
38
|
+
// Place on ground
|
|
39
|
+
if (placeOnGround) {
|
|
40
|
+
SetVehicleOnGroundProperly(vehicle);
|
|
41
|
+
}
|
|
42
|
+
// Set colors
|
|
43
|
+
if (primaryColor !== undefined || secondaryColor !== undefined) {
|
|
44
|
+
const [currentPrimary, currentSecondary] = GetVehicleColours(vehicle);
|
|
45
|
+
SetVehicleColours(vehicle, primaryColor !== null && primaryColor !== void 0 ? primaryColor : currentPrimary, secondaryColor !== null && secondaryColor !== void 0 ? secondaryColor : currentSecondary);
|
|
46
|
+
}
|
|
47
|
+
// Set plate
|
|
48
|
+
if (plate) {
|
|
49
|
+
SetVehicleNumberPlateText(vehicle, plate);
|
|
50
|
+
}
|
|
51
|
+
// Warp player into vehicle
|
|
52
|
+
if (warpIntoVehicle) {
|
|
53
|
+
TaskWarpPedIntoVehicle(PlayerPedId(), vehicle, seatIndex);
|
|
54
|
+
}
|
|
55
|
+
return vehicle;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Delete a vehicle.
|
|
59
|
+
*
|
|
60
|
+
* @param vehicle - Vehicle handle
|
|
61
|
+
*/
|
|
62
|
+
delete(vehicle) {
|
|
63
|
+
if (DoesEntityExist(vehicle)) {
|
|
64
|
+
SetEntityAsMissionEntity(vehicle, true, true);
|
|
65
|
+
DeleteVehicle(vehicle);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Delete the vehicle the player is currently in.
|
|
70
|
+
*/
|
|
71
|
+
deleteCurrentVehicle() {
|
|
72
|
+
const vehicle = this.getCurrentVehicle();
|
|
73
|
+
if (vehicle) {
|
|
74
|
+
TaskLeaveVehicle(PlayerPedId(), vehicle, 16);
|
|
75
|
+
setTimeout(() => this.delete(vehicle), 1000);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Repair a vehicle completely.
|
|
80
|
+
*
|
|
81
|
+
* @param vehicle - Vehicle handle
|
|
82
|
+
*/
|
|
83
|
+
repair(vehicle) {
|
|
84
|
+
if (!DoesEntityExist(vehicle))
|
|
85
|
+
return;
|
|
86
|
+
SetVehicleFixed(vehicle);
|
|
87
|
+
SetVehicleDeformationFixed(vehicle);
|
|
88
|
+
SetVehicleUndriveable(vehicle, false);
|
|
89
|
+
SetVehicleEngineOn(vehicle, true, true, false);
|
|
90
|
+
SetVehicleEngineHealth(vehicle, 1000.0);
|
|
91
|
+
SetVehiclePetrolTankHealth(vehicle, 1000.0);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Set vehicle fuel level.
|
|
95
|
+
*
|
|
96
|
+
* @param vehicle - Vehicle handle
|
|
97
|
+
* @param level - Fuel level (0.0-1.0)
|
|
98
|
+
*/
|
|
99
|
+
setFuel(vehicle, level) {
|
|
100
|
+
if (!DoesEntityExist(vehicle))
|
|
101
|
+
return;
|
|
102
|
+
SetVehicleFuelLevel(vehicle, Math.max(0, Math.min(100, level * 100)));
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get vehicle fuel level.
|
|
106
|
+
*
|
|
107
|
+
* @param vehicle - Vehicle handle
|
|
108
|
+
* @returns Fuel level (0.0-1.0)
|
|
109
|
+
*/
|
|
110
|
+
getFuel(vehicle) {
|
|
111
|
+
if (!DoesEntityExist(vehicle))
|
|
112
|
+
return 0;
|
|
113
|
+
return GetVehicleFuelLevel(vehicle) / 100;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get the closest vehicle to the player.
|
|
117
|
+
*
|
|
118
|
+
* @param radius - Search radius
|
|
119
|
+
* @returns Vehicle handle or null
|
|
120
|
+
*/
|
|
121
|
+
getClosest(radius = 10.0) {
|
|
122
|
+
const playerPed = PlayerPedId();
|
|
123
|
+
const [px, py, pz] = GetEntityCoords(playerPed, true);
|
|
124
|
+
const vehicle = GetClosestVehicle(px, py, pz, radius, 0, 71);
|
|
125
|
+
return vehicle !== 0 ? vehicle : null;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Check if the player is in a vehicle.
|
|
129
|
+
*/
|
|
130
|
+
isPlayerInVehicle() {
|
|
131
|
+
return IsPedInAnyVehicle(PlayerPedId(), false);
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get the vehicle the player is currently in.
|
|
135
|
+
*
|
|
136
|
+
* @returns Vehicle handle or null
|
|
137
|
+
*/
|
|
138
|
+
getCurrentVehicle() {
|
|
139
|
+
const ped = PlayerPedId();
|
|
140
|
+
if (!IsPedInAnyVehicle(ped, false))
|
|
141
|
+
return null;
|
|
142
|
+
return GetVehiclePedIsIn(ped, false);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get the last vehicle the player was in.
|
|
146
|
+
*
|
|
147
|
+
* @returns Vehicle handle or null
|
|
148
|
+
*/
|
|
149
|
+
getLastVehicle() {
|
|
150
|
+
const vehicle = GetVehiclePedIsIn(PlayerPedId(), true);
|
|
151
|
+
return vehicle !== 0 ? vehicle : null;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Check if player is the driver of their current vehicle.
|
|
155
|
+
*/
|
|
156
|
+
isPlayerDriver() {
|
|
157
|
+
const vehicle = this.getCurrentVehicle();
|
|
158
|
+
if (!vehicle)
|
|
159
|
+
return false;
|
|
160
|
+
return GetPedInVehicleSeat(vehicle, -1) === PlayerPedId();
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Apply modifications to a vehicle.
|
|
164
|
+
*
|
|
165
|
+
* @param vehicle - Vehicle handle
|
|
166
|
+
* @param mods - Modifications to apply
|
|
167
|
+
*/
|
|
168
|
+
setMods(vehicle, mods) {
|
|
169
|
+
if (!DoesEntityExist(vehicle))
|
|
170
|
+
return;
|
|
171
|
+
SetVehicleModKit(vehicle, 0);
|
|
172
|
+
if (mods.spoiler !== undefined)
|
|
173
|
+
SetVehicleMod(vehicle, 0, mods.spoiler, false);
|
|
174
|
+
if (mods.frontBumper !== undefined)
|
|
175
|
+
SetVehicleMod(vehicle, 1, mods.frontBumper, false);
|
|
176
|
+
if (mods.rearBumper !== undefined)
|
|
177
|
+
SetVehicleMod(vehicle, 2, mods.rearBumper, false);
|
|
178
|
+
if (mods.sideSkirt !== undefined)
|
|
179
|
+
SetVehicleMod(vehicle, 3, mods.sideSkirt, false);
|
|
180
|
+
if (mods.exhaust !== undefined)
|
|
181
|
+
SetVehicleMod(vehicle, 4, mods.exhaust, false);
|
|
182
|
+
if (mods.frame !== undefined)
|
|
183
|
+
SetVehicleMod(vehicle, 5, mods.frame, false);
|
|
184
|
+
if (mods.grille !== undefined)
|
|
185
|
+
SetVehicleMod(vehicle, 6, mods.grille, false);
|
|
186
|
+
if (mods.hood !== undefined)
|
|
187
|
+
SetVehicleMod(vehicle, 7, mods.hood, false);
|
|
188
|
+
if (mods.fender !== undefined)
|
|
189
|
+
SetVehicleMod(vehicle, 8, mods.fender, false);
|
|
190
|
+
if (mods.rightFender !== undefined)
|
|
191
|
+
SetVehicleMod(vehicle, 9, mods.rightFender, false);
|
|
192
|
+
if (mods.roof !== undefined)
|
|
193
|
+
SetVehicleMod(vehicle, 10, mods.roof, false);
|
|
194
|
+
if (mods.engine !== undefined)
|
|
195
|
+
SetVehicleMod(vehicle, 11, mods.engine, false);
|
|
196
|
+
if (mods.brakes !== undefined)
|
|
197
|
+
SetVehicleMod(vehicle, 12, mods.brakes, false);
|
|
198
|
+
if (mods.transmission !== undefined)
|
|
199
|
+
SetVehicleMod(vehicle, 13, mods.transmission, false);
|
|
200
|
+
if (mods.horns !== undefined)
|
|
201
|
+
SetVehicleMod(vehicle, 14, mods.horns, false);
|
|
202
|
+
if (mods.suspension !== undefined)
|
|
203
|
+
SetVehicleMod(vehicle, 15, mods.suspension, false);
|
|
204
|
+
if (mods.armor !== undefined)
|
|
205
|
+
SetVehicleMod(vehicle, 16, mods.armor, false);
|
|
206
|
+
if (mods.turbo !== undefined)
|
|
207
|
+
ToggleVehicleMod(vehicle, 18, mods.turbo);
|
|
208
|
+
if (mods.xenon !== undefined)
|
|
209
|
+
ToggleVehicleMod(vehicle, 22, mods.xenon);
|
|
210
|
+
if (mods.wheelType !== undefined)
|
|
211
|
+
SetVehicleWheelType(vehicle, mods.wheelType);
|
|
212
|
+
if (mods.wheels !== undefined)
|
|
213
|
+
SetVehicleMod(vehicle, 23, mods.wheels, false);
|
|
214
|
+
if (mods.windowTint !== undefined)
|
|
215
|
+
SetVehicleWindowTint(vehicle, mods.windowTint);
|
|
216
|
+
if (mods.livery !== undefined)
|
|
217
|
+
SetVehicleLivery(vehicle, mods.livery);
|
|
218
|
+
if (mods.plateStyle !== undefined)
|
|
219
|
+
SetVehicleNumberPlateTextIndex(vehicle, mods.plateStyle);
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Set vehicle doors locked state.
|
|
223
|
+
*
|
|
224
|
+
* @param vehicle - Vehicle handle
|
|
225
|
+
* @param locked - Whether doors should be locked
|
|
226
|
+
*/
|
|
227
|
+
setDoorsLocked(vehicle, locked) {
|
|
228
|
+
if (!DoesEntityExist(vehicle))
|
|
229
|
+
return;
|
|
230
|
+
SetVehicleDoorsLocked(vehicle, locked ? 2 : 0);
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Set vehicle engine state.
|
|
234
|
+
*
|
|
235
|
+
* @param vehicle - Vehicle handle
|
|
236
|
+
* @param running - Whether engine should be running
|
|
237
|
+
* @param instant - Whether to start instantly
|
|
238
|
+
*/
|
|
239
|
+
setEngineRunning(vehicle, running, instant = false) {
|
|
240
|
+
if (!DoesEntityExist(vehicle))
|
|
241
|
+
return;
|
|
242
|
+
SetVehicleEngineOn(vehicle, running, instant, true);
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Set vehicle invincibility.
|
|
246
|
+
*
|
|
247
|
+
* @param vehicle - Vehicle handle
|
|
248
|
+
* @param invincible - Whether vehicle should be invincible
|
|
249
|
+
*/
|
|
250
|
+
setInvincible(vehicle, invincible) {
|
|
251
|
+
if (!DoesEntityExist(vehicle))
|
|
252
|
+
return;
|
|
253
|
+
SetEntityInvincible(vehicle, invincible);
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Get vehicle speed in km/h.
|
|
257
|
+
*
|
|
258
|
+
* @param vehicle - Vehicle handle
|
|
259
|
+
*/
|
|
260
|
+
getSpeed(vehicle) {
|
|
261
|
+
if (!DoesEntityExist(vehicle))
|
|
262
|
+
return 0;
|
|
263
|
+
return GetEntitySpeed(vehicle) * 3.6; // Convert m/s to km/h
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Set vehicle heading/rotation.
|
|
267
|
+
*
|
|
268
|
+
* @param vehicle - Vehicle handle
|
|
269
|
+
* @param heading - Heading in degrees
|
|
270
|
+
*/
|
|
271
|
+
setHeading(vehicle, heading) {
|
|
272
|
+
if (!DoesEntityExist(vehicle))
|
|
273
|
+
return;
|
|
274
|
+
SetEntityHeading(vehicle, heading);
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Teleport a vehicle to a position.
|
|
278
|
+
*
|
|
279
|
+
* @param vehicle - Vehicle handle
|
|
280
|
+
* @param position - Target position
|
|
281
|
+
* @param heading - Optional heading
|
|
282
|
+
*/
|
|
283
|
+
teleport(vehicle, position, heading) {
|
|
284
|
+
if (!DoesEntityExist(vehicle))
|
|
285
|
+
return;
|
|
286
|
+
SetEntityCoords(vehicle, position.x, position.y, position.z, false, false, false, true);
|
|
287
|
+
if (heading !== undefined) {
|
|
288
|
+
SetEntityHeading(vehicle, heading);
|
|
289
|
+
}
|
|
290
|
+
SetVehicleOnGroundProperly(vehicle);
|
|
291
|
+
}
|
|
292
|
+
};
|
|
293
|
+
exports.VehicleService = VehicleService;
|
|
294
|
+
exports.VehicleService = VehicleService = __decorate([
|
|
295
|
+
(0, tsyringe_1.injectable)()
|
|
296
|
+
], VehicleService);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const METADATA_KEYS: {
|
|
2
|
+
CONTROLLER: string;
|
|
3
|
+
KEY: string;
|
|
4
|
+
NUI: string;
|
|
5
|
+
NET_EVENT: string;
|
|
6
|
+
TICK: string;
|
|
7
|
+
LOCAL_EVENT: string;
|
|
8
|
+
INTERVAL: string;
|
|
9
|
+
EXPORT: string;
|
|
10
|
+
RESOURCE_START: string;
|
|
11
|
+
RESOURCE_STOP: string;
|
|
12
|
+
GAME_EVENT: string;
|
|
13
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.METADATA_KEYS = void 0;
|
|
4
|
+
exports.METADATA_KEYS = {
|
|
5
|
+
CONTROLLER: 'core:meta:controller',
|
|
6
|
+
KEY: 'core:meta:key',
|
|
7
|
+
NUI: 'core:meta:nui',
|
|
8
|
+
NET_EVENT: 'core:meta:onNet',
|
|
9
|
+
TICK: 'core:meta:tick',
|
|
10
|
+
LOCAL_EVENT: 'core:meta:localEvent',
|
|
11
|
+
INTERVAL: 'core:meta:interval',
|
|
12
|
+
EXPORT: 'core:meta:export',
|
|
13
|
+
RESOURCE_START: 'core:meta:resourceStart',
|
|
14
|
+
RESOURCE_STOP: 'core:meta:resourceStop',
|
|
15
|
+
GAME_EVENT: 'core:meta:gameEvent',
|
|
16
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DecoratorProcessor } from '../../../system/decorator-processor';
|
|
2
|
+
export declare class ClientExportProcessor implements DecoratorProcessor {
|
|
3
|
+
readonly metadataKey: string;
|
|
4
|
+
process(target: any, methodName: string, metadata: {
|
|
5
|
+
exportName: string;
|
|
6
|
+
}): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ClientExportProcessor = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const metadata_client_keys_1 = require("../metadata-client.keys");
|
|
12
|
+
const logger_1 = require("../../../shared/logger");
|
|
13
|
+
const clientExport = logger_1.coreLogger.child('Export', logger_1.LogDomain.CLIENT);
|
|
14
|
+
let ClientExportProcessor = class ClientExportProcessor {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.metadataKey = metadata_client_keys_1.METADATA_KEYS.EXPORT;
|
|
17
|
+
}
|
|
18
|
+
process(target, methodName, metadata) {
|
|
19
|
+
const handler = target[methodName].bind(target);
|
|
20
|
+
const handlerName = `${target.constructor.name}.${methodName}`;
|
|
21
|
+
exports(metadata.exportName, async (...args) => {
|
|
22
|
+
try {
|
|
23
|
+
return await handler(...args);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
clientExport.error(`Export handler error`, {
|
|
27
|
+
export: metadata.exportName,
|
|
28
|
+
handler: handlerName,
|
|
29
|
+
}, error);
|
|
30
|
+
throw error;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
clientExport.debug(`Registered export: ${metadata.exportName} -> ${handlerName}`);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
exports.ClientExportProcessor = ClientExportProcessor;
|
|
37
|
+
exports.ClientExportProcessor = ClientExportProcessor = __decorate([
|
|
38
|
+
(0, tsyringe_1.injectable)()
|
|
39
|
+
], ClientExportProcessor);
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { DecoratorProcessor } from '../../../system/decorator-processor';
|
|
2
|
+
interface GameEventMetadata {
|
|
3
|
+
eventName: string;
|
|
4
|
+
autoParse: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class GameEventProcessor implements DecoratorProcessor {
|
|
7
|
+
readonly metadataKey: string;
|
|
8
|
+
process(target: any, methodName: string, metadata: GameEventMetadata): void;
|
|
9
|
+
}
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.GameEventProcessor = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const metadata_client_keys_1 = require("../metadata-client.keys");
|
|
12
|
+
const logger_1 = require("../../../shared/logger");
|
|
13
|
+
const game_events_1 = require("../../types/game-events");
|
|
14
|
+
const clientGameEvent = logger_1.coreLogger.child('GameEvent', logger_1.LogDomain.CLIENT);
|
|
15
|
+
// Map of event names to their parser functions
|
|
16
|
+
const parserMap = {
|
|
17
|
+
CEventNetworkEntityDamage: game_events_1.GameEventParsers.parseEntityDamage,
|
|
18
|
+
CEventNetworkPlayerEnteredVehicle: game_events_1.GameEventParsers.parsePlayerEnteredVehicle,
|
|
19
|
+
CEventNetworkPlayerLeftVehicle: game_events_1.GameEventParsers.parsePlayerLeftVehicle,
|
|
20
|
+
CEventShockingSeenPedKilled: game_events_1.GameEventParsers.parseSeenPedKilled,
|
|
21
|
+
CEventNetworkVehicleUndrivable: game_events_1.GameEventParsers.parseVehicleUndrivable,
|
|
22
|
+
CEventGunShot: game_events_1.GameEventParsers.parseGunShot,
|
|
23
|
+
};
|
|
24
|
+
let GameEventProcessor = class GameEventProcessor {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.metadataKey = metadata_client_keys_1.METADATA_KEYS.GAME_EVENT;
|
|
27
|
+
}
|
|
28
|
+
process(target, methodName, metadata) {
|
|
29
|
+
const handler = target[methodName].bind(target);
|
|
30
|
+
const handlerName = `${target.constructor.name}.${methodName}`;
|
|
31
|
+
const { eventName, autoParse } = metadata;
|
|
32
|
+
on('gameEventTriggered', async (name, args) => {
|
|
33
|
+
if (name !== eventName)
|
|
34
|
+
return;
|
|
35
|
+
try {
|
|
36
|
+
// Auto-parse if enabled and parser exists
|
|
37
|
+
if (autoParse && parserMap[eventName]) {
|
|
38
|
+
const parsed = parserMap[eventName](args);
|
|
39
|
+
await handler(parsed);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
await handler(args);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
clientGameEvent.error(`Game event handler error`, {
|
|
47
|
+
event: eventName,
|
|
48
|
+
handler: handlerName,
|
|
49
|
+
}, error);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
clientGameEvent.debug(`Registered game event: ${eventName} -> ${handlerName}`);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
exports.GameEventProcessor = GameEventProcessor;
|
|
56
|
+
exports.GameEventProcessor = GameEventProcessor = __decorate([
|
|
57
|
+
(0, tsyringe_1.injectable)()
|
|
58
|
+
], GameEventProcessor);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DecoratorProcessor } from '../../../system/decorator-processor';
|
|
2
|
+
export declare class IntervalProcessor implements DecoratorProcessor {
|
|
3
|
+
readonly metadataKey: string;
|
|
4
|
+
process(target: any, methodName: string, metadata: {
|
|
5
|
+
interval: number;
|
|
6
|
+
}): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.IntervalProcessor = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const metadata_client_keys_1 = require("../metadata-client.keys");
|
|
12
|
+
const logger_1 = require("../../../shared/logger");
|
|
13
|
+
const clientInterval = logger_1.coreLogger.child('Interval', logger_1.LogDomain.CLIENT);
|
|
14
|
+
let IntervalProcessor = class IntervalProcessor {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.metadataKey = metadata_client_keys_1.METADATA_KEYS.INTERVAL;
|
|
17
|
+
}
|
|
18
|
+
process(target, methodName, metadata) {
|
|
19
|
+
const handler = target[methodName].bind(target);
|
|
20
|
+
const handlerName = `${target.constructor.name}.${methodName}`;
|
|
21
|
+
let lastRun = 0;
|
|
22
|
+
setTick(async () => {
|
|
23
|
+
const now = GetGameTimer();
|
|
24
|
+
if (now - lastRun < metadata.interval)
|
|
25
|
+
return;
|
|
26
|
+
lastRun = now;
|
|
27
|
+
try {
|
|
28
|
+
await handler();
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
clientInterval.error(`Interval handler error`, {
|
|
32
|
+
handler: handlerName,
|
|
33
|
+
interval: metadata.interval,
|
|
34
|
+
}, error);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
clientInterval.debug(`Registered: ${handlerName} (every ${metadata.interval}ms)`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
exports.IntervalProcessor = IntervalProcessor;
|
|
41
|
+
exports.IntervalProcessor = IntervalProcessor = __decorate([
|
|
42
|
+
(0, tsyringe_1.injectable)()
|
|
43
|
+
], IntervalProcessor);
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { DecoratorProcessor } from '../../../system/decorator-processor';
|
|
2
|
+
export declare class KeyMappingProcessor implements DecoratorProcessor {
|
|
3
|
+
readonly metadataKey: string;
|
|
4
|
+
process(target: any, methodName: string, metadata: {
|
|
5
|
+
key: string;
|
|
6
|
+
description: string;
|
|
7
|
+
}): void;
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.KeyMappingProcessor = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const metadata_client_keys_1 = require("../metadata-client.keys");
|
|
12
|
+
let KeyMappingProcessor = class KeyMappingProcessor {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.metadataKey = metadata_client_keys_1.METADATA_KEYS.KEY;
|
|
15
|
+
}
|
|
16
|
+
process(target, methodName, metadata) {
|
|
17
|
+
const handler = target[methodName].bind(target);
|
|
18
|
+
const commandName = `+${methodName}`;
|
|
19
|
+
RegisterCommand(commandName, handler, false);
|
|
20
|
+
RegisterKeyMapping(commandName, metadata.description, 'keyboard', metadata.key);
|
|
21
|
+
RegisterCommand(`-${methodName}`, () => { }, false);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.KeyMappingProcessor = KeyMappingProcessor;
|
|
25
|
+
exports.KeyMappingProcessor = KeyMappingProcessor = __decorate([
|
|
26
|
+
(0, tsyringe_1.injectable)()
|
|
27
|
+
], KeyMappingProcessor);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DecoratorProcessor } from '../../../system/decorator-processor';
|
|
2
|
+
export declare class LocalEventProcessor implements DecoratorProcessor {
|
|
3
|
+
readonly metadataKey: string;
|
|
4
|
+
process(target: any, methodName: string, metadata: {
|
|
5
|
+
eventName: string;
|
|
6
|
+
}): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.LocalEventProcessor = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const metadata_client_keys_1 = require("../metadata-client.keys");
|
|
12
|
+
const logger_1 = require("../../../shared/logger");
|
|
13
|
+
const clientLocalEvent = logger_1.coreLogger.child('LocalEvent', logger_1.LogDomain.CLIENT);
|
|
14
|
+
let LocalEventProcessor = class LocalEventProcessor {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.metadataKey = metadata_client_keys_1.METADATA_KEYS.LOCAL_EVENT;
|
|
17
|
+
}
|
|
18
|
+
process(target, methodName, metadata) {
|
|
19
|
+
const handler = target[methodName].bind(target);
|
|
20
|
+
const handlerName = `${target.constructor.name}.${methodName}`;
|
|
21
|
+
on(metadata.eventName, async (...args) => {
|
|
22
|
+
try {
|
|
23
|
+
await handler(...args);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
clientLocalEvent.error(`Handler error in local event`, {
|
|
27
|
+
event: metadata.eventName,
|
|
28
|
+
handler: handlerName,
|
|
29
|
+
}, error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
clientLocalEvent.debug(`Registered: ${metadata.eventName} -> ${handlerName}`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.LocalEventProcessor = LocalEventProcessor;
|
|
36
|
+
exports.LocalEventProcessor = LocalEventProcessor = __decorate([
|
|
37
|
+
(0, tsyringe_1.injectable)()
|
|
38
|
+
], LocalEventProcessor);
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DecoratorProcessor } from '../../../system/decorator-processor';
|
|
2
|
+
export declare class ClientNetEventProcessor implements DecoratorProcessor {
|
|
3
|
+
readonly metadataKey: string;
|
|
4
|
+
process(target: any, methodName: string, metadata: {
|
|
5
|
+
eventName: string;
|
|
6
|
+
}): void;
|
|
7
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.ClientNetEventProcessor = void 0;
|
|
10
|
+
const tsyringe_1 = require("tsyringe");
|
|
11
|
+
const metadata_client_keys_1 = require("../metadata-client.keys");
|
|
12
|
+
const logger_1 = require("../../../shared/logger");
|
|
13
|
+
const clientNetEvent = logger_1.coreLogger.child('NetEvent', logger_1.LogDomain.CLIENT);
|
|
14
|
+
let ClientNetEventProcessor = class ClientNetEventProcessor {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.metadataKey = metadata_client_keys_1.METADATA_KEYS.NET_EVENT;
|
|
17
|
+
}
|
|
18
|
+
process(target, methodName, metadata) {
|
|
19
|
+
const handler = target[methodName].bind(target);
|
|
20
|
+
const handlerName = `${target.constructor.name}.${methodName}`;
|
|
21
|
+
onNet(metadata.eventName, async (...args) => {
|
|
22
|
+
try {
|
|
23
|
+
await handler(...args);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
clientNetEvent.error(`Handler error in event`, {
|
|
27
|
+
event: metadata.eventName,
|
|
28
|
+
handler: handlerName,
|
|
29
|
+
}, error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
clientNetEvent.debug(`Registered: ${metadata.eventName} -> ${handlerName}`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.ClientNetEventProcessor = ClientNetEventProcessor;
|
|
36
|
+
exports.ClientNetEventProcessor = ClientNetEventProcessor = __decorate([
|
|
37
|
+
(0, tsyringe_1.injectable)()
|
|
38
|
+
], ClientNetEventProcessor);
|