bugfixes, track playerId (directplay id, unique per session)

This commit is contained in:
2023-04-29 08:08:04 -07:00
parent 811ccdf3b7
commit edd1c3a82b
8 changed files with 37 additions and 14 deletions

View File

@@ -1,24 +1,29 @@
[ [
["OnUserConnected", { ["OnUserConnected", {
params ["_networkId", "_clientStateNumber", "_clientState"]; params ["_networkId", "_clientStateNumber", "_clientState"];
[format ["(EventHandler) OnUserConnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
private _userInfo = (getUserInfo _networkId); private _userInfo = (getUserInfo _networkId);
_userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"]; _userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"];
if (_isHC) exitWith {}; if (_isHC) exitWith {};
[ [
"ConnectedServer", "ConnectedServer",
_playerID,
_playerUID, _playerUID,
_profileName, _profileName,
_steamName _steamName
] call attendanceTracker_fnc_logServerEvent; ] call attendanceTracker_fnc_logServerEvent;
(AttendanceTracker getVariable ["allUsers", createHashMap]) set [_networkId, _userInfo]; (AttendanceTracker getVariable ["allUsers", createHashMap]) set [_networkId, _userInfo];
[format ["(EventHandler) OnUserConnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
}], }],
["OnUserDisconnected", { ["OnUserDisconnected", {
params ["_networkId", "_clientStateNumber", "_clientState"]; params ["_networkId", "_clientStateNumber", "_clientState"];
private _userInfo = (AttendanceTracker getVariable ["allUsers", createHashMap]) get [_networkId, nil];
[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 {};
_userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"]; _userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"];
@@ -26,15 +31,17 @@
[ [
"DisconnectedServer", "DisconnectedServer",
_playerID,
_playerUID, _playerUID,
_profileName, _profileName,
_steamName _steamName
] call attendanceTracker_fnc_logServerEvent; ] call attendanceTracker_fnc_logServerEvent;
[format ["(EventHandler) OnUserDisconnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
}], }],
["PlayerConnected", { ["PlayerConnected", {
params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"];
[format ["(EventHandler) PlayerConnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
private _userInfo = (getUserInfo _idstr); private _userInfo = (getUserInfo _idstr);
if (isNil "_userInfo") exitWith {}; if (isNil "_userInfo") exitWith {};
@@ -46,19 +53,23 @@
[ [
"ConnectedMission", "ConnectedMission",
_playerID,
_playerUID, _playerUID,
_profileName, _profileName,
_steamName, _steamName,
_jip, _jip,
roleDescription _unit roleDescription _unit
] call attendanceTracker_fnc_logMissionEvent; ] call attendanceTracker_fnc_logMissionEvent;
[format ["(EventHandler) PlayerConnected fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
}], }],
["HandleDisconnect", { ["PlayerDisconnected", {
params ["_unit", "_id", "_uid", "_name"]; params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"];
private _userInfo = (AttendanceTracker getVariable ["allUsers", createHashMap]) get [_id toFixed 0, nil];
if (isNil "_userInfo") exitWith {}; [format ["(EventHandler) HandleDisconnect fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
private _userInfo = (AttendanceTracker getVariable ["allUsers", createHashMap]) get _idstr;
if (isNil "_userInfo") exitWith {
[format ["(EventHandler) HandleDisconnect: 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"]; _userInfo params ["_playerID", "_ownerId", "_playerUID", "_profileName", "_displayName", "_steamName", "_clientState", "_isHC", "_adminState", "_networkInfo", "_unit"];
@@ -66,13 +77,14 @@
[ [
"DisconnectedMission", "DisconnectedMission",
_playerID,
_playerUID, _playerUID,
_profileName, _profileName,
_steamName, _steamName,
_jip _jip
] call attendanceTracker_fnc_logMissionEvent; ] call attendanceTracker_fnc_logMissionEvent;
[format ["(EventHandler) HandleDisconnect fired: %1", _this], "DEBUG"] call attendanceTracker_fnc_log;
false; false;
}] }]
]; ];

View File

@@ -5,6 +5,10 @@ params [
]; ];
if (isNil "_message") exitWith {false}; if (isNil "_message") exitWith {false};
if (
missionNamespace getVariable ["AttendanceTracker_debug", false] &&
_level == "DEBUG"
) exitWith {};
"AttendanceTracker" callExtension ["log", [_level, _message]]; "AttendanceTracker" callExtension ["log", [_level, _message]];

View File

@@ -1,5 +1,6 @@
params [ params [
["_eventType", ""], ["_eventType", ""],
["_playerId", ""],
["_playerUID", ""], ["_playerUID", ""],
["_profileName", ""], ["_profileName", ""],
["_steamName", ""], ["_steamName", ""],
@@ -9,6 +10,7 @@ params [
private _hash = + (AttendanceTracker getVariable ["missionContext", createHashMap]); private _hash = + (AttendanceTracker getVariable ["missionContext", createHashMap]);
_hash set ["eventType", _eventType]; _hash set ["eventType", _eventType];
_hash set ["playerId", _playerId];
_hash set ["playerUID", _playerUID]; _hash set ["playerUID", _playerUID];
_hash set ["profileName", _profileName]; _hash set ["profileName", _profileName];
_hash set ["steamName", _steamName]; _hash set ["steamName", _steamName];

View File

@@ -1,5 +1,6 @@
params [ params [
["_eventType", ""], ["_eventType", ""],
["_playerId", ""],
["_playerUID", ""], ["_playerUID", ""],
["_profileName", ""], ["_profileName", ""],
["_steamName", ""] ["_steamName", ""]
@@ -8,6 +9,7 @@ params [
private _hash = + (AttendanceTracker getVariable ["missionContext", createHashMap]); private _hash = + (AttendanceTracker getVariable ["missionContext", createHashMap]);
_hash set ["eventType", _eventType]; _hash set ["eventType", _eventType];
_hash set ["playerId", _playerId];
_hash set ["playerUID", _playerUID]; _hash set ["playerUID", _playerUID];
_hash set ["profileName", _profileName]; _hash set ["profileName", _profileName];
_hash set ["steamName", _steamName]; _hash set ["steamName", _steamName];

View File

@@ -14,9 +14,10 @@ AttendanceTracker setVariable ["missionContext", createHashMapFromArray [
// store all user details in a hash when they connect so we can reference it in disconnect events // store all user details in a hash when they connect so we can reference it in disconnect events
AttendanceTracker setVariable ["allUsers", createHashMap]; AttendanceTracker setVariable ["allUsers", createHashMap];
missionNamespace getVariable ["AttendanceTracker_debug", false];
private _database = "AttendanceTracker" callExtension "connectDB"; private _database = "AttendanceTracker" callExtension "connectDB";
systemChat "AttendanceTracker: Connecting to database..."; // systemChat "AttendanceTracker: Connecting to database...";
["Connecting to database...", "INFO"] call attendanceTracker_fnc_log; ["Connecting to database...", "INFO"] call attendanceTracker_fnc_log;
{ {

Binary file not shown.

View File

@@ -143,6 +143,7 @@ type AttendanceLogItem struct {
MissionStart string `json:"missionStart"` MissionStart string `json:"missionStart"`
// situational // situational
EventType string `json:"eventType"` EventType string `json:"eventType"`
PlayerId string `json:"playerId"`
PlayerUID string `json:"playerUID"` PlayerUID string `json:"playerUID"`
ProfileName string `json:"profileName"` ProfileName string `json:"profileName"`
SteamName string `json:"steamName"` SteamName string `json:"steamName"`
@@ -180,7 +181,7 @@ func writeAttendance(data string) {
// send to DB // send to DB
result, err := db.ExecContext(context.Background(), `INSERT INTO AttendanceLog (timestamp, mission_name, briefing_name, mission_name_source, on_load_name, author, server_name, server_profile, mission_start, event_type, player_uid, profile_name, steam_name, is_jip, role_description) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`, result, err := db.ExecContext(context.Background(), `INSERT INTO AttendanceLog (timestamp, mission_name, briefing_name, mission_name_source, on_load_name, author, server_name, server_profile, mission_start, event_type, player_id, player_uid, profile_name, steam_name, is_jip, role_description) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,
now, now,
event.MissionName, event.MissionName,
event.BriefingName, event.BriefingName,
@@ -191,6 +192,7 @@ func writeAttendance(data string) {
event.ServerProfile, event.ServerProfile,
t, t,
event.EventType, event.EventType,
event.PlayerId,
event.PlayerUID, event.PlayerUID,
event.ProfileName, event.ProfileName,
event.SteamName, event.SteamName,