@open-core/framework 1.0.5-beta.1 → 1.0.5
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/adapters/contracts/IEngineEvents.d.ts +5 -2
- package/dist/adapters/contracts/IEngineEvents.js +7 -0
- package/dist/adapters/contracts/IExports.d.ts +2 -2
- package/dist/adapters/contracts/IPlatformContext.d.ts +43 -0
- package/dist/adapters/contracts/IPlatformContext.js +8 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.d.ts +25 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +8 -0
- package/dist/adapters/contracts/client/IClientLogConsole.d.ts +13 -0
- package/dist/adapters/contracts/client/IClientLogConsole.js +2 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.d.ts +195 -0
- package/dist/adapters/contracts/client/IClientPlatformBridge.js +282 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.d.ts +18 -0
- package/dist/adapters/contracts/client/IClientRuntimeBridge.js +14 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.d.ts +26 -0
- package/dist/adapters/contracts/client/IGtaPedAppearanceBridge.js +2 -0
- package/dist/adapters/contracts/client/camera/IClientCameraPort.d.ts +107 -0
- package/dist/adapters/contracts/client/camera/IClientCameraPort.js +8 -0
- package/dist/adapters/contracts/client/camera/index.d.ts +1 -0
- package/dist/adapters/contracts/client/camera/index.js +1 -0
- package/dist/adapters/contracts/client/index.d.ts +11 -0
- package/dist/adapters/contracts/client/index.js +11 -0
- package/dist/adapters/contracts/client/ped/IClientPedPort.d.ts +62 -0
- package/dist/adapters/contracts/client/ped/IClientPedPort.js +5 -0
- package/dist/adapters/contracts/client/ped/index.d.ts +1 -0
- package/dist/adapters/contracts/client/ped/index.js +1 -0
- package/dist/adapters/contracts/client/progress/IClientProgressPort.d.ts +53 -0
- package/dist/adapters/contracts/client/progress/IClientProgressPort.js +8 -0
- package/dist/adapters/contracts/client/progress/index.d.ts +1 -0
- package/dist/adapters/contracts/client/progress/index.js +1 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +6 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +6 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnPort.d.ts +19 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnPort.js +2 -0
- package/dist/adapters/contracts/client/spawn/index.d.ts +4 -0
- package/dist/adapters/contracts/client/spawn/index.js +4 -0
- package/dist/adapters/contracts/client/spawn/types.d.ts +17 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.d.ts +25 -0
- package/dist/adapters/contracts/client/ui/IClientBlipBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.d.ts +31 -0
- package/dist/adapters/contracts/client/ui/IClientMarkerBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.d.ts +21 -0
- package/dist/adapters/contracts/client/ui/IClientNotificationBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/index.d.ts +4 -0
- package/dist/adapters/contracts/client/ui/index.js +4 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.d.ts +14 -0
- package/dist/adapters/contracts/client/ui/webview/IClientWebViewBridge.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.d.ts +2 -0
- package/dist/adapters/contracts/client/ui/webview/index.js +2 -0
- package/dist/adapters/contracts/client/ui/webview/types.d.ts +27 -0
- package/dist/adapters/contracts/client/ui/webview/types.js +0 -0
- package/dist/adapters/contracts/client/vehicle/IClientVehiclePort.d.ts +166 -0
- package/dist/adapters/contracts/client/vehicle/IClientVehiclePort.js +8 -0
- package/dist/adapters/contracts/client/vehicle/index.d.ts +1 -0
- package/dist/adapters/contracts/client/vehicle/index.js +1 -0
- package/dist/adapters/contracts/index.d.ts +4 -2
- package/dist/adapters/contracts/index.js +4 -3
- package/dist/adapters/contracts/runtime/index.d.ts +1 -0
- package/dist/adapters/contracts/runtime/index.js +1 -0
- package/dist/adapters/contracts/runtime/runtime-events.d.ts +9 -0
- package/dist/adapters/contracts/runtime/runtime-events.js +7 -0
- package/dist/adapters/contracts/server/IEntityServer.d.ts +4 -28
- package/dist/adapters/contracts/server/IEntityServer.js +0 -26
- package/dist/adapters/contracts/server/IPlayerServer.d.ts +7 -26
- package/dist/adapters/contracts/server/IPlayerServer.js +0 -26
- package/dist/adapters/contracts/server/index.d.ts +10 -0
- package/dist/adapters/contracts/server/index.js +10 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/npc-lifecycle/INpcLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/npc-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.d.ts +11 -0
- package/dist/adapters/contracts/server/player-appearance/IPlayerAppearanceLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-appearance/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-appearance/index.js +1 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.d.ts +17 -0
- package/dist/adapters/contracts/server/player-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.d.ts +6 -0
- package/dist/adapters/contracts/server/player-state/IPlayerStateSyncServer.js +2 -0
- package/dist/adapters/contracts/server/player-state/index.d.ts +1 -0
- package/dist/adapters/contracts/server/player-state/index.js +1 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.d.ts +5 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.d.ts +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/index.js +2 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.d.ts +16 -0
- package/dist/adapters/contracts/server/vehicle-lifecycle/types.js +0 -0
- package/dist/adapters/contracts/transport/events.api.d.ts +3 -3
- package/dist/adapters/contracts/transport/index.d.ts +4 -0
- package/dist/adapters/contracts/transport/index.js +4 -0
- package/dist/adapters/contracts/transport/rpc.api.d.ts +3 -3
- package/dist/adapters/index.d.ts +3 -14
- package/dist/adapters/index.js +3 -20
- package/dist/adapters/node/node-capabilities.d.ts +11 -11
- package/dist/adapters/node/node-capabilities.js +15 -27
- package/dist/adapters/node/node-engine-events.d.ts +1 -1
- package/dist/adapters/node/node-engine-events.js +2 -1
- package/dist/adapters/node/node-entity-server.d.ts +2 -2
- package/dist/adapters/node/node-entity-server.js +2 -2
- package/dist/adapters/node/node-ped-appearance-client.d.ts +2 -2
- package/dist/adapters/node/node-ped-appearance-client.js +2 -2
- package/dist/adapters/node/node-platform.js +4 -4
- package/dist/adapters/node/node-player-server.d.ts +3 -2
- package/dist/adapters/node/node-player-server.js +8 -2
- package/dist/adapters/node/transport/node.events.d.ts +4 -4
- package/dist/adapters/node/transport/node.rpc.d.ts +3 -3
- package/dist/adapters/node/transport/node.rpc.js +1 -1
- package/dist/adapters/register-capabilities.d.ts +1 -1
- package/dist/adapters/register-capabilities.js +1 -3
- package/dist/adapters/register-client-capabilities.d.ts +3 -2
- package/dist/adapters/register-client-capabilities.js +16 -41
- package/dist/contracts/client.d.ts +5 -0
- package/dist/contracts/client.js +5 -0
- package/dist/contracts/server.d.ts +19 -0
- package/dist/contracts/server.js +19 -0
- package/dist/contracts.d.ts +5 -0
- package/dist/contracts.js +5 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/kernel/logger/client-log-console.d.ts +4 -0
- package/dist/kernel/logger/client-log-console.js +43 -0
- package/dist/kernel/logger/core-logger.d.ts +3 -1
- package/dist/kernel/logger/core-logger.js +4 -2
- package/dist/kernel/logger/index.d.ts +3 -1
- package/dist/kernel/logger/index.js +2 -1
- package/dist/kernel/logger/logger.types.d.ts +1 -0
- package/dist/kernel/logger/logger.types.js +35 -0
- package/dist/kernel/logger/transports/buffered.transport.js +4 -4
- package/dist/kernel/logger/transports/console.transport.js +2 -2
- package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
- package/dist/kernel/logger/transports/simple-console.transport.js +15 -10
- package/dist/kernel-public.d.ts +1 -0
- package/dist/kernel-public.js +1 -0
- package/dist/runtime/client/adapter/client-adapter.d.ts +25 -0
- package/dist/runtime/client/adapter/client-adapter.js +11 -0
- package/dist/runtime/client/adapter/index.d.ts +20 -0
- package/dist/runtime/client/adapter/index.js +20 -0
- package/dist/runtime/client/adapter/local-player-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/local-player-bridge.js +1 -0
- package/dist/runtime/client/adapter/node-blip-bridge.d.ts +9 -0
- package/dist/runtime/client/adapter/node-blip-bridge.js +34 -0
- package/dist/runtime/client/adapter/node-camera-port.d.ts +19 -0
- package/dist/runtime/client/adapter/node-camera-port.js +31 -0
- package/dist/runtime/client/adapter/node-client-adapter.d.ts +5 -0
- package/dist/runtime/client/adapter/node-client-adapter.js +64 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +11 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.js +27 -0
- package/dist/runtime/client/adapter/node-log-console.d.ts +11 -0
- package/dist/runtime/client/adapter/node-log-console.js +48 -0
- package/dist/runtime/client/adapter/node-marker-bridge.d.ts +10 -0
- package/dist/runtime/client/adapter/node-marker-bridge.js +35 -0
- package/dist/runtime/client/adapter/node-notification-bridge.d.ts +5 -0
- package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-notification-bridge.js} +7 -11
- package/dist/runtime/client/adapter/node-ped-port.d.ts +20 -0
- package/dist/runtime/client/adapter/node-ped-port.js +38 -0
- package/dist/runtime/client/adapter/node-platform-bridge.d.ts +3 -0
- package/dist/{adapters/fivem/fivem-tick.js → runtime/client/adapter/node-platform-bridge.js} +5 -10
- package/dist/runtime/client/adapter/node-progress-port.d.ts +8 -0
- package/dist/runtime/client/adapter/node-progress-port.js +27 -0
- package/dist/runtime/client/adapter/node-runtime-bridge.d.ts +22 -0
- package/dist/runtime/client/adapter/node-runtime-bridge.js +58 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.d.ts +8 -0
- package/dist/runtime/client/adapter/node-spawn-bridge.js +22 -0
- package/dist/runtime/client/adapter/node-vehicle-port.d.ts +31 -0
- package/dist/runtime/client/adapter/node-vehicle-port.js +73 -0
- package/dist/runtime/client/adapter/node-webview-bridge.d.ts +16 -0
- package/dist/runtime/client/adapter/node-webview-bridge.js +45 -0
- package/dist/runtime/client/adapter/platform-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/platform-bridge.js +1 -0
- package/dist/runtime/client/adapter/registry.d.ts +9 -0
- package/dist/runtime/client/adapter/registry.js +85 -0
- package/dist/runtime/client/adapter/runtime-bridge.d.ts +1 -0
- package/dist/runtime/client/adapter/runtime-bridge.js +1 -0
- package/dist/runtime/client/api.d.ts +2 -1
- package/dist/runtime/client/api.js +2 -1
- package/dist/runtime/client/client-bootstrap.js +51 -44
- package/dist/runtime/client/client-core.d.ts +2 -0
- package/dist/runtime/client/client-core.js +9 -0
- package/dist/runtime/client/client-runtime.d.ts +3 -0
- package/dist/runtime/client/client-runtime.js +3 -0
- package/dist/runtime/client/controllers/appearance.controller.d.ts +3 -1
- package/dist/runtime/client/controllers/appearance.controller.js +17 -6
- package/dist/runtime/client/controllers/spawner.controller.js +6 -3
- package/dist/runtime/client/decorators/controller.js +2 -10
- package/dist/runtime/client/decorators/onView.d.ts +3 -3
- package/dist/runtime/client/decorators/onView.js +3 -3
- package/dist/runtime/client/index.d.ts +1 -0
- package/dist/runtime/client/index.js +1 -0
- package/dist/runtime/client/library/create-client-library.js +9 -1
- package/dist/runtime/client/services/appearance.service.d.ts +2 -2
- package/dist/runtime/client/services/appearance.service.js +7 -4
- package/dist/runtime/client/services/blip.service.d.ts +6 -93
- package/dist/runtime/client/services/blip.service.js +58 -153
- package/dist/runtime/client/services/camera-effects.registry.d.ts +3 -0
- package/dist/runtime/client/services/camera-effects.registry.js +20 -7
- package/dist/runtime/client/services/camera.d.ts +4 -106
- package/dist/runtime/client/services/camera.js +36 -98
- package/dist/runtime/client/services/cinematic.d.ts +5 -1
- package/dist/runtime/client/services/cinematic.js +45 -30
- package/dist/runtime/client/services/index.d.ts +1 -0
- package/dist/runtime/client/services/index.js +1 -0
- package/dist/runtime/client/services/marker.service.d.ts +12 -63
- package/dist/runtime/client/services/marker.service.js +62 -97
- package/dist/runtime/client/services/notification.service.d.ts +6 -57
- package/dist/runtime/client/services/notification.service.js +43 -81
- package/dist/runtime/client/services/ped.service.d.ts +6 -148
- package/dist/runtime/client/services/ped.service.js +42 -221
- package/dist/runtime/client/services/progress.service.d.ts +4 -75
- package/dist/runtime/client/services/progress.service.js +20 -178
- package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
- package/dist/runtime/client/services/session-bridge.service.js +62 -0
- package/dist/runtime/client/services/spawn.service.d.ts +4 -56
- package/dist/runtime/client/services/spawn.service.js +29 -191
- package/dist/runtime/client/services/streaming.service.d.ts +5 -126
- package/dist/runtime/client/services/streaming.service.js +72 -217
- package/dist/runtime/client/services/textui.service.d.ts +5 -45
- package/dist/runtime/client/services/textui.service.js +55 -88
- package/dist/runtime/client/services/vehicle-client.service.d.ts +12 -149
- package/dist/runtime/client/services/vehicle-client.service.js +128 -374
- package/dist/runtime/client/services/vehicle.service.d.ts +4 -147
- package/dist/runtime/client/services/vehicle.service.js +33 -239
- package/dist/runtime/client/system/processors/export.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/export.processor.js +16 -3
- package/dist/runtime/client/system/processors/gameEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/gameEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/interval.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/interval.processor.js +17 -4
- package/dist/runtime/client/system/processors/key.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/key.processor.js +18 -5
- package/dist/runtime/client/system/processors/localEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/localEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/netEvent.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/netEvent.processor.js +16 -3
- package/dist/runtime/client/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.d.ts +5 -0
- package/dist/runtime/client/system/processors/resourceLifecycle.processor.js +26 -7
- package/dist/runtime/client/system/processors/tick.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/tick.processor.js +16 -3
- package/dist/runtime/client/system/processors/view.processor.d.ts +3 -0
- package/dist/runtime/client/system/processors/view.processor.js +21 -10
- package/dist/runtime/client/system/processors.register.d.ts +1 -0
- package/dist/runtime/client/system/processors.register.js +8 -0
- package/dist/runtime/client/ui-bridge.d.ts +2 -114
- package/dist/runtime/client/ui-bridge.js +2 -194
- package/dist/runtime/client/webview-bridge.d.ts +34 -0
- package/dist/runtime/client/webview-bridge.js +103 -0
- package/dist/runtime/client/webview.service.d.ts +15 -0
- package/dist/runtime/client/webview.service.js +103 -0
- package/dist/runtime/server/adapter/index.d.ts +5 -0
- package/dist/runtime/server/adapter/index.js +5 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-npc-lifecycle-server.js +52 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.d.ts +22 -0
- package/dist/runtime/server/adapter/node-player-appearance-lifecycle-server.js +95 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.js +56 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.d.ts +12 -0
- package/dist/runtime/server/adapter/node-player-state-sync-server.js +49 -0
- package/dist/runtime/server/adapter/node-server-adapter.d.ts +5 -0
- package/dist/runtime/server/adapter/node-server-adapter.js +67 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.d.ts +13 -0
- package/dist/runtime/server/adapter/node-vehicle-lifecycle-server.js +58 -0
- package/dist/runtime/server/adapter/player-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/player-adapter.js +28 -0
- package/dist/runtime/server/adapter/registry.d.ts +26 -0
- package/dist/runtime/server/adapter/registry.js +101 -0
- package/dist/runtime/server/adapter/serialization.d.ts +6 -0
- package/dist/runtime/server/adapter/serialization.js +9 -0
- package/dist/runtime/server/adapter/server-adapter.d.ts +28 -0
- package/dist/runtime/server/adapter/server-adapter.js +14 -0
- package/dist/runtime/server/api.d.ts +2 -1
- package/dist/runtime/server/api.js +2 -1
- package/dist/runtime/server/apis/appearance.api.d.ts +5 -3
- package/dist/runtime/server/apis/appearance.api.js +20 -7
- package/dist/runtime/server/apis/chat.api.js +6 -5
- package/dist/runtime/server/apis/npcs.api.d.ts +3 -4
- package/dist/runtime/server/apis/npcs.api.js +28 -57
- package/dist/runtime/server/apis/parallel-compute.api.js +1 -0
- package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
- package/dist/runtime/server/apis/vehicle-modification.api.js +13 -6
- package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
- package/dist/runtime/server/apis/vehicles.api.js +55 -40
- package/dist/runtime/server/bootstrap.js +28 -19
- package/dist/runtime/server/controllers/channel.controller.js +2 -1
- package/dist/runtime/server/controllers/command-export.controller.js +5 -3
- package/dist/runtime/server/controllers/player-export.controller.js +5 -4
- package/dist/runtime/server/controllers/remote-command-execution.controller.js +2 -1
- package/dist/runtime/server/controllers/session.controller.js +3 -2
- package/dist/runtime/server/controllers/vehicle.controller.d.ts +3 -1
- package/dist/runtime/server/controllers/vehicle.controller.js +13 -7
- package/dist/runtime/server/core.d.ts +2 -0
- package/dist/runtime/server/core.js +9 -1
- package/dist/runtime/server/decorators/command.d.ts +2 -0
- package/dist/runtime/server/decorators/command.js +3 -1
- package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
- package/dist/runtime/server/entities/npc.d.ts +3 -1
- package/dist/runtime/server/entities/npc.js +3 -3
- package/dist/runtime/server/entities/player.d.ts +9 -12
- package/dist/runtime/server/entities/player.js +49 -31
- package/dist/runtime/server/entities/vehicle.js +2 -2
- package/dist/runtime/server/error-handler.js +13 -2
- package/dist/runtime/server/helpers/command-validation.helper.js +21 -8
- package/dist/runtime/server/helpers/function-helper.d.ts +1 -0
- package/dist/runtime/server/helpers/function-helper.js +15 -8
- package/dist/runtime/server/implementations/local/channel.local.d.ts +1 -1
- package/dist/runtime/server/implementations/local/channel.local.js +3 -2
- package/dist/runtime/server/implementations/local/player.local.d.ts +7 -3
- package/dist/runtime/server/implementations/local/player.local.js +23 -11
- package/dist/runtime/server/implementations/remote/channel.remote.d.ts +2 -1
- package/dist/runtime/server/implementations/remote/channel.remote.js +5 -2
- package/dist/runtime/server/implementations/remote/command.remote.d.ts +3 -1
- package/dist/runtime/server/implementations/remote/command.remote.js +9 -4
- package/dist/runtime/server/implementations/remote/player.remote.d.ts +7 -10
- package/dist/runtime/server/implementations/remote/player.remote.js +24 -29
- package/dist/runtime/server/library/create-server-library.js +17 -2
- package/dist/runtime/server/ports/channel.api-port.d.ts +1 -1
- package/dist/runtime/server/runtime.d.ts +3 -0
- package/dist/runtime/server/runtime.js +1 -15
- package/dist/runtime/server/services/appearance.service.d.ts +0 -95
- package/dist/runtime/server/services/appearance.service.js +15 -192
- package/dist/runtime/server/services/parallel/worker-pool.d.ts +1 -1
- package/dist/runtime/server/services/parallel/worker-pool.js +38 -6
- package/dist/runtime/server/services/parallel/worker.js +1 -0
- package/dist/runtime/server/services/services.register.js +56 -24
- package/dist/runtime/server/system/processors/netEvent.processor.js +1 -1
- package/dist/runtime/server/system/processors/onRpc.processor.js +1 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.d.ts +2 -1
- package/dist/runtime/server/system/processors/runtimeEvent.processor.js +1 -1
- package/dist/runtime/server/system/schema-generator.d.ts +1 -1
- package/dist/runtime/server/system/schema-generator.js +6 -3
- package/dist/runtime/server/types/core-exports.types.d.ts +5 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.d.ts +2 -0
- package/dist/runtime/shared/helpers/process-tuple-schema.js +32 -0
- package/dist/runtime/shared/types/system-types.d.ts +55 -0
- package/dist/runtime/shared/types/system-types.js +54 -0
- package/package.json +41 -13
- package/dist/adapters/cfx/cfx-capabilities.d.ts +0 -16
- package/dist/adapters/cfx/cfx-capabilities.js +0 -70
- package/dist/adapters/cfx/cfx-platform.d.ts +0 -2
- package/dist/adapters/cfx/cfx-platform.js +0 -85
- package/dist/adapters/cfx/index.d.ts +0 -3
- package/dist/adapters/cfx/index.js +0 -3
- package/dist/adapters/cfx/runtime-profile.d.ts +0 -3
- package/dist/adapters/cfx/runtime-profile.js +0 -37
- package/dist/adapters/contracts/IPlatformCapabilities.d.ts +0 -79
- package/dist/adapters/contracts/IPlatformCapabilities.js +0 -27
- package/dist/adapters/contracts/client/IPedAppearanceClient.d.ts +0 -206
- package/dist/adapters/contracts/client/IPedAppearanceClient.js +0 -12
- package/dist/adapters/fivem/fivem-capabilities.d.ts +0 -18
- package/dist/adapters/fivem/fivem-capabilities.js +0 -61
- package/dist/adapters/fivem/fivem-engine-events.d.ts +0 -5
- package/dist/adapters/fivem/fivem-engine-events.js +0 -24
- package/dist/adapters/fivem/fivem-entity-server.d.ts +0 -26
- package/dist/adapters/fivem/fivem-entity-server.js +0 -87
- package/dist/adapters/fivem/fivem-exports.d.ts +0 -5
- package/dist/adapters/fivem/fivem-exports.js +0 -9
- package/dist/adapters/fivem/fivem-hasher.d.ts +0 -7
- package/dist/adapters/fivem/fivem-net-transport.d.ts +0 -1
- package/dist/adapters/fivem/fivem-ped-appearance-client.d.ts +0 -34
- package/dist/adapters/fivem/fivem-ped-appearance-client.js +0 -79
- package/dist/adapters/fivem/fivem-ped-appearance-server.d.ts +0 -14
- package/dist/adapters/fivem/fivem-ped-appearance-server.js +0 -22
- package/dist/adapters/fivem/fivem-ped-server.d.ts +0 -9
- package/dist/adapters/fivem/fivem-ped-server.js +0 -30
- package/dist/adapters/fivem/fivem-platform.d.ts +0 -5
- package/dist/adapters/fivem/fivem-platform.js +0 -74
- package/dist/adapters/fivem/fivem-player-server.d.ts +0 -24
- package/dist/adapters/fivem/fivem-player-server.js +0 -83
- package/dist/adapters/fivem/fivem-playerinfo.d.ts +0 -6
- package/dist/adapters/fivem/fivem-playerinfo.js +0 -10
- package/dist/adapters/fivem/fivem-resourceinfo.d.ts +0 -5
- package/dist/adapters/fivem/fivem-resourceinfo.js +0 -24
- package/dist/adapters/fivem/fivem-tick.d.ts +0 -7
- package/dist/adapters/fivem/fivem-vehicle-server.d.ts +0 -15
- package/dist/adapters/fivem/fivem-vehicle-server.js +0 -44
- package/dist/adapters/fivem/index.d.ts +0 -14
- package/dist/adapters/fivem/index.js +0 -16
- package/dist/adapters/fivem/transport/adapter.d.ts +0 -8
- package/dist/adapters/fivem/transport/adapter.js +0 -8
- package/dist/adapters/fivem/transport/fivem.events.d.ts +0 -8
- package/dist/adapters/fivem/transport/fivem.events.js +0 -36
- package/dist/adapters/fivem/transport/fivem.rpc.d.ts +0 -28
- package/dist/adapters/fivem/transport/fivem.rpc.js +0 -183
- package/dist/runtime/client/controllers/player-sync.controller.d.ts +0 -11
- package/dist/runtime/client/controllers/player-sync.controller.js +0 -51
- package/dist/runtime/client/player/player.d.ts +0 -262
- package/dist/runtime/client/player/player.js +0 -474
- package/dist/runtime/client/player/player.loader.d.ts +0 -1
- package/dist/runtime/client/player/player.loader.js +0 -18
- package/dist/runtime/server/helpers/process-tuple-schema.d.ts +0 -20
- package/dist/runtime/server/helpers/process-tuple-schema.js +0 -56
- /package/dist/adapters/{fivem/fivem-net-transport.js → contracts/client/spawn/types.js} +0 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { loggers } from '../../../kernel/logger';
|
|
1
2
|
import { BaseEntity } from '../../core/entity';
|
|
3
|
+
import { SYSTEM_EVENTS } from '../../shared/types/system-types';
|
|
2
4
|
/**
|
|
3
5
|
* Core-level representation of a connected player on the server.
|
|
4
6
|
*
|
|
@@ -14,6 +16,7 @@ export class Player extends BaseEntity {
|
|
|
14
16
|
session;
|
|
15
17
|
adapters;
|
|
16
18
|
_position;
|
|
19
|
+
_model;
|
|
17
20
|
/**
|
|
18
21
|
* Creates a new Player entity instance.
|
|
19
22
|
* This is typically instantiated by the `PlayerService` upon connection.
|
|
@@ -28,10 +31,16 @@ export class Player extends BaseEntity {
|
|
|
28
31
|
this._position = adapters.playerInfo.getPlayerPosition(session.clientID);
|
|
29
32
|
}
|
|
30
33
|
getHeading() {
|
|
31
|
-
|
|
34
|
+
const ped = this.adapters.playerServer.getPed(this.clientID.toString());
|
|
35
|
+
if (!ped || ped === 0)
|
|
36
|
+
return 0;
|
|
37
|
+
return this.adapters.entityServer.getHeading(ped);
|
|
32
38
|
}
|
|
33
39
|
setHeading(heading) {
|
|
34
|
-
this.adapters.
|
|
40
|
+
const ped = this.adapters.playerServer.getPed(this.clientID.toString());
|
|
41
|
+
if (!ped || ped === 0)
|
|
42
|
+
return;
|
|
43
|
+
this.adapters.entityServer.setHeading(ped, heading);
|
|
35
44
|
}
|
|
36
45
|
getHandle() {
|
|
37
46
|
return this.clientID;
|
|
@@ -118,7 +127,7 @@ export class Player extends BaseEntity {
|
|
|
118
127
|
* @param type - Message type for styling
|
|
119
128
|
*/
|
|
120
129
|
send(message, type = 'chat') {
|
|
121
|
-
this.emit(
|
|
130
|
+
this.emit(SYSTEM_EVENTS.chat.send, message, type);
|
|
122
131
|
}
|
|
123
132
|
// ─────────────────────────────────────────────────────────────────
|
|
124
133
|
// Spawning / Teleporting
|
|
@@ -133,7 +142,13 @@ export class Player extends BaseEntity {
|
|
|
133
142
|
* @param vector - The target coordinates (x, y, z).
|
|
134
143
|
*/
|
|
135
144
|
teleport(vector) {
|
|
136
|
-
|
|
145
|
+
const request = { position: vector };
|
|
146
|
+
void Promise.resolve(this.adapters.playerLifecycle.teleport(this.clientID.toString(), request)).catch((error) => {
|
|
147
|
+
loggers.spawn.error('Failed to teleport player', {
|
|
148
|
+
clientID: this.clientID,
|
|
149
|
+
error: error instanceof Error ? error.message : String(error),
|
|
150
|
+
});
|
|
151
|
+
});
|
|
137
152
|
}
|
|
138
153
|
/**
|
|
139
154
|
* Spawns the player at a position with a specific model.
|
|
@@ -142,7 +157,22 @@ export class Player extends BaseEntity {
|
|
|
142
157
|
* @param model - The ped model to use (default from platform capabilities)
|
|
143
158
|
*/
|
|
144
159
|
spawn(vector, model = this.adapters.defaultSpawnModel) {
|
|
145
|
-
|
|
160
|
+
const request = { position: vector, model };
|
|
161
|
+
void Promise.resolve(this.adapters.playerLifecycle.spawn(this.clientID.toString(), request)).catch((error) => {
|
|
162
|
+
loggers.spawn.error('Failed to spawn player', {
|
|
163
|
+
clientID: this.clientID,
|
|
164
|
+
error: error instanceof Error ? error.message : String(error),
|
|
165
|
+
});
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
respawn(vector, model = this.adapters.defaultSpawnModel) {
|
|
169
|
+
const request = { position: vector, model };
|
|
170
|
+
void Promise.resolve(this.adapters.playerLifecycle.respawn(this.clientID.toString(), request)).catch((error) => {
|
|
171
|
+
loggers.spawn.error('Failed to respawn player', {
|
|
172
|
+
clientID: this.clientID,
|
|
173
|
+
error: error instanceof Error ? error.message : String(error),
|
|
174
|
+
});
|
|
175
|
+
});
|
|
146
176
|
}
|
|
147
177
|
// ─────────────────────────────────────────────────────────────────
|
|
148
178
|
// Connection Management
|
|
@@ -158,33 +188,18 @@ export class Player extends BaseEntity {
|
|
|
158
188
|
// ─────────────────────────────────────────────────────────────────
|
|
159
189
|
// Dimension / Routing Bucket
|
|
160
190
|
// ─────────────────────────────────────────────────────────────────
|
|
161
|
-
/**
|
|
162
|
-
* Sets the routing bucket (virtual world/dimension) for the player.
|
|
163
|
-
* Players in different buckets cannot see or interact with each other.
|
|
164
|
-
*
|
|
165
|
-
* @param bucket - The bucket ID (0 is the default shared world).
|
|
166
|
-
*/
|
|
167
|
-
setRoutingBucket(bucket) {
|
|
168
|
-
this.adapters.playerServer.setRoutingBucket(this.clientID.toString(), bucket);
|
|
169
|
-
this._dimension = bucket;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Gets the current routing bucket.
|
|
173
|
-
*/
|
|
174
|
-
getRoutingBucket() {
|
|
175
|
-
return this.adapters.playerServer.getRoutingBucket(this.clientID.toString());
|
|
176
|
-
}
|
|
177
191
|
/**
|
|
178
192
|
* Sets the player dimension (alias for setRoutingBucket).
|
|
179
193
|
*/
|
|
180
194
|
set dimension(value) {
|
|
181
|
-
this.
|
|
195
|
+
this.adapters.playerServer.setDimension(this.clientID.toString(), value);
|
|
196
|
+
this._dimension = value;
|
|
182
197
|
}
|
|
183
198
|
/**
|
|
184
199
|
* Gets the player dimension (alias for getRoutingBucket).
|
|
185
200
|
*/
|
|
186
201
|
get dimension() {
|
|
187
|
-
return this.
|
|
202
|
+
return this.adapters.playerServer.getDimension(this.clientID.toString());
|
|
188
203
|
}
|
|
189
204
|
// ─────────────────────────────────────────────────────────────────
|
|
190
205
|
// Session Metadata (Transient)
|
|
@@ -276,8 +291,7 @@ export class Player extends BaseEntity {
|
|
|
276
291
|
* Gets the current health of the player's ped.
|
|
277
292
|
*/
|
|
278
293
|
getHealth() {
|
|
279
|
-
|
|
280
|
-
return this.adapters.entityServer.getHealth(ped);
|
|
294
|
+
return this.adapters.playerStateSync.getHealth(this.clientID.toString());
|
|
281
295
|
}
|
|
282
296
|
/**
|
|
283
297
|
* Sets the health of the player's ped.
|
|
@@ -285,15 +299,13 @@ export class Player extends BaseEntity {
|
|
|
285
299
|
* @param health - Health value to set (platform-specific range).
|
|
286
300
|
*/
|
|
287
301
|
setHealth(health) {
|
|
288
|
-
|
|
289
|
-
this.adapters.entityServer.setHealth(ped, health);
|
|
302
|
+
this.adapters.playerStateSync.setHealth(this.clientID.toString(), health);
|
|
290
303
|
}
|
|
291
304
|
/**
|
|
292
305
|
* Gets the current armor of the player's ped.
|
|
293
306
|
*/
|
|
294
307
|
getArmor() {
|
|
295
|
-
|
|
296
|
-
return this.adapters.entityServer.getArmor(ped);
|
|
308
|
+
return this.adapters.playerStateSync.getArmor(this.clientID.toString());
|
|
297
309
|
}
|
|
298
310
|
/**
|
|
299
311
|
* Sets the armor of the player's ped.
|
|
@@ -301,8 +313,14 @@ export class Player extends BaseEntity {
|
|
|
301
313
|
* @param armor - Armor value to set (typically 0-100).
|
|
302
314
|
*/
|
|
303
315
|
setArmor(armor) {
|
|
304
|
-
|
|
305
|
-
|
|
316
|
+
this.adapters.playerStateSync.setArmor(this.clientID.toString(), armor);
|
|
317
|
+
}
|
|
318
|
+
get model() {
|
|
319
|
+
return this._model;
|
|
320
|
+
}
|
|
321
|
+
set model(model) {
|
|
322
|
+
this.adapters.playerServer.setModel(this.clientID.toString(), model);
|
|
323
|
+
this._model = model;
|
|
306
324
|
}
|
|
307
325
|
/**
|
|
308
326
|
* Kills the player by setting health to 0.
|
|
@@ -154,13 +154,13 @@ export class Vehicle extends BaseEntity {
|
|
|
154
154
|
if (!this.exists) {
|
|
155
155
|
return this.session.routingBucket;
|
|
156
156
|
}
|
|
157
|
-
return this.adapters.entityServer.
|
|
157
|
+
return this.adapters.entityServer.getDimension(this.session.handle);
|
|
158
158
|
}
|
|
159
159
|
/** Sets routing bucket and updates local dimension snapshot. */
|
|
160
160
|
setRoutingBucket(bucket) {
|
|
161
161
|
if (!this.exists)
|
|
162
162
|
return;
|
|
163
|
-
this.adapters.entityServer.
|
|
163
|
+
this.adapters.entityServer.setDimension(this.session.handle, bucket);
|
|
164
164
|
this.session.routingBucket = bucket;
|
|
165
165
|
this._dimension = bucket;
|
|
166
166
|
}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
import { GLOBAL_CONTAINER } from '../../kernel/di/container';
|
|
1
2
|
import { AppError, isAppError } from '../../kernel/error/app.error';
|
|
2
3
|
import { loggers } from '../../kernel/logger';
|
|
4
|
+
import { EventsAPI } from '../../adapters/contracts/transport/events.api';
|
|
5
|
+
function getServerEvents() {
|
|
6
|
+
if (!GLOBAL_CONTAINER.isRegistered(EventsAPI)) {
|
|
7
|
+
return null;
|
|
8
|
+
}
|
|
9
|
+
return GLOBAL_CONTAINER.resolve(EventsAPI);
|
|
10
|
+
}
|
|
3
11
|
function normalizeError(error, origin) {
|
|
4
12
|
if (isAppError(error)) {
|
|
5
13
|
return error;
|
|
@@ -21,16 +29,19 @@ export function handleCommandError(error, meta, playerId) {
|
|
|
21
29
|
details: appError.details,
|
|
22
30
|
});
|
|
23
31
|
if (playerId !== null) {
|
|
32
|
+
const events = getServerEvents();
|
|
33
|
+
if (!events)
|
|
34
|
+
return;
|
|
24
35
|
switch (appError.code) {
|
|
25
36
|
case 'ECONOMY:INSUFFICIENT_FUNDS':
|
|
26
37
|
case 'AUTH:PERMISSION_DENIED':
|
|
27
38
|
case 'AUTH:UNAUTHORIZED':
|
|
28
|
-
|
|
39
|
+
events.emit('chat:addMessage', playerId, {
|
|
29
40
|
args: ['^1Error', appError.message],
|
|
30
41
|
});
|
|
31
42
|
break;
|
|
32
43
|
default:
|
|
33
|
-
|
|
44
|
+
events.emit('chat:addMessage', playerId, {
|
|
34
45
|
args: ['^1Error', 'Ha ocurrido un error interno.'],
|
|
35
46
|
});
|
|
36
47
|
break;
|
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import z from 'zod';
|
|
2
2
|
import { AppError } from '../../../kernel';
|
|
3
3
|
import { generateSchemaFromTypes } from '../system/schema-generator';
|
|
4
|
-
import { processTupleSchema } from '
|
|
4
|
+
import { processTupleSchema } from '../../shared/helpers/process-tuple-schema';
|
|
5
5
|
export async function validateAndExecuteCommand(meta, player, args, handler) {
|
|
6
6
|
const paramNames = meta.expectsPlayer ? meta.paramNames.slice(1) : meta.paramNames;
|
|
7
|
+
const defaultParams = meta.expectsPlayer
|
|
8
|
+
? (meta.defaultParams ?? []).slice(1)
|
|
9
|
+
: (meta.defaultParams ?? []);
|
|
7
10
|
let schema = meta.schema;
|
|
8
11
|
if (!meta.expectsPlayer) {
|
|
9
12
|
if (args.length > 0) {
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
const usage = resolveCommandUsage(meta, paramNames, defaultParams);
|
|
14
|
+
throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${usage}`, 'client', {
|
|
15
|
+
usage,
|
|
12
16
|
});
|
|
13
17
|
}
|
|
14
18
|
return await handler();
|
|
15
19
|
}
|
|
16
20
|
if (!schema) {
|
|
17
|
-
schema = generateSchemaFromTypes(meta.paramTypes);
|
|
21
|
+
schema = generateSchemaFromTypes(meta.paramTypes, meta.defaultParams);
|
|
18
22
|
if (!schema) {
|
|
19
23
|
if (paramNames.length > 0) {
|
|
20
24
|
throw new AppError('SCHEMA:MISMATCH', `Command '${meta.command}' has parameters ${paramNames.join(', ')} but no schema was provided.`, 'core');
|
|
@@ -39,8 +43,9 @@ export async function validateAndExecuteCommand(meta, player, args, handler) {
|
|
|
39
43
|
inputObj[paramNames[i]] = args[i];
|
|
40
44
|
}
|
|
41
45
|
const validated = await schema.parseAsync(inputObj).catch(() => {
|
|
42
|
-
|
|
43
|
-
|
|
46
|
+
const usage = resolveCommandUsage(meta, paramNames, defaultParams);
|
|
47
|
+
throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${usage}`, 'client', {
|
|
48
|
+
usage,
|
|
44
49
|
});
|
|
45
50
|
});
|
|
46
51
|
const obj = validated;
|
|
@@ -51,8 +56,9 @@ export async function validateAndExecuteCommand(meta, player, args, handler) {
|
|
|
51
56
|
if (schema instanceof z.ZodTuple) {
|
|
52
57
|
const processedArgs = processTupleSchema(schema, args);
|
|
53
58
|
const validated = await schema.parseAsync(processedArgs).catch(() => {
|
|
54
|
-
|
|
55
|
-
|
|
59
|
+
const usage = resolveCommandUsage(meta, paramNames, defaultParams);
|
|
60
|
+
throw new AppError('GAME:BAD_REQUEST', `Incorrect usage, use: ${usage}`, 'client', {
|
|
61
|
+
usage,
|
|
56
62
|
});
|
|
57
63
|
});
|
|
58
64
|
const finalArgs = validated;
|
|
@@ -71,3 +77,10 @@ export async function validateAndExecuteCommand(meta, player, args, handler) {
|
|
|
71
77
|
// fallback
|
|
72
78
|
return await handler(player);
|
|
73
79
|
}
|
|
80
|
+
function resolveCommandUsage(meta, paramNames, defaultParams) {
|
|
81
|
+
if (meta.usage?.trim()) {
|
|
82
|
+
return meta.usage;
|
|
83
|
+
}
|
|
84
|
+
const renderedParams = paramNames.map((name, index) => defaultParams[index] ? `[${name}]` : `<${name}>`);
|
|
85
|
+
return `/${meta.command}${renderedParams.length > 0 ? ` ${renderedParams.join(' ')}` : ''}`;
|
|
86
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare function getParameterNames(func: (...args: any[]) => any): string[];
|
|
2
|
+
export declare function getDefaultParameterIndices(func: (...args: any[]) => any): boolean[];
|
|
2
3
|
/**
|
|
3
4
|
* Detects which parameter indices use the spread operator (...args).
|
|
4
5
|
* Returns an array of booleans where true means the parameter at that index is a spread parameter.
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
export function getParameterNames(func) {
|
|
2
|
-
|
|
3
|
-
.toString()
|
|
4
|
-
.replace(/\/\/.*$/gm, '')
|
|
5
|
-
.replace(/\/\*[\s\S]*?\*\//gm, '');
|
|
6
|
-
const args = stripped
|
|
7
|
-
.slice(stripped.indexOf('(') + 1, stripped.indexOf(')'))
|
|
8
|
-
.split(',')
|
|
2
|
+
return parseParameterTokens(func)
|
|
9
3
|
.map((arg) => arg.replace(/=[\s\S]*/, '').trim())
|
|
10
4
|
.filter(Boolean);
|
|
11
|
-
|
|
5
|
+
}
|
|
6
|
+
export function getDefaultParameterIndices(func) {
|
|
7
|
+
return parseParameterTokens(func).map((arg) => arg.includes('='));
|
|
12
8
|
}
|
|
13
9
|
/**
|
|
14
10
|
* Detects which parameter indices use the spread operator (...args).
|
|
@@ -26,3 +22,14 @@ export function getSpreadParameterIndices(func) {
|
|
|
26
22
|
.filter(Boolean);
|
|
27
23
|
return args.map((arg) => arg.startsWith('...'));
|
|
28
24
|
}
|
|
25
|
+
function parseParameterTokens(func) {
|
|
26
|
+
const stripped = func
|
|
27
|
+
.toString()
|
|
28
|
+
.replace(/\/\/.*$/gm, '')
|
|
29
|
+
.replace(/\/\*[\s\S]*?\*\//gm, '');
|
|
30
|
+
return stripped
|
|
31
|
+
.slice(stripped.indexOf('(') + 1, stripped.indexOf(')'))
|
|
32
|
+
.split(',')
|
|
33
|
+
.map((arg) => arg.trim())
|
|
34
|
+
.filter(Boolean);
|
|
35
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
|
|
2
|
-
import { RGB } from '
|
|
2
|
+
import { RGB } from '../../../../kernel/utils';
|
|
3
3
|
import { Player } from '../../entities';
|
|
4
4
|
import { Channels } from '../../ports/channel.api-port';
|
|
5
5
|
import { IChannelValidator, ChannelMetadata, ChannelType } from '../../types';
|
|
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
|
|
14
14
|
import { inject, injectable } from 'tsyringe';
|
|
15
|
+
import { SYSTEM_EVENTS } from '../../../shared/types/system-types';
|
|
15
16
|
import { Channels } from '../../ports/channel.api-port';
|
|
16
17
|
import { ChannelType } from '../../types';
|
|
17
18
|
import { Players } from '../../ports/players.api-port';
|
|
@@ -96,7 +97,7 @@ let LocalChannelImplementation = class LocalChannelImplementation extends Channe
|
|
|
96
97
|
if (targetIds.length === 0) {
|
|
97
98
|
return;
|
|
98
99
|
}
|
|
99
|
-
this.events.emit(
|
|
100
|
+
this.events.emit(SYSTEM_EVENTS.chat.addMessage, targetIds, {
|
|
100
101
|
args: [author ?? sender.name, message],
|
|
101
102
|
color: color,
|
|
102
103
|
});
|
|
@@ -111,7 +112,7 @@ let LocalChannelImplementation = class LocalChannelImplementation extends Channe
|
|
|
111
112
|
if (targetIds.length === 0) {
|
|
112
113
|
return;
|
|
113
114
|
}
|
|
114
|
-
this.events.emit(
|
|
115
|
+
this.events.emit(SYSTEM_EVENTS.chat.addMessage, targetIds, {
|
|
115
116
|
args: [author, message],
|
|
116
117
|
color: color,
|
|
117
118
|
});
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { IPlayerInfo } from '../../../../adapters';
|
|
2
|
-
import {
|
|
2
|
+
import { IPlatformContext } from '../../../../adapters/contracts/IPlatformContext';
|
|
3
3
|
import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
|
|
4
4
|
import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
|
|
5
|
+
import { IPlayerLifecycleServer } from '../../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
|
|
6
|
+
import { IPlayerStateSyncServer } from '../../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
|
|
5
7
|
import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
|
|
6
8
|
import { WorldContext } from '../../../core/world';
|
|
7
9
|
import { Player } from '../../entities';
|
|
@@ -22,11 +24,13 @@ export declare class LocalPlayerImplementation implements Players, PlayerSession
|
|
|
22
24
|
private readonly world;
|
|
23
25
|
private readonly playerInfo;
|
|
24
26
|
private readonly playerServer;
|
|
27
|
+
private readonly playerLifecycle;
|
|
28
|
+
private readonly playerStateSync;
|
|
25
29
|
private readonly entityServer;
|
|
26
30
|
private readonly events;
|
|
27
|
-
private readonly
|
|
31
|
+
private readonly platformContext;
|
|
28
32
|
private readonly playerAdapters;
|
|
29
|
-
constructor(world: WorldContext, playerInfo: IPlayerInfo, playerServer: IPlayerServer, entityServer: IEntityServer, events: EventsAPI<'server'>,
|
|
33
|
+
constructor(world: WorldContext, playerInfo: IPlayerInfo, playerServer: IPlayerServer, playerLifecycle: IPlayerLifecycleServer, playerStateSync: IPlayerStateSyncServer, entityServer: IEntityServer, events: EventsAPI<'server'>, platformContext: IPlatformContext);
|
|
30
34
|
private isPlayer;
|
|
31
35
|
/**
|
|
32
36
|
* Initializes a new player session for a connecting client.
|
|
@@ -12,13 +12,15 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'tsyringe';
|
|
14
14
|
import { IPlayerInfo } from '../../../../adapters';
|
|
15
|
-
import {
|
|
15
|
+
import { IPlatformContext } from '../../../../adapters/contracts/IPlatformContext';
|
|
16
16
|
import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
|
|
17
17
|
import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
|
|
18
|
+
import { IPlayerLifecycleServer } from '../../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
|
|
19
|
+
import { IPlayerStateSyncServer } from '../../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
|
|
18
20
|
import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
|
|
19
21
|
import { loggers } from '../../../../kernel/logger';
|
|
20
22
|
import { WorldContext } from '../../../core/world';
|
|
21
|
-
import {
|
|
23
|
+
import { createLocalServerPlayer } from '../../adapter/registry';
|
|
22
24
|
/**
|
|
23
25
|
* Service responsible for managing the lifecycle of player sessions.
|
|
24
26
|
* It acts as the central registry for all connected players, mapping FiveM client IDs
|
|
@@ -32,21 +34,27 @@ let LocalPlayerImplementation = class LocalPlayerImplementation {
|
|
|
32
34
|
world;
|
|
33
35
|
playerInfo;
|
|
34
36
|
playerServer;
|
|
37
|
+
playerLifecycle;
|
|
38
|
+
playerStateSync;
|
|
35
39
|
entityServer;
|
|
36
40
|
events;
|
|
37
|
-
|
|
41
|
+
platformContext;
|
|
38
42
|
playerAdapters;
|
|
39
|
-
constructor(world, playerInfo, playerServer, entityServer, events,
|
|
43
|
+
constructor(world, playerInfo, playerServer, playerLifecycle, playerStateSync, entityServer, events, platformContext) {
|
|
40
44
|
this.world = world;
|
|
41
45
|
this.playerInfo = playerInfo;
|
|
42
46
|
this.playerServer = playerServer;
|
|
47
|
+
this.playerLifecycle = playerLifecycle;
|
|
48
|
+
this.playerStateSync = playerStateSync;
|
|
43
49
|
this.entityServer = entityServer;
|
|
44
50
|
this.events = events;
|
|
45
|
-
this.
|
|
46
|
-
const defaultSpawnModel = this.
|
|
51
|
+
this.platformContext = platformContext;
|
|
52
|
+
const defaultSpawnModel = this.platformContext.defaultSpawnModel;
|
|
47
53
|
this.playerAdapters = {
|
|
48
54
|
playerInfo: this.playerInfo,
|
|
49
55
|
playerServer: this.playerServer,
|
|
56
|
+
playerLifecycle: this.playerLifecycle,
|
|
57
|
+
playerStateSync: this.playerStateSync,
|
|
50
58
|
entityServer: this.entityServer,
|
|
51
59
|
events: this.events,
|
|
52
60
|
defaultSpawnModel,
|
|
@@ -71,7 +79,7 @@ let LocalPlayerImplementation = class LocalPlayerImplementation {
|
|
|
71
79
|
identifiers,
|
|
72
80
|
meta: {},
|
|
73
81
|
};
|
|
74
|
-
const player =
|
|
82
|
+
const player = createLocalServerPlayer(session, this.playerAdapters);
|
|
75
83
|
this.world.add(player);
|
|
76
84
|
loggers.session.debug('Player session bound', {
|
|
77
85
|
clientID,
|
|
@@ -191,14 +199,18 @@ LocalPlayerImplementation = __decorate([
|
|
|
191
199
|
__param(0, inject(WorldContext)),
|
|
192
200
|
__param(1, inject(IPlayerInfo)),
|
|
193
201
|
__param(2, inject(IPlayerServer)),
|
|
194
|
-
__param(3, inject(
|
|
195
|
-
__param(4, inject(
|
|
196
|
-
__param(5, inject(
|
|
202
|
+
__param(3, inject(IPlayerLifecycleServer)),
|
|
203
|
+
__param(4, inject(IPlayerStateSyncServer)),
|
|
204
|
+
__param(5, inject(IEntityServer)),
|
|
205
|
+
__param(6, inject(EventsAPI)),
|
|
206
|
+
__param(7, inject(IPlatformContext)),
|
|
197
207
|
__metadata("design:paramtypes", [WorldContext,
|
|
198
208
|
IPlayerInfo,
|
|
199
209
|
IPlayerServer,
|
|
210
|
+
IPlayerLifecycleServer,
|
|
211
|
+
IPlayerStateSyncServer,
|
|
200
212
|
IEntityServer,
|
|
201
213
|
EventsAPI,
|
|
202
|
-
|
|
214
|
+
IPlatformContext])
|
|
203
215
|
], LocalPlayerImplementation);
|
|
204
216
|
export { LocalPlayerImplementation };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IExports } from '../../../../adapters/contracts/IExports';
|
|
2
|
+
import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
|
|
2
3
|
import { RGB } from '../../../../kernel/utils/rgb';
|
|
3
4
|
import { Channel } from '../../concepts/channel';
|
|
4
5
|
import { Player } from '../../entities/player';
|
|
@@ -21,7 +22,7 @@ export declare class RemoteChannelImplementation extends Channels {
|
|
|
21
22
|
private exportsService;
|
|
22
23
|
private readonly players;
|
|
23
24
|
private resourceName;
|
|
24
|
-
constructor(exportsService: IExports, players: Players);
|
|
25
|
+
constructor(exportsService: IExports, resourceInfo: IResourceInfo, players: Players);
|
|
25
26
|
/**
|
|
26
27
|
* Gets typed access to CORE resource exports.
|
|
27
28
|
*/
|
|
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'tsyringe';
|
|
14
14
|
import { IExports } from '../../../../adapters/contracts/IExports';
|
|
15
|
+
import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
|
|
15
16
|
import { loggers } from '../../../../kernel/logger';
|
|
16
17
|
import { Channel } from '../../concepts/channel';
|
|
17
18
|
import { getRuntimeContext } from '../../runtime';
|
|
@@ -34,11 +35,11 @@ let RemoteChannelImplementation = class RemoteChannelImplementation extends Chan
|
|
|
34
35
|
exportsService;
|
|
35
36
|
players;
|
|
36
37
|
resourceName;
|
|
37
|
-
constructor(exportsService, players) {
|
|
38
|
+
constructor(exportsService, resourceInfo, players) {
|
|
38
39
|
super();
|
|
39
40
|
this.exportsService = exportsService;
|
|
40
41
|
this.players = players;
|
|
41
|
-
this.resourceName =
|
|
42
|
+
this.resourceName = resourceInfo.getCurrentResourceName();
|
|
42
43
|
}
|
|
43
44
|
/**
|
|
44
45
|
* Gets typed access to CORE resource exports.
|
|
@@ -159,7 +160,9 @@ let RemoteChannelImplementation = class RemoteChannelImplementation extends Chan
|
|
|
159
160
|
RemoteChannelImplementation = __decorate([
|
|
160
161
|
injectable(),
|
|
161
162
|
__param(0, inject(IExports)),
|
|
163
|
+
__param(1, inject(IResourceInfo)),
|
|
162
164
|
__metadata("design:paramtypes", [IExports,
|
|
165
|
+
IResourceInfo,
|
|
163
166
|
Players])
|
|
164
167
|
], RemoteChannelImplementation);
|
|
165
168
|
export { RemoteChannelImplementation };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IExports } from '../../../../adapters/contracts/IExports';
|
|
2
|
+
import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
|
|
2
3
|
import { CommandMetadata } from '../../decorators/command';
|
|
3
4
|
import { Player } from '../../entities';
|
|
4
5
|
import { CommandExecutionPort, type CommandInfo } from '../../ports/internal/command-execution.port';
|
|
@@ -23,9 +24,10 @@ import { CommandExecutionPort, type CommandInfo } from '../../ports/internal/com
|
|
|
23
24
|
*/
|
|
24
25
|
export declare class RemoteCommandImplementation extends CommandExecutionPort {
|
|
25
26
|
private exportsService;
|
|
27
|
+
private readonly resourceInfo;
|
|
26
28
|
private commands;
|
|
27
29
|
getCommandMeta(commandName: string): CommandMetadata | undefined;
|
|
28
|
-
constructor(exportsService: IExports);
|
|
30
|
+
constructor(exportsService: IExports, resourceInfo: IResourceInfo);
|
|
29
31
|
/**
|
|
30
32
|
* Gets typed access to CORE resource exports.
|
|
31
33
|
*/
|
|
@@ -12,6 +12,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'tsyringe';
|
|
14
14
|
import { IExports } from '../../../../adapters/contracts/IExports';
|
|
15
|
+
import { IResourceInfo } from '../../../../adapters/contracts/IResourceInfo';
|
|
15
16
|
import { AppError } from '../../../../kernel/error/app.error';
|
|
16
17
|
import { loggers } from '../../../../kernel/logger';
|
|
17
18
|
import { validateAndExecuteCommand } from '../../helpers/command-validation.helper';
|
|
@@ -38,13 +39,15 @@ import { CommandExecutionPort } from '../../ports/internal/command-execution.por
|
|
|
38
39
|
*/
|
|
39
40
|
let RemoteCommandImplementation = class RemoteCommandImplementation extends CommandExecutionPort {
|
|
40
41
|
exportsService;
|
|
42
|
+
resourceInfo;
|
|
41
43
|
commands = new Map();
|
|
42
44
|
getCommandMeta(commandName) {
|
|
43
45
|
return this.commands.get(commandName.toLowerCase())?.meta;
|
|
44
46
|
}
|
|
45
|
-
constructor(exportsService) {
|
|
47
|
+
constructor(exportsService, resourceInfo) {
|
|
46
48
|
super();
|
|
47
49
|
this.exportsService = exportsService;
|
|
50
|
+
this.resourceInfo = resourceInfo;
|
|
48
51
|
}
|
|
49
52
|
/**
|
|
50
53
|
* Gets typed access to CORE resource exports.
|
|
@@ -68,7 +71,7 @@ let RemoteCommandImplementation = class RemoteCommandImplementation extends Comm
|
|
|
68
71
|
*/
|
|
69
72
|
register(metadata, handler) {
|
|
70
73
|
const commandKey = metadata.command.toLowerCase();
|
|
71
|
-
const resourceName =
|
|
74
|
+
const resourceName = this.resourceInfo.getCurrentResourceName();
|
|
72
75
|
loggers.command.debug(`Registering command locally`, {
|
|
73
76
|
command: metadata.command,
|
|
74
77
|
resource: resourceName,
|
|
@@ -132,7 +135,7 @@ let RemoteCommandImplementation = class RemoteCommandImplementation extends Comm
|
|
|
132
135
|
if (!entry) {
|
|
133
136
|
loggers.command.error(`Handler not found for remote command: ${commandName}`, {
|
|
134
137
|
command: commandName,
|
|
135
|
-
resource:
|
|
138
|
+
resource: this.resourceInfo.getCurrentResourceName(),
|
|
136
139
|
});
|
|
137
140
|
throw new AppError('COMMAND:NOT_FOUND', `Command not found: ${commandName}`, 'server');
|
|
138
141
|
}
|
|
@@ -149,6 +152,8 @@ let RemoteCommandImplementation = class RemoteCommandImplementation extends Comm
|
|
|
149
152
|
RemoteCommandImplementation = __decorate([
|
|
150
153
|
injectable(),
|
|
151
154
|
__param(0, inject(IExports)),
|
|
152
|
-
|
|
155
|
+
__param(1, inject(IResourceInfo)),
|
|
156
|
+
__metadata("design:paramtypes", [IExports,
|
|
157
|
+
IResourceInfo])
|
|
153
158
|
], RemoteCommandImplementation);
|
|
154
159
|
export { RemoteCommandImplementation };
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { IExports, IPlayerInfo } from '../../../../adapters';
|
|
2
|
-
import {
|
|
2
|
+
import { IPlatformContext } from '../../../../adapters/contracts/IPlatformContext';
|
|
3
3
|
import { EventsAPI } from '../../../../adapters/contracts/transport/events.api';
|
|
4
4
|
import { IEntityServer } from '../../../../adapters/contracts/server/IEntityServer';
|
|
5
|
+
import { IPlayerLifecycleServer } from '../../../../adapters/contracts/server/player-lifecycle/IPlayerLifecycleServer';
|
|
6
|
+
import { IPlayerStateSyncServer } from '../../../../adapters/contracts/server/player-state/IPlayerStateSyncServer';
|
|
5
7
|
import { IPlayerServer } from '../../../../adapters/contracts/server/IPlayerServer';
|
|
6
8
|
import { Player } from '../../entities';
|
|
7
9
|
import { Players } from '../../ports/players.api-port';
|
|
@@ -18,25 +20,20 @@ export declare class RemotePlayerImplementation extends Players {
|
|
|
18
20
|
private readonly playerInfo;
|
|
19
21
|
private readonly exportsService;
|
|
20
22
|
private readonly playerServer;
|
|
23
|
+
private readonly playerLifecycle;
|
|
24
|
+
private readonly playerStateSync;
|
|
21
25
|
private readonly entityServer;
|
|
22
26
|
private readonly events;
|
|
23
|
-
private readonly
|
|
27
|
+
private readonly platformContext;
|
|
24
28
|
/**
|
|
25
29
|
* Cached adapters bundle for Player instances
|
|
26
30
|
*/
|
|
27
31
|
private readonly playerAdapters;
|
|
28
|
-
constructor(playerInfo: IPlayerInfo, exportsService: IExports, playerServer: IPlayerServer, entityServer: IEntityServer, events: EventsAPI<'server'>,
|
|
32
|
+
constructor(playerInfo: IPlayerInfo, exportsService: IExports, playerServer: IPlayerServer, playerLifecycle: IPlayerLifecycleServer, playerStateSync: IPlayerStateSyncServer, entityServer: IEntityServer, events: EventsAPI<'server'>, platformContext: IPlatformContext);
|
|
29
33
|
/**
|
|
30
34
|
* Gets typed access to CORE resource exports.
|
|
31
35
|
*/
|
|
32
36
|
private get core();
|
|
33
|
-
/**
|
|
34
|
-
* Creates a local Player instance from serialized data.
|
|
35
|
-
*
|
|
36
|
-
* @remarks
|
|
37
|
-
* The returned Player is hydrated with session data from CORE,
|
|
38
|
-
* including accountID, identifiers, metadata, and states.
|
|
39
|
-
*/
|
|
40
37
|
private createPlayerFromData;
|
|
41
38
|
/**
|
|
42
39
|
* Returns a Player instance with real session data from CORE.
|