allow cron to record user's current timezone offset in preferences.timezoneOffsetAtLastCron (initial stage of cron timezone fix for https://github.com/HabitRPG/habitrpg/issues/3806 )

This commit is contained in:
Alys
2016-03-29 19:06:15 +10:00
parent f4b43f55f0
commit ae9e6fbe30
3 changed files with 5 additions and 0 deletions

View File

@@ -36,6 +36,9 @@ module.exports = function(user, options) {
} }
user.auth.timestamps.loggedin = new Date(); user.auth.timestamps.loggedin = new Date();
user.lastCron = now; user.lastCron = now;
if (_.isFinite(+user.preferences.timezoneOffset)) {
user.preferences.timezoneOffsetAtLastCron = user.preferences.timezoneOffset;
}
if (user.items.lastDrop.count > 0) { if (user.items.lastDrop.count > 0) {
user.items.lastDrop.count = 0; user.items.lastDrop.count = 0;
} }

View File

@@ -53,6 +53,7 @@ let beforeAfter = (options = {}) => {
before.preferences.dayStart = after.preferences.dayStart = options.dayStart; before.preferences.dayStart = after.preferences.dayStart = options.dayStart;
} }
before.preferences.timezoneOffset = after.preferences.timezoneOffset = options.timezoneOffset || moment().zone(); before.preferences.timezoneOffset = after.preferences.timezoneOffset = options.timezoneOffset || moment().zone();
before.preferences.timezoneOffsetAtLastCron = after.preferences.timezoneOffsetAtLastCron = before.preferences.timezoneOffset;
if (options.limitOne) { if (options.limitOne) {
before[`${options.limitOne}s`] = [before[`${options.limitOne}s`][0]]; before[`${options.limitOne}s`] = [before[`${options.limitOne}s`][0]];
after[`${options.limitOne}s`] = [after[`${options.limitOne}s`][0]]; after[`${options.limitOne}s`] = [after[`${options.limitOne}s`][0]];

View File

@@ -350,6 +350,7 @@ var UserSchema = new Schema({
skin: {type:String, 'default':'915533'}, skin: {type:String, 'default':'915533'},
shirt: {type: String, 'default': 'blue'}, shirt: {type: String, 'default': 'blue'},
timezoneOffset: Number, timezoneOffset: Number,
timezoneOffsetAtLastCron: Number,
sound: {type:String, 'default':'off', enum: ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme']}, sound: {type:String, 'default':'off', enum: ['off', 'danielTheBard', 'gokulTheme', 'luneFoxTheme', 'wattsTheme']},
language: String, language: String,
automaticAllocation: Boolean, automaticAllocation: Boolean,