forge/arma/server/addons/store/XEH_preInit.sqf

60 lines
2.1 KiB
Plaintext

#include "script_component.hpp"
PREP_RECOMPILE_START;
#include "XEH_PREP.hpp"
PREP_RECOMPILE_END;
// private _category = [QUOTE(MOD_NAME), LLSTRING(displayName)];
[QGVAR(requestCategory), {
params [["_uid", "", [""]], ["_category", "", [""]]];
if (_uid isEqualTo "" || { _category isEqualTo "" }) exitWith {
diag_log "[FORGE:Server:Store] Invalid category request payload."
};
private _player = [_uid] call EFUNC(common,getPlayer);
if (_player isEqualTo objNull) exitWith {};
if (isNil QGVAR(StoreCatalogService)) exitWith {
diag_log "[FORGE:Server:Store] Store catalog service is unavailable."
};
private _result = GVAR(StoreCatalogService) call ["buildCategoryResponse", [_category]];
[CRPC(store,responseCategory), [_result], _player] call CFUNC(targetEvent);
}] call CFUNC(addEventHandler);
[QGVAR(requestHydrateStore), {
params [["_uid", "", [""]], ["_bridgeEvent", "store::hydrate", [""]]];
if (_uid isEqualTo "") exitWith {
diag_log "[FORGE:Server:Store] Invalid hydrate request payload."
};
if !(_bridgeEvent in ["store::hydrate", "store::config::hydrate"]) then {
_bridgeEvent = "store::hydrate";
};
private _player = [_uid] call EFUNC(common,getPlayer);
if (_player isEqualTo objNull) exitWith {};
private _payload = GVAR(StorefrontStore) call ["buildHydratePayload", [_uid]];
if (_payload isEqualTo createHashMap) exitWith {};
[CRPC(store,responseHydrateStore), [_payload, _bridgeEvent], _player] call CFUNC(targetEvent);
}] call CFUNC(addEventHandler);
[QGVAR(requestCheckout), {
params [["_uid", "", [""]], ["_payloadJson", "", [""]]];
if (_uid isEqualTo "" || { _payloadJson isEqualTo "" }) exitWith {
diag_log "[FORGE:Server:Store] Invalid checkout request payload."
};
private _player = [_uid] call EFUNC(common,getPlayer);
if (_player isEqualTo objNull) exitWith {};
private _result = GVAR(StorefrontStore) call ["checkout", [_uid, _player, _payloadJson]];
[CRPC(store,responseCheckout), [_result], _player] call CFUNC(targetEvent);
}] call CFUNC(addEventHandler);