forge/arma/server/addons/store/XEH_preInit.sqf
Jacob Schmidt 19eae5acfa feat(store): enhance product card with tags and metadata
- Added support for displaying product tags in the UI, including side and faction labels.
- Updated CSS to style product tags for better visibility.
- Modified StoreView and store registry to include side and faction information for items.
- Enhanced server-side catalog service to filter items based on the player's side.
- Updated documentation to reflect changes in store behavior and metadata handling.
2026-06-09 17:25:28 -05:00

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, _player]];
[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);