47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
/* jslint node: true */
|
|
'use strict';
|
|
|
|
const UserProps = require('./user_property.js');
|
|
const Events = require('./events.js');
|
|
const StatLog = require('./stat_log.js');
|
|
|
|
const moment = require('moment');
|
|
|
|
exports.trackDoorRunBegin = trackDoorRunBegin;
|
|
exports.trackDoorRunEnd = trackDoorRunEnd;
|
|
|
|
function trackDoorRunBegin(client, doorTag) {
|
|
const startTime = moment();
|
|
return { startTime, client, doorTag };
|
|
}
|
|
|
|
function trackDoorRunEnd(trackInfo) {
|
|
if (!trackInfo) {
|
|
return;
|
|
}
|
|
|
|
const { startTime, client, doorTag } = trackInfo;
|
|
|
|
const diff = moment.duration(moment().diff(startTime));
|
|
if (diff.asSeconds() >= 45) {
|
|
StatLog.incrementUserStat(client.user, UserProps.DoorRunTotalCount, 1);
|
|
}
|
|
|
|
const runTimeMinutes = Math.floor(diff.asMinutes());
|
|
if (runTimeMinutes > 0) {
|
|
StatLog.incrementUserStat(
|
|
client.user,
|
|
UserProps.DoorRunTotalMinutes,
|
|
runTimeMinutes
|
|
);
|
|
|
|
const eventInfo = {
|
|
runTimeMinutes,
|
|
user: client.user,
|
|
doorTag: doorTag || 'unknown',
|
|
};
|
|
|
|
Events.emit(Events.getSystemEvents().UserRunDoor, eventInfo);
|
|
}
|
|
}
|