diff --git a/@AttendanceTracker/addons/AttendanceTracker/functions/fn_eventHandlers.sqf b/@AttendanceTracker/addons/AttendanceTracker/functions/fn_eventHandlers.sqf index 7bacdb6..8c1bf8f 100644 --- a/@AttendanceTracker/addons/AttendanceTracker/functions/fn_eventHandlers.sqf +++ b/@AttendanceTracker/addons/AttendanceTracker/functions/fn_eventHandlers.sqf @@ -51,7 +51,7 @@ _args call attendanceTracker_fnc_writeConnect; }, - missionNamespace getVariable ["AttendanceTracker_" + "dbupdateintervalseconds", 300], + missionNamespace getVariable ["AttendanceTracker_" + "dbupdateintervalseconds", 90], [ "Server", _playerID, @@ -141,7 +141,10 @@ private _playerID = _args select 1; private _playerUID = _args select 2; private _userInfo = getUserInfo _playerID; - private _clientStateNumber = _userInfo select 6; + private _clientStateNumber = 0; + if (!isNil "_userInfo" && {count _userInfo >= 7}) then { + _clientStateNumber = _userInfo select 6; + }; if (_clientStateNumber < 6) exitWith { [format ["(EventHandler) PlayerConnected: %1 (UID) is no longer connected to the mission, exiting CBA PFH", _playerID], "DEBUG"] call attendanceTracker_fnc_log; _args call attendanceTracker_fnc_writeConnect; diff --git a/extension/main.go b/extension/main.go index 183d037..845ecd9 100644 --- a/extension/main.go +++ b/extension/main.go @@ -503,7 +503,7 @@ func writeAttendance(data string) { db.Where("player_id = ? AND player_uid = ? AND event_type = ?", event.PlayerId, event.PlayerUID, event.EventType).Order("join_time_utc desc").First(&attendance) if attendance.ID != 0 { // update disconnect time - row := db.Model(&attendance).Update("disconnect_time_utc", attendance.DisconnectTimeUTC) + row := db.Model(&attendance).Update("disconnect_time_utc", time.Now()) if row.Error != nil { writeLog(functionName, fmt.Sprintf(`["%s", "ERROR"]`, row.Error)) return @@ -513,7 +513,7 @@ func writeAttendance(data string) { } else { // insert new row event.JoinTimeUTC = time.Now() - row := db.Omit("MissionID").Create(&event) + row := db.Omit("MissionID").Omit("MissionHash").Create(&event) if row.Error != nil { writeLog(functionName, fmt.Sprintf(`["%s", "ERROR"]`, row.Error)) return