client/addons/admin/functions/fnc_handleEvents.sqf

62 lines
1.8 KiB
Plaintext

#include "..\script_component.hpp"
/*
* Function: forge_client_admin_fnc_handleEvents
* Author: IDSolutions
*
* [Description]
* Handles events from the admin interface.
* This function listens for events from the admin interface
* and processes them accordingly.
*
* Arguments:
* 0: Event <STRING> - The event to handle
* 1: Data <ANY> - The data associated with the event
*
* Return Value:
* None
*
* Examples:
* ["EVENT_NAME", "DATA"] call forge_client_admin_fnc_handleEvents;
*
* Public: No - Called from admin dialog controls
*/
params ["_control", "_isConfirmDialog", "_message"];
diag_log format ["[FORGE: Admin] Received event: %1", _message];
private _messageParts = _message splitString ":";
private _event = _messageParts select 0;
private _data = _messageParts select 1;
switch (_event) do {
case "REQUEST_PLAYER_DATA": {
private _playerData = createHashMap;
private _playerList = [];
{
private _player = _x;
private _uid = getPlayerUID _player;
private _name = name _player;
private _paygrade = GETVAR(_player,FORGE_PayGrade,QUOTE(E1));
private _funds = GETVAR(_player,FORGE_BankBalance,0);
private _playerInfo = createHashMapFromArray [
["uid", _uid],
["name", _name],
["paygrade", _paygrade],
["funds", _funds],
["side", str (side _player)]
];
_playerList pushBack _playerInfo;
} forEach allPlayers;
_playerData set ["players", _playerList];
_control ctrlWebBrowserAction ["ExecJS", format ["handlePlayerDataRequest(%1)", (toJSON _playerList)]];
};
default {
diag_log format ["[FORGE: Admin] Unknown event: %1", _event];
};
};