params["_jammerObjectToRemove"];

if(!isServer) exitWith { diag_log "[RD501 Jammers] Attempted to remove jammers from a non server context"; };

private _jammers = localNamespace getVariable ["rd501_jammers_server",[]];;
{
	_x params["_jammer", "_radius", "_strength", "_active"];
	if(_jammer isEqualTo _jammerObjectToRemove) exitWith
	{
		diag_log format["[RD501 Jammers] Removed Jammer '%1'", [_jammer, _radius, _strength, _active]];
		_jammers set [_foreachIndex, []];
	}
} forEach (_jammers);
private _previousLength = count _jammers;
_jammers = _jammers - [[]];
private _currentLength = count _jammers;

if(_previousLength == _currentLength) exitWith {
	diag_log format["[RD501 Jammers] Specified jammer '%1' could not be found or was already removed", _jammerObjectToRemove];
};

localNamespace setVariable ["rd501_jammers_server",_jammers];

private _pfhHandle = localNamespace getVariable ["rd501_jammers_serverPFH", -1];
if(_pfhHandle isEqualTo -1) then {
	private _handle = [{
		_this call rd501_fnc_jammersServerPFH;
	}, 2, []] call CBA_fnc_addPerFrameHandler;
	localNamespace getVariable ["rd501_jammers_serverPFH", _handle];
	diag_log format["[RD501 Jammers] Started server PFH with handle '%1'", _handle];
	_handle
};