bug fixes/debugging

This commit is contained in:
2023-06-17 22:34:52 -07:00
parent f6ff42e467
commit 8f971d9887
9 changed files with 36 additions and 24 deletions

Binary file not shown.

View File

@@ -21,7 +21,8 @@ class CfgFunctions {
class logMissionEvent {};
class logServerEvent {};
class timestamp {};
class getHash {};
class getMissionHash {};
class getWorldInfo {};
};
};
};

View File

@@ -61,13 +61,13 @@ addMissionEventHandler ["ExtensionCallback", {
};
case "writeMissionInfo": {
if (_response#0 == "MISSION_ID") then {
AttendanceTracker_missionId = parseNumber _response;
AttendanceTracker_missionId = parseNumber (_response#1);
};
};
case "writeAttendance": {
if (_response#0 == "ATT_LOG") then {
_response params ["_netId", "_rowId"];
((AttendanceTracker getVariable ["allUsers", createHashMap]) get _netId) set ["_rowID", _rowID];
((AttendanceTracker getVariable ["allUsers", createHashMap]) get _netId) append _rowID;
};
};
default {

View File

@@ -5,8 +5,14 @@
[format ["(EventHandler) OnUserConnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
private _userInfo = (getUserInfo _networkId);
if (isNil "_userInfo") exitWith {
[format ["(EventHandler) OnUserConnected: No user info found for %1", _networkId], "DEBUG"] call attendanceTracker_fnc_log;
};
_userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"];
if (_isHC) exitWith {};
if (_isHC) exitWith {
[format ["(EventHandler) OnUserConnected: %1 is HC, skipping", _playerID], "DEBUG"] call attendanceTracker_fnc_log;
};
(AttendanceTracker getVariable ["allUsers", createHashMap]) set [_networkId, _userInfo];
[
@@ -16,7 +22,7 @@
_profileName,
_steamName,
nil // send rowId on d/c only
] call attendanceTracker_fnc_writeAttendance;
] call attendanceTracker_fnc_logServerEvent;
}],
["OnUserDisconnected", {
@@ -25,10 +31,14 @@
[format ["(EventHandler) OnUserDisconnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
private _userInfo = (AttendanceTracker getVariable ["allUsers", createHashMap]) get _networkId;
if (isNil "_userInfo") exitWith {};
if (isNil "_userInfo") exitWith {
[format ["(EventHandler) OnUserDisconnected: No user info found for %1", _networkId], "DEBUG"] call attendanceTracker_fnc_log;
};
_userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit", "_rowId"];
if (_isHC) exitWith {};
if (_isHC) exitWith {
[format ["(EventHandler) OnUserDisconnected: %1 is HC, skipping", _playerID], "DEBUG"] call attendanceTracker_fnc_log;
};
[
"Server",
@@ -37,7 +47,7 @@
_profileName,
_steamName,
(if (!isNil "_rowId") then {_rowId} else {nil}) // send rowId on d/c only
] call attendanceTracker_fnc_writeAttendance;
] call attendanceTracker_fnc_logServerEvent;
}],
["PlayerConnected", {
params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"];
@@ -45,10 +55,14 @@
[format ["(EventHandler) PlayerConnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
private _userInfo = (getUserInfo _idstr);
if (isNil "_userInfo") exitWith {};
if (isNil "_userInfo") exitWith {
[format ["(EventHandler) PlayerConnected: No user info found for %1", _idstr], "DEBUG"] call attendanceTracker_fnc_log;
};
_userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"];
if (_isHC) exitWith {};
if (_isHC) exitWith {
[format ["(EventHandler) PlayerConnected: %1 is HC, skipping", _playerID], "DEBUG"] call attendanceTracker_fnc_log;
};
(AttendanceTracker getVariable ["allUsers", createHashMap]) set [_playerID, _userInfo];
[
@@ -74,7 +88,9 @@
};
_userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit", "_rowId"];
if (_isHC) exitWith {};
if (_isHC) exitWith {
[format ["(EventHandler) HandleDisconnect: %1 is HC, skipping", _playerID], "DEBUG"] call attendanceTracker_fnc_log;
};
[
"Mission",

View File

@@ -9,7 +9,7 @@ params [
private _hash = + (AttendanceTracker getVariable ["missionContext", createHashMap]);
_hash set ["networkId", netID player]
_hash set ["networkId", netID player];
_hash set ["eventType", _eventType];
_hash set ["playerId", _playerId];
_hash set ["playerUID", _playerUID];

View File

@@ -8,7 +8,7 @@ systemTimeUTC params [
"_day",
"_hour",
"_minute",
"_second"
"_second",
"_millisecond"
];

Binary file not shown.

View File

@@ -18,7 +18,6 @@ import (
"os"
"path"
"runtime"
"strconv"
"strings"
"time"
"unsafe"
@@ -38,6 +37,8 @@ var ATTENDANCE_TABLE string = "attendance"
var MISSIONS_TABLE string = "missions"
var WORLDS_TABLE string = "worlds"
// ! TODO make a hash to save key:netId from A3 value:rowId from join event
var ATConfig AttendanceTrackerConfig
type AttendanceTrackerConfig struct {
@@ -117,7 +118,7 @@ func getMissionHash() string {
hash := md5.Sum([]byte(time.Now().Format("2006-01-02 15:04:05")))
// convert to string
hashString := fmt.Sprintf("%x", hash)
hashString := fmt.Sprintf(`%x`, hash)
writeLog(functionName, fmt.Sprintf(`["Mission hash: %s", "INFO"]`, hashString))
return hashString
}
@@ -260,7 +261,7 @@ type MissionInfo struct {
func writeMissionInfo(missionInfo string) {
functionName := "writeMissionInfo"
writeLog(functionName, fmt.Sprintf(`["%s", "DEBUG"]`, missionInfo))
// writeLog(functionName, fmt.Sprintf(`["%s", "DEBUG"]`, missionInfo))
// missionInfo is json, parse it
var mi MissionInfo
fixedString := fixEscapeQuotes(trimQuotes(missionInfo))
@@ -271,15 +272,9 @@ func writeMissionInfo(missionInfo string) {
}
// get MySQL friendly datetime
// first, convert string to int
missionStartTime, err := strconv.ParseInt(mi.MissionStart, 10, 64)
if err != nil {
writeLog(functionName, fmt.Sprintf(`["%s", "ERROR"]`, err))
return
}
t := time.Unix(0, missionStartTime).Format("2006-01-02 15:04:05")
// write to log
writeLog(functionName, fmt.Sprintf(`["MissionName:%s BriefingName:%s MissionNameSource:%s OnLoadName:%s Author:%s ServerName:%s ServerProfile:%s MissionStart:%s MissionHash:%s", "INFO"]`, mi.MissionName, mi.BriefingName, mi.MissionNameSource, mi.OnLoadName, mi.Author, mi.ServerName, mi.ServerProfile, t, mi.MissionHash))
writeLog(functionName, fmt.Sprintf(`["MissionName:%s BriefingName:%s MissionNameSource:%s OnLoadName:%s Author:%s ServerName:%s ServerProfile:%s MissionStart:%s MissionHash:%s", "INFO"]`, mi.MissionName, mi.BriefingName, mi.MissionNameSource, mi.OnLoadName, mi.Author, mi.ServerName, mi.ServerProfile, mi.MissionStart, mi.MissionHash))
// write to database
// every mission is unique, so insert it