@open-core/framework 1.0.5-beta.1 → 1.0.5-beta.2
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 +3 -0
- package/dist/adapters/contracts/IEngineEvents.js +7 -0
- 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 +4 -0
- package/dist/adapters/contracts/client/IClientLocalPlayerBridge.js +2 -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/index.d.ts +7 -0
- package/dist/adapters/contracts/client/index.js +7 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.d.ts +7 -0
- package/dist/adapters/contracts/client/spawn/IClientSpawnBridge.js +2 -0
- package/dist/adapters/contracts/client/spawn/index.d.ts +2 -0
- package/dist/adapters/contracts/client/spawn/index.js +2 -0
- package/dist/adapters/contracts/client/spawn/types.d.ts +14 -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 +13 -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 +25 -0
- package/dist/adapters/contracts/client/ui/webview/types.js +0 -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/index.d.ts +4 -0
- package/dist/adapters/contracts/transport/index.js +4 -0
- 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/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 +4 -0
- package/dist/contracts.js +4 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -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 +2 -0
- package/dist/kernel/logger/index.js +1 -0
- package/dist/kernel/logger/transports/dev-transport.factory.js +1 -1
- package/dist/kernel/logger/transports/simple-console.transport.js +13 -8
- 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 +15 -0
- package/dist/runtime/client/adapter/index.js +15 -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-client-adapter.d.ts +5 -0
- package/dist/runtime/client/adapter/node-client-adapter.js +50 -0
- package/dist/runtime/client/adapter/node-local-player-bridge.d.ts +8 -0
- package/dist/{adapters/fivem/fivem-hasher.js → runtime/client/adapter/node-local-player-bridge.js} +7 -9
- 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/runtime/client/adapter/node-notification-bridge.js +16 -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-runtime-bridge.d.ts +24 -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 +18 -0
- package/dist/runtime/client/adapter/node-webview-bridge.d.ts +15 -0
- package/dist/runtime/client/adapter/node-webview-bridge.js +43 -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 +14 -4
- package/dist/runtime/client/controllers/spawner.controller.js +2 -0
- 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 +3 -83
- package/dist/runtime/client/services/camera.js +37 -93
- 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 +3 -130
- package/dist/runtime/client/services/ped.service.js +66 -198
- package/dist/runtime/client/services/progress.service.d.ts +5 -30
- package/dist/runtime/client/services/progress.service.js +73 -99
- package/dist/runtime/client/services/session-bridge.service.d.ts +15 -0
- package/dist/runtime/client/services/session-bridge.service.js +61 -0
- package/dist/runtime/client/services/spawn.service.d.ts +6 -56
- package/dist/runtime/client/services/spawn.service.js +34 -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 +180 -326
- package/dist/runtime/client/services/vehicle.service.d.ts +3 -109
- package/dist/runtime/client/services/vehicle.service.js +94 -194
- 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 +31 -0
- package/dist/runtime/client/webview-bridge.js +97 -0
- package/dist/runtime/client/webview.service.d.ts +14 -0
- package/dist/runtime/client/webview.service.js +98 -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 +94 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.d.ts +11 -0
- package/dist/runtime/server/adapter/node-player-lifecycle-server.js +55 -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 +57 -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/npcs.api.d.ts +3 -4
- package/dist/runtime/server/apis/npcs.api.js +26 -56
- package/dist/runtime/server/apis/vehicle-modification.api.d.ts +3 -1
- package/dist/runtime/server/apis/vehicle-modification.api.js +9 -4
- package/dist/runtime/server/apis/vehicles.api.d.ts +12 -6
- package/dist/runtime/server/apis/vehicles.api.js +48 -36
- package/dist/runtime/server/bootstrap.js +15 -7
- package/dist/runtime/server/controllers/channel.controller.js +2 -1
- package/dist/runtime/server/controllers/command-export.controller.js +1 -1
- package/dist/runtime/server/controllers/player-export.controller.js +5 -4
- 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 +10 -5
- package/dist/runtime/server/core.d.ts +2 -0
- package/dist/runtime/server/core.js +9 -1
- package/dist/runtime/server/decorators/onRuntimeEvent.d.ts +2 -1
- package/dist/runtime/server/entities/npc.d.ts +2 -0
- package/dist/runtime/server/entities/npc.js +3 -3
- package/dist/runtime/server/entities/player.d.ts +8 -11
- package/dist/runtime/server/entities/player.js +39 -28
- 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 +1 -1
- 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/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/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/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 +29 -0
- package/package.json +21 -3
- 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,6 +1,7 @@
|
|
|
1
1
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
2
2
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
3
3
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
4
|
+
import { INpcLifecycleServer } from '../../../adapters/contracts/server/npc-lifecycle/INpcLifecycleServer';
|
|
4
5
|
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
5
6
|
import { Vector3 } from '../../../kernel/utils/vector3';
|
|
6
7
|
import { WorldContext } from '../../core/world';
|
|
@@ -20,6 +21,7 @@ import { NpcSpawnOptions, NpcSpawnResult, SerializedNpcData } from '../types/npc
|
|
|
20
21
|
export declare class Npcs {
|
|
21
22
|
private readonly world;
|
|
22
23
|
private readonly entityServer;
|
|
24
|
+
private readonly npcLifecycle;
|
|
23
25
|
private readonly pedServer;
|
|
24
26
|
private readonly hasher;
|
|
25
27
|
private readonly events;
|
|
@@ -27,7 +29,7 @@ export declare class Npcs {
|
|
|
27
29
|
private readonly idByHandle;
|
|
28
30
|
private readonly idByNetId;
|
|
29
31
|
private readonly adapters;
|
|
30
|
-
constructor(world: WorldContext, entityServer: IEntityServer, pedServer: IPedServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
32
|
+
constructor(world: WorldContext, entityServer: IEntityServer, npcLifecycle: INpcLifecycleServer, pedServer: IPedServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
31
33
|
/**
|
|
32
34
|
* Spawn (create) a single NPC and register it into the runtime.
|
|
33
35
|
*
|
|
@@ -206,8 +208,5 @@ export declare class Npcs {
|
|
|
206
208
|
* @returns An array of serialized NPC data.
|
|
207
209
|
*/
|
|
208
210
|
serializeAll(): SerializedNpcData[];
|
|
209
|
-
private resolveNetId;
|
|
210
211
|
private removeFromRegistry;
|
|
211
|
-
private safeDeleteHandle;
|
|
212
|
-
private waitForSpawn;
|
|
213
212
|
}
|
|
@@ -15,12 +15,11 @@ import { v4 as uuid } from 'uuid';
|
|
|
15
15
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
16
16
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
17
17
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
18
|
+
import { INpcLifecycleServer } from '../../../adapters/contracts/server/npc-lifecycle/INpcLifecycleServer';
|
|
18
19
|
import { IPedServer } from '../../../adapters/contracts/server/IPedServer';
|
|
19
20
|
import { coreLogger } from '../../../kernel/logger';
|
|
20
21
|
import { WorldContext } from '../../core/world';
|
|
21
22
|
import { NPC } from '../entities/npc';
|
|
22
|
-
const DEFAULT_PED_TYPE = 4;
|
|
23
|
-
const DEFAULT_SPAWN_TIMEOUT_MS = 2000;
|
|
24
23
|
/**
|
|
25
24
|
* Server-side API responsible for the full NPC (ped) lifecycle:
|
|
26
25
|
* spawn, registry, queries, spatial search, serialization and deletion.
|
|
@@ -35,6 +34,7 @@ const DEFAULT_SPAWN_TIMEOUT_MS = 2000;
|
|
|
35
34
|
let Npcs = class Npcs {
|
|
36
35
|
world;
|
|
37
36
|
entityServer;
|
|
37
|
+
npcLifecycle;
|
|
38
38
|
pedServer;
|
|
39
39
|
hasher;
|
|
40
40
|
events;
|
|
@@ -42,15 +42,17 @@ let Npcs = class Npcs {
|
|
|
42
42
|
idByHandle = new Map();
|
|
43
43
|
idByNetId = new Map();
|
|
44
44
|
adapters;
|
|
45
|
-
constructor(world, entityServer, pedServer, hasher, events) {
|
|
45
|
+
constructor(world, entityServer, npcLifecycle, pedServer, hasher, events) {
|
|
46
46
|
this.world = world;
|
|
47
47
|
this.entityServer = entityServer;
|
|
48
|
+
this.npcLifecycle = npcLifecycle;
|
|
48
49
|
this.pedServer = pedServer;
|
|
49
50
|
this.hasher = hasher;
|
|
50
51
|
this.events = events;
|
|
51
52
|
this.adapters = {
|
|
52
53
|
entityServer: this.entityServer,
|
|
53
54
|
pedServer: this.pedServer,
|
|
55
|
+
npcLifecycle: this.npcLifecycle,
|
|
54
56
|
};
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
@@ -67,7 +69,7 @@ let Npcs = class Npcs {
|
|
|
67
69
|
* @returns An object containing a `result` (success/error) and the created `npc` on success.
|
|
68
70
|
*/
|
|
69
71
|
async create(options) {
|
|
70
|
-
const { id, model, position, heading = 0, networked = true,
|
|
72
|
+
const { id, model, position, heading = 0, networked = true, routingBucket = 0, persistent = false, metadata, } = options;
|
|
71
73
|
const npcId = id ?? uuid();
|
|
72
74
|
if (this.npcById.has(npcId)) {
|
|
73
75
|
return {
|
|
@@ -78,27 +80,29 @@ let Npcs = class Npcs {
|
|
|
78
80
|
};
|
|
79
81
|
}
|
|
80
82
|
const modelHash = typeof model === 'string' ? this.hasher.getHashKey(model) : model;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
let lifecycleResult;
|
|
84
|
+
try {
|
|
85
|
+
lifecycleResult = await Promise.resolve(this.npcLifecycle.create({
|
|
86
|
+
model: typeof model === 'string' ? model : String(model),
|
|
87
|
+
modelHash,
|
|
88
|
+
position,
|
|
89
|
+
heading,
|
|
90
|
+
networked,
|
|
91
|
+
routingBucket,
|
|
92
|
+
persistent,
|
|
93
|
+
}));
|
|
89
94
|
}
|
|
90
|
-
|
|
91
|
-
if (!spawnOk) {
|
|
92
|
-
this.safeDeleteHandle(handle);
|
|
95
|
+
catch (error) {
|
|
93
96
|
return {
|
|
94
97
|
result: {
|
|
95
98
|
success: false,
|
|
96
|
-
error:
|
|
99
|
+
error: error instanceof Error ? error.message : 'Failed to create NPC ped entity',
|
|
97
100
|
},
|
|
98
101
|
};
|
|
99
102
|
}
|
|
103
|
+
const handle = lifecycleResult.handle;
|
|
100
104
|
const resolvedModel = typeof model === 'string' ? model : modelHash.toString();
|
|
101
|
-
const netId =
|
|
105
|
+
const netId = lifecycleResult.netId;
|
|
102
106
|
const session = {
|
|
103
107
|
id: npcId,
|
|
104
108
|
handle,
|
|
@@ -110,12 +114,6 @@ let Npcs = class Npcs {
|
|
|
110
114
|
createdAt: Date.now(),
|
|
111
115
|
};
|
|
112
116
|
const npc = new NPC(session, this.adapters);
|
|
113
|
-
if (routingBucket !== 0) {
|
|
114
|
-
npc.setRoutingBucket(routingBucket);
|
|
115
|
-
}
|
|
116
|
-
if (persistent) {
|
|
117
|
-
this.entityServer.setOrphanMode(handle, 2);
|
|
118
|
-
}
|
|
119
117
|
if (metadata) {
|
|
120
118
|
for (const [key, value] of Object.entries(metadata)) {
|
|
121
119
|
npc.setMeta(key, value);
|
|
@@ -410,10 +408,6 @@ let Npcs = class Npcs {
|
|
|
410
408
|
serializeAll() {
|
|
411
409
|
return Array.from(this.npcById.values()).map((npc) => npc.serialize());
|
|
412
410
|
}
|
|
413
|
-
resolveNetId(handle) {
|
|
414
|
-
const netId = this.pedServer.getNetworkIdFromEntity(handle);
|
|
415
|
-
return netId > 0 ? netId : undefined;
|
|
416
|
-
}
|
|
417
411
|
removeFromRegistry(npc) {
|
|
418
412
|
this.npcById.delete(npc.npcId);
|
|
419
413
|
this.idByHandle.delete(npc.getHandle());
|
|
@@ -422,44 +416,20 @@ let Npcs = class Npcs {
|
|
|
422
416
|
}
|
|
423
417
|
this.world.remove(npc.id);
|
|
424
418
|
}
|
|
425
|
-
safeDeleteHandle(handle) {
|
|
426
|
-
try {
|
|
427
|
-
if (this.entityServer.doesExist(handle)) {
|
|
428
|
-
this.pedServer.delete(handle);
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
catch (error) {
|
|
432
|
-
coreLogger.warn('Failed to cleanup NPC handle after spawn failure', {
|
|
433
|
-
handle,
|
|
434
|
-
error: error instanceof Error ? error.message : String(error),
|
|
435
|
-
});
|
|
436
|
-
}
|
|
437
|
-
}
|
|
438
|
-
async waitForSpawn(handle, timeoutMs = DEFAULT_SPAWN_TIMEOUT_MS) {
|
|
439
|
-
const startedAt = Date.now();
|
|
440
|
-
while (!this.entityServer.doesExist(handle)) {
|
|
441
|
-
if (Date.now() - startedAt > timeoutMs) {
|
|
442
|
-
return false;
|
|
443
|
-
}
|
|
444
|
-
await sleep(0);
|
|
445
|
-
}
|
|
446
|
-
return true;
|
|
447
|
-
}
|
|
448
419
|
};
|
|
449
420
|
Npcs = __decorate([
|
|
450
421
|
injectable(),
|
|
451
422
|
__param(0, inject(WorldContext)),
|
|
452
423
|
__param(1, inject(IEntityServer)),
|
|
453
|
-
__param(2, inject(
|
|
454
|
-
__param(3, inject(
|
|
455
|
-
__param(4, inject(
|
|
424
|
+
__param(2, inject(INpcLifecycleServer)),
|
|
425
|
+
__param(3, inject(IPedServer)),
|
|
426
|
+
__param(4, inject(IHasher)),
|
|
427
|
+
__param(5, inject(EventsAPI)),
|
|
456
428
|
__metadata("design:paramtypes", [WorldContext,
|
|
457
429
|
IEntityServer,
|
|
430
|
+
INpcLifecycleServer,
|
|
458
431
|
IPedServer,
|
|
459
432
|
IHasher,
|
|
460
433
|
EventsAPI])
|
|
461
434
|
], Npcs);
|
|
462
435
|
export { Npcs };
|
|
463
|
-
function sleep(ms) {
|
|
464
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
465
|
-
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
1
2
|
import { VehicleModificationOptions, VehicleMods } from '../types/vehicle.types';
|
|
2
3
|
import { Vehicles } from './vehicles.api';
|
|
3
4
|
/**
|
|
@@ -14,7 +15,8 @@ import { Vehicles } from './vehicles.api';
|
|
|
14
15
|
*/
|
|
15
16
|
export declare class VehicleModification {
|
|
16
17
|
private readonly vehicleService;
|
|
17
|
-
|
|
18
|
+
private readonly events;
|
|
19
|
+
constructor(vehicleService: Vehicles, events: EventsAPI<'server'>);
|
|
18
20
|
/**
|
|
19
21
|
* Applies modifications to a vehicle with validation.
|
|
20
22
|
*
|
|
@@ -11,6 +11,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'tsyringe';
|
|
14
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
14
15
|
import { coreLogger } from '../../../kernel/logger';
|
|
15
16
|
import { Vehicles } from './vehicles.api';
|
|
16
17
|
/**
|
|
@@ -27,8 +28,10 @@ import { Vehicles } from './vehicles.api';
|
|
|
27
28
|
*/
|
|
28
29
|
let VehicleModification = class VehicleModification {
|
|
29
30
|
vehicleService;
|
|
30
|
-
|
|
31
|
+
events;
|
|
32
|
+
constructor(vehicleService, events) {
|
|
31
33
|
this.vehicleService = vehicleService;
|
|
34
|
+
this.events = events;
|
|
32
35
|
}
|
|
33
36
|
/**
|
|
34
37
|
* Applies modifications to a vehicle with validation.
|
|
@@ -70,7 +73,7 @@ let VehicleModification = class VehicleModification {
|
|
|
70
73
|
requestedBy,
|
|
71
74
|
mods: Object.keys(validatedMods),
|
|
72
75
|
});
|
|
73
|
-
|
|
76
|
+
this.events.emit('opencore:vehicle:modified', 'all', {
|
|
74
77
|
networkId,
|
|
75
78
|
mods: validatedMods,
|
|
76
79
|
});
|
|
@@ -197,7 +200,7 @@ let VehicleModification = class VehicleModification {
|
|
|
197
200
|
windowTint: 0,
|
|
198
201
|
};
|
|
199
202
|
coreLogger.info('Vehicle modifications reset', { networkId, requestedBy });
|
|
200
|
-
|
|
203
|
+
this.events.emit('opencore:vehicle:modified', 'all', {
|
|
201
204
|
networkId,
|
|
202
205
|
mods: defaultMods,
|
|
203
206
|
});
|
|
@@ -303,6 +306,8 @@ let VehicleModification = class VehicleModification {
|
|
|
303
306
|
VehicleModification = __decorate([
|
|
304
307
|
injectable(),
|
|
305
308
|
__param(0, inject(Vehicles)),
|
|
306
|
-
|
|
309
|
+
__param(1, inject(EventsAPI)),
|
|
310
|
+
__metadata("design:paramtypes", [Vehicles,
|
|
311
|
+
EventsAPI])
|
|
307
312
|
], VehicleModification);
|
|
308
313
|
export { VehicleModification };
|
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
2
|
-
import { IPlatformCapabilities } from '../../../adapters/contracts/IPlatformCapabilities';
|
|
3
2
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
4
3
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
5
|
-
import {
|
|
4
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
6
5
|
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
6
|
+
import { Vector3 } from '../../../kernel/utils/vector3';
|
|
7
|
+
import { Player } from '../entities/player';
|
|
7
8
|
import { Vehicle } from '../entities/vehicle';
|
|
8
9
|
import { SerializedVehicleData, VehicleCreateOptions, VehicleSpawnResult } from '../types/vehicle.types';
|
|
9
10
|
import { Players } from '../ports/players.api-port';
|
|
11
|
+
export interface VehicleCreateForPlayerOptions extends Omit<VehicleCreateOptions, 'position' | 'ownership'> {
|
|
12
|
+
offset?: Vector3;
|
|
13
|
+
seatIndex?: number;
|
|
14
|
+
}
|
|
10
15
|
/**
|
|
11
16
|
* Server-side service for managing vehicle entities.
|
|
12
17
|
*
|
|
@@ -24,9 +29,8 @@ export declare class Vehicles {
|
|
|
24
29
|
private readonly playerDirectory;
|
|
25
30
|
private readonly entityServer;
|
|
26
31
|
private readonly vehicleServer;
|
|
27
|
-
private readonly
|
|
32
|
+
private readonly vehicleLifecycle;
|
|
28
33
|
private readonly hasher;
|
|
29
|
-
private readonly playerServer;
|
|
30
34
|
private readonly events;
|
|
31
35
|
/**
|
|
32
36
|
* Internal registry of all managed vehicles indexed by Network ID
|
|
@@ -36,7 +40,7 @@ export declare class Vehicles {
|
|
|
36
40
|
* Cached adapters bundle for Vehicle instances
|
|
37
41
|
*/
|
|
38
42
|
private readonly vehicleAdapters;
|
|
39
|
-
constructor(playerDirectory: Players, entityServer: IEntityServer, vehicleServer: IVehicleServer,
|
|
43
|
+
constructor(playerDirectory: Players, entityServer: IEntityServer, vehicleServer: IVehicleServer, vehicleLifecycle: IVehicleLifecycleServer, hasher: IHasher, events: EventsAPI<'server'>);
|
|
40
44
|
/**
|
|
41
45
|
* Creates a new vehicle on the server.
|
|
42
46
|
*
|
|
@@ -54,7 +58,9 @@ export declare class Vehicles {
|
|
|
54
58
|
* @param options - Vehicle creation options
|
|
55
59
|
* @returns Spawn result
|
|
56
60
|
*/
|
|
57
|
-
createForPlayer(
|
|
61
|
+
createForPlayer(playerOrClientID: Player | number, options: VehicleCreateForPlayerOptions): Promise<VehicleSpawnResult>;
|
|
62
|
+
private resolvePlayer;
|
|
63
|
+
private getSpawnPositionForPlayer;
|
|
58
64
|
/**
|
|
59
65
|
* Retrieves a vehicle by its Network ID.
|
|
60
66
|
*
|
|
@@ -12,14 +12,14 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
12
12
|
};
|
|
13
13
|
import { inject, injectable } from 'tsyringe';
|
|
14
14
|
import { IHasher } from '../../../adapters/contracts/IHasher';
|
|
15
|
-
import { IPlatformCapabilities, PlatformFeatures, } from '../../../adapters/contracts/IPlatformCapabilities';
|
|
16
15
|
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
17
16
|
import { IEntityServer } from '../../../adapters/contracts/server/IEntityServer';
|
|
18
|
-
import {
|
|
17
|
+
import { IVehicleLifecycleServer } from '../../../adapters/contracts/server/vehicle-lifecycle/IVehicleLifecycleServer';
|
|
19
18
|
import { IVehicleServer } from '../../../adapters/contracts/server/IVehicleServer';
|
|
20
19
|
import { coreLogger } from '../../../kernel/logger';
|
|
21
20
|
import { Vehicle } from '../entities/vehicle';
|
|
22
21
|
import { Players } from '../ports/players.api-port';
|
|
22
|
+
const DEFAULT_PLAYER_VEHICLE_OFFSET = { x: 0, y: 3, z: 0 };
|
|
23
23
|
/**
|
|
24
24
|
* Server-side service for managing vehicle entities.
|
|
25
25
|
*
|
|
@@ -37,9 +37,8 @@ let Vehicles = class Vehicles {
|
|
|
37
37
|
playerDirectory;
|
|
38
38
|
entityServer;
|
|
39
39
|
vehicleServer;
|
|
40
|
-
|
|
40
|
+
vehicleLifecycle;
|
|
41
41
|
hasher;
|
|
42
|
-
playerServer;
|
|
43
42
|
events;
|
|
44
43
|
/**
|
|
45
44
|
* Internal registry of all managed vehicles indexed by Network ID
|
|
@@ -49,13 +48,12 @@ let Vehicles = class Vehicles {
|
|
|
49
48
|
* Cached adapters bundle for Vehicle instances
|
|
50
49
|
*/
|
|
51
50
|
vehicleAdapters;
|
|
52
|
-
constructor(playerDirectory, entityServer, vehicleServer,
|
|
51
|
+
constructor(playerDirectory, entityServer, vehicleServer, vehicleLifecycle, hasher, events) {
|
|
53
52
|
this.playerDirectory = playerDirectory;
|
|
54
53
|
this.entityServer = entityServer;
|
|
55
54
|
this.vehicleServer = vehicleServer;
|
|
56
|
-
this.
|
|
55
|
+
this.vehicleLifecycle = vehicleLifecycle;
|
|
57
56
|
this.hasher = hasher;
|
|
58
|
-
this.playerServer = playerServer;
|
|
59
57
|
this.events = events;
|
|
60
58
|
this.vehicleAdapters = {
|
|
61
59
|
entityServer: this.entityServer,
|
|
@@ -75,20 +73,13 @@ let Vehicles = class Vehicles {
|
|
|
75
73
|
try {
|
|
76
74
|
const { model, position, heading = 0, plate, primaryColor, secondaryColor, mods, persistent = false, ownership, metadata, routingBucket = 0, locked = false, fuel = 100.0, } = options;
|
|
77
75
|
const modelHash = typeof model === 'string' ? this.hasher.getHashKey(model) : model;
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
success: false,
|
|
86
|
-
error: `Server vehicle creation is disabled for profile '${profile}'`,
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
const vehicleType = this.platformCapabilities.getConfig('defaultVehicleType') ?? 'automobile';
|
|
90
|
-
const handle = this.vehicleServer.createServerSetter(modelHash, vehicleType, position.x, position.y, position.z, heading);
|
|
91
|
-
if (!handle || handle === 0) {
|
|
76
|
+
const { handle, networkId } = await this.vehicleLifecycle.create({
|
|
77
|
+
model: typeof model === 'string' ? model : String(model),
|
|
78
|
+
modelHash,
|
|
79
|
+
position,
|
|
80
|
+
heading,
|
|
81
|
+
});
|
|
82
|
+
if (!Number.isFinite(handle) || handle < 0) {
|
|
92
83
|
coreLogger.error('Failed to create vehicle', { model, position });
|
|
93
84
|
return {
|
|
94
85
|
networkId: 0,
|
|
@@ -100,7 +91,6 @@ let Vehicles = class Vehicles {
|
|
|
100
91
|
while (!this.entityServer.doesExist(handle)) {
|
|
101
92
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
102
93
|
}
|
|
103
|
-
const networkId = this.vehicleServer.getNetworkIdFromEntity(handle);
|
|
104
94
|
const vehicleOwnership = {
|
|
105
95
|
clientID: ownership?.clientID,
|
|
106
96
|
accountID: ownership?.accountID,
|
|
@@ -129,10 +119,14 @@ let Vehicles = class Vehicles {
|
|
|
129
119
|
vehicle.setRoutingBucket(routingBucket);
|
|
130
120
|
}
|
|
131
121
|
this.vehiclesByNetworkId.set(networkId, vehicle);
|
|
122
|
+
let ownershipComp = vehicleOwnership.type;
|
|
123
|
+
if (vehicleOwnership.type === 'player') {
|
|
124
|
+
ownershipComp = `${vehicleOwnership.type}:${ownership?.clientID}`;
|
|
125
|
+
}
|
|
132
126
|
coreLogger.info('Vehicle created', {
|
|
133
127
|
networkId,
|
|
134
128
|
model,
|
|
135
|
-
ownership:
|
|
129
|
+
ownership: ownershipComp,
|
|
136
130
|
persistent,
|
|
137
131
|
totalVehicles: this.vehiclesByNetworkId.size,
|
|
138
132
|
});
|
|
@@ -163,8 +157,8 @@ let Vehicles = class Vehicles {
|
|
|
163
157
|
* @param options - Vehicle creation options
|
|
164
158
|
* @returns Spawn result
|
|
165
159
|
*/
|
|
166
|
-
async createForPlayer(
|
|
167
|
-
const player = this.
|
|
160
|
+
async createForPlayer(playerOrClientID, options) {
|
|
161
|
+
const player = this.resolvePlayer(playerOrClientID);
|
|
168
162
|
if (!player) {
|
|
169
163
|
return {
|
|
170
164
|
networkId: 0,
|
|
@@ -174,19 +168,42 @@ let Vehicles = class Vehicles {
|
|
|
174
168
|
};
|
|
175
169
|
}
|
|
176
170
|
const ownership = {
|
|
177
|
-
clientID,
|
|
171
|
+
clientID: player.clientID,
|
|
178
172
|
accountID: player.accountID,
|
|
179
173
|
type: 'player',
|
|
180
174
|
};
|
|
175
|
+
const spawnPosition = this.getSpawnPositionForPlayer(player, options.offset);
|
|
176
|
+
const spawnHeading = options.heading ?? player.getHeading();
|
|
181
177
|
const result = await this.create({
|
|
182
178
|
...options,
|
|
179
|
+
position: spawnPosition,
|
|
180
|
+
heading: spawnHeading,
|
|
183
181
|
ownership,
|
|
184
182
|
});
|
|
185
183
|
if (result.success) {
|
|
186
|
-
|
|
184
|
+
const seatIndex = options.seatIndex ?? -1;
|
|
185
|
+
await Promise.resolve(this.vehicleLifecycle.warpPlayerIntoVehicle({
|
|
186
|
+
playerSrc: player.clientID.toString(),
|
|
187
|
+
networkId: result.networkId,
|
|
188
|
+
seatIndex,
|
|
189
|
+
}));
|
|
187
190
|
}
|
|
188
191
|
return result;
|
|
189
192
|
}
|
|
193
|
+
resolvePlayer(playerOrClientID) {
|
|
194
|
+
return typeof playerOrClientID === 'number'
|
|
195
|
+
? this.playerDirectory.getByClient(playerOrClientID)
|
|
196
|
+
: playerOrClientID;
|
|
197
|
+
}
|
|
198
|
+
getSpawnPositionForPlayer(player, offset = DEFAULT_PLAYER_VEHICLE_OFFSET) {
|
|
199
|
+
const position = player.getPosition();
|
|
200
|
+
const headingRadians = (player.getHeading() * Math.PI) / 180;
|
|
201
|
+
return {
|
|
202
|
+
x: position.x + Math.sin(headingRadians) * offset.y + Math.cos(headingRadians) * offset.x,
|
|
203
|
+
y: position.y + Math.cos(headingRadians) * offset.y - Math.sin(headingRadians) * offset.x,
|
|
204
|
+
z: position.z + offset.z,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
190
207
|
/**
|
|
191
208
|
* Retrieves a vehicle by its Network ID.
|
|
192
209
|
*
|
|
@@ -318,10 +335,7 @@ let Vehicles = class Vehicles {
|
|
|
318
335
|
const player = this.playerDirectory.getByClient(clientID);
|
|
319
336
|
if (!player)
|
|
320
337
|
return false;
|
|
321
|
-
const
|
|
322
|
-
if (!playerPed || playerPed === 0)
|
|
323
|
-
return false;
|
|
324
|
-
const playerPos = this.entityServer.getCoords(playerPed);
|
|
338
|
+
const playerPos = player.getPosition();
|
|
325
339
|
const vehiclePos = vehicle.position;
|
|
326
340
|
const distance = Math.sqrt((playerPos.x - vehiclePos.x) ** 2 +
|
|
327
341
|
(playerPos.y - vehiclePos.y) ** 2 +
|
|
@@ -371,16 +385,14 @@ Vehicles = __decorate([
|
|
|
371
385
|
__param(0, inject(Players)),
|
|
372
386
|
__param(1, inject(IEntityServer)),
|
|
373
387
|
__param(2, inject(IVehicleServer)),
|
|
374
|
-
__param(3, inject(
|
|
388
|
+
__param(3, inject(IVehicleLifecycleServer)),
|
|
375
389
|
__param(4, inject(IHasher)),
|
|
376
|
-
__param(5, inject(
|
|
377
|
-
__param(6, inject(EventsAPI)),
|
|
390
|
+
__param(5, inject(EventsAPI)),
|
|
378
391
|
__metadata("design:paramtypes", [Players,
|
|
379
392
|
IEntityServer,
|
|
380
393
|
IVehicleServer,
|
|
381
|
-
|
|
394
|
+
IVehicleLifecycleServer,
|
|
382
395
|
IHasher,
|
|
383
|
-
IPlayerServer,
|
|
384
396
|
EventsAPI])
|
|
385
397
|
], Vehicles);
|
|
386
398
|
export { Vehicles };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import { IEngineEvents } from '../../adapters';
|
|
2
|
-
import {
|
|
1
|
+
import { IEngineEvents, IPlatformContext } from '../../adapters';
|
|
2
|
+
import { IExports } from '../../adapters/contracts/IExports';
|
|
3
3
|
import { EventsAPI } from '../../adapters/contracts/transport/events.api';
|
|
4
4
|
import { GLOBAL_CONTAINER, MetadataScanner } from '../../kernel/di/index';
|
|
5
5
|
import { getLogLevel, LogLevelLabels, loggers } from '../../kernel/logger';
|
|
6
|
+
import { createNodeServerAdapter } from './adapter/node-server-adapter';
|
|
7
|
+
import { installServerAdapter } from './adapter/registry';
|
|
6
8
|
import { PrincipalProviderContract } from './contracts/index';
|
|
7
9
|
import { getServerBinaryServiceRegistry } from './decorators/binaryService';
|
|
8
10
|
import { getServerControllerRegistry } from './decorators/controller';
|
|
@@ -84,9 +86,13 @@ export async function initServer(options, plugins) {
|
|
|
84
86
|
mode: ctx.mode,
|
|
85
87
|
scope: getFrameworkModeScope(ctx.mode),
|
|
86
88
|
});
|
|
87
|
-
// Register platform-specific capabilities
|
|
88
|
-
await
|
|
89
|
-
|
|
89
|
+
// Register platform-specific capabilities through the selected server adapter.
|
|
90
|
+
await installServerAdapter(options.adapter ?? createNodeServerAdapter());
|
|
91
|
+
const platformContext = GLOBAL_CONTAINER.resolve(IPlatformContext);
|
|
92
|
+
loggers.bootstrap.debug('Loading server Adapter ', {
|
|
93
|
+
adapter: options.adapter?.name ?? 'node',
|
|
94
|
+
game: platformContext.gameProfile,
|
|
95
|
+
});
|
|
90
96
|
const dependenciesToWaitFor = [];
|
|
91
97
|
if (ctx.mode === 'RESOURCE') {
|
|
92
98
|
loggers.bootstrap.info(`[WAIT] Standing by for Core '${ctx.coreResourceName}' to be ready...`);
|
|
@@ -183,6 +189,7 @@ function createCoreDependency(coreName) {
|
|
|
183
189
|
clearInterval(pollingInterval);
|
|
184
190
|
};
|
|
185
191
|
// 1. Register listener FIRST (before any requests)
|
|
192
|
+
const exportsService = GLOBAL_CONTAINER.resolve(IExports);
|
|
186
193
|
const onReady = () => {
|
|
187
194
|
if (!resolved) {
|
|
188
195
|
loggers.bootstrap.debug(`Core '${coreName}' detected via 'core:ready' event!`);
|
|
@@ -197,8 +204,9 @@ function createCoreDependency(coreName) {
|
|
|
197
204
|
if (resolved)
|
|
198
205
|
return;
|
|
199
206
|
try {
|
|
200
|
-
const
|
|
201
|
-
|
|
207
|
+
const isReady = exportsService
|
|
208
|
+
.getResource(coreName)
|
|
209
|
+
?.isCoreReady?.();
|
|
202
210
|
loggers.bootstrap.debug(`Polling isCoreReady export: ${isReady}`);
|
|
203
211
|
if (isReady === true) {
|
|
204
212
|
loggers.bootstrap.debug(`Core '${coreName}' detected via isCoreReady export!`);
|
|
@@ -360,7 +360,7 @@ __decorate([
|
|
|
360
360
|
__metadata("design:returntype", Array)
|
|
361
361
|
], ChannelExportController.prototype, "getAllChannels", null);
|
|
362
362
|
__decorate([
|
|
363
|
-
OnRuntimeEvent(
|
|
363
|
+
OnRuntimeEvent(RUNTIME_EVENTS.serverResourceStop),
|
|
364
364
|
__metadata("design:type", Function),
|
|
365
365
|
__metadata("design:paramtypes", [String]),
|
|
366
366
|
__metadata("design:returntype", void 0)
|
|
@@ -371,3 +371,4 @@ ChannelExportController = __decorate([
|
|
|
371
371
|
Players])
|
|
372
372
|
], ChannelExportController);
|
|
373
373
|
export { ChannelExportController };
|
|
374
|
+
import { RUNTIME_EVENTS } from '../../../adapters/contracts/runtime';
|
|
@@ -267,7 +267,7 @@ let CommandExportController = class CommandExportController {
|
|
|
267
267
|
if (!allowed) {
|
|
268
268
|
const errorMessage = message || `Rate limit exceeded for command: ${commandName}`;
|
|
269
269
|
if (onExceed === 'KICK') {
|
|
270
|
-
|
|
270
|
+
player.kick(errorMessage);
|
|
271
271
|
}
|
|
272
272
|
throw new SecurityError(onExceed || 'LOG', errorMessage, { clientID: player.clientID });
|
|
273
273
|
}
|
|
@@ -13,6 +13,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
|
13
13
|
import { inject } from 'tsyringe';
|
|
14
14
|
import { Controller } from '../decorators/controller';
|
|
15
15
|
import { Export } from '../decorators/export';
|
|
16
|
+
import { serializeServerPlayerData } from '../adapter/serialization';
|
|
16
17
|
import { Players } from '../ports/players.api-port';
|
|
17
18
|
/**
|
|
18
19
|
* Exports player directory functionality for RESOURCE mode access.
|
|
@@ -37,18 +38,18 @@ let PlayerExportController = class PlayerExportController {
|
|
|
37
38
|
}
|
|
38
39
|
getPlayerData(clientID) {
|
|
39
40
|
const player = this.playerService.getByClient(clientID);
|
|
40
|
-
return player
|
|
41
|
+
return player ? serializeServerPlayerData(player) : null;
|
|
41
42
|
}
|
|
42
43
|
getManyData(clientIds) {
|
|
43
|
-
return this.playerService.getMany(clientIds).map((
|
|
44
|
+
return this.playerService.getMany(clientIds).map((player) => serializeServerPlayerData(player));
|
|
44
45
|
}
|
|
45
46
|
getAllPlayersData() {
|
|
46
|
-
return this.playerService.getAll().map((
|
|
47
|
+
return this.playerService.getAll().map((player) => serializeServerPlayerData(player));
|
|
47
48
|
}
|
|
48
49
|
getPlayerByAccountId(accountId) {
|
|
49
50
|
const players = this.playerService.getAll();
|
|
50
51
|
const player = players.find((p) => p.accountID === accountId);
|
|
51
|
-
return player
|
|
52
|
+
return player ? serializeServerPlayerData(player) : null;
|
|
52
53
|
}
|
|
53
54
|
getPlayerCount() {
|
|
54
55
|
return this.playerService.getAll().length;
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
11
11
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
12
12
|
};
|
|
13
|
+
import { RUNTIME_EVENTS } from '../../../adapters/contracts/runtime';
|
|
13
14
|
import { inject } from 'tsyringe';
|
|
14
15
|
import { loggers } from '../../../kernel/logger';
|
|
15
16
|
import { emitFrameworkEvent } from '../bus/internal-event.bus';
|
|
@@ -60,13 +61,13 @@ let SessionController = class SessionController {
|
|
|
60
61
|
}
|
|
61
62
|
};
|
|
62
63
|
__decorate([
|
|
63
|
-
OnRuntimeEvent(
|
|
64
|
+
OnRuntimeEvent(RUNTIME_EVENTS.playerJoining),
|
|
64
65
|
__metadata("design:type", Function),
|
|
65
66
|
__metadata("design:paramtypes", [Number, Object]),
|
|
66
67
|
__metadata("design:returntype", Promise)
|
|
67
68
|
], SessionController.prototype, "onPlayerJoining", null);
|
|
68
69
|
__decorate([
|
|
69
|
-
OnRuntimeEvent(
|
|
70
|
+
OnRuntimeEvent(RUNTIME_EVENTS.playerDropped),
|
|
70
71
|
__metadata("design:type", Function),
|
|
71
72
|
__metadata("design:paramtypes", [Number]),
|
|
72
73
|
__metadata("design:returntype", Promise)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { EventsAPI } from '../../../adapters/contracts/transport/events.api';
|
|
1
2
|
import { Player } from '../entities/player';
|
|
2
3
|
import { Vehicles } from '../apis/vehicles.api';
|
|
3
4
|
/**
|
|
@@ -8,7 +9,8 @@ import { Vehicles } from '../apis/vehicles.api';
|
|
|
8
9
|
*/
|
|
9
10
|
export declare class VehicleController {
|
|
10
11
|
private readonly vehicleService;
|
|
11
|
-
|
|
12
|
+
private readonly events;
|
|
13
|
+
constructor(vehicleService: Vehicles, events: EventsAPI<'server'>);
|
|
12
14
|
/**
|
|
13
15
|
* Handles client request to get vehicle data.
|
|
14
16
|
*/
|