forge/arma/server/addons/locker/XEH_postInit.sqf
Jacob Schmidt 27c3c5e502 Route sync and notifications through event bus
- add EventBus-backed notification and sync requests with direct RPC fallback
- centralize org notification/sync dispatch and reuse notification helpers
- update economy, store, garage, locker, bank, and CAD flows to emit events
2026-05-15 20:17:19 -05:00

40 lines
1.3 KiB
Plaintext

#include "script_component.hpp"
call FUNC(initLocker);
if (isNil QEGVAR(common,EventBus)) then { call EFUNC(common,eventBus); };
if (isNil QGVAR(SyncEventTokens)) then {
private _sendLockerSync = {
params ["_event"];
private _uid = _event getOrDefault ["uid", ""];
private _patch = _event getOrDefault ["patch", createHashMap];
if (_uid isEqualTo "" || { _patch isEqualTo createHashMap }) exitWith {};
private _player = [_uid] call EFUNC(common,getPlayer);
if (isNull _player) exitWith {};
[CRPC(locker,responseSyncLocker), [_patch], _player] call CFUNC(targetEvent);
};
private _sendVASync = {
params ["_event"];
private _uid = _event getOrDefault ["uid", ""];
private _patch = _event getOrDefault ["patch", createHashMap];
if (_uid isEqualTo "" || { _patch isEqualTo createHashMap }) exitWith {};
private _player = [_uid] call EFUNC(common,getPlayer);
if (isNull _player) exitWith {};
[CRPC(locker,responseSyncVA), [_patch], _player] call CFUNC(targetEvent);
};
GVAR(SyncEventTokens) = [
EGVAR(common,EventBus) call ["on", ["locker.sync.requested", _sendLockerSync, "locker.sync"]],
EGVAR(common,EventBus) call ["on", ["locker.va.sync.requested", _sendVASync, "locker.va.sync"]]
];
};