From 9e88d17a78f0a6dd905745bfbce4916d8b496a28 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 8 Oct 2015 07:45:25 -0500 Subject: [PATCH 1/3] Adjust tavern export to send over only quest object --- website/src/middlewares/locals.js | 11 +++++------ website/src/models/group.js | 11 ++++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/website/src/middlewares/locals.js b/website/src/middlewares/locals.js index 3f4de311b5..e9dbb31260 100644 --- a/website/src/middlewares/locals.js +++ b/website/src/middlewares/locals.js @@ -6,14 +6,14 @@ var i18n = require('../i18n.js'); var buildManifest = require('../libs/buildManifest'); var shared = require('../../../common'); var forceRefresh = require('./forceRefresh'); -var tavern = require('../models/group').tavern; +var tavernQuest = require('../models/group').tavernQuest; var mods = require('../models/user').mods; // To avoid stringifying more data then we need, // items from `env` used on the client will have to be specified in this array var clientVars = ['language', 'isStaticPage', 'avalaibleLanguages', 'translations', 'FACEBOOK_KEY', 'NODE_ENV', 'BASE_URL', 'GA_ID', - 'AMAZON_PAYMENTS', 'STRIPE_PUB_KEY', 'AMPLITUDE_KEY', + 'AMAZON_PAYMENTS', 'STRIPE_PUB_KEY', 'AMPLITUDE_KEY', 'worldDmg', 'mods', 'IS_MOBILE']; var env = { @@ -21,7 +21,6 @@ var env = { getBuildUrl: buildManifest.getBuildUrl, _: _, clientVars: clientVars, - tavern: tavern, // for world boss mods: mods, Content: shared.content, siteVersion: forceRefresh.siteVersion, @@ -53,9 +52,9 @@ module.exports = function(req, res, next) { args.push(language.code); return shared.i18n.t.apply(null, args); }, - // Defined here and not outside of the middleware because tavern might be an + // Defined here and not outside of the middleware because tavernQuest might be an // empty object until the query to fetch it finishes - worldDmg: (tavern && tavern.quest && tavern.quest.extra && tavern.quest.extra.worldDmg) || {}, + worldDmg: (tavernQuest && tavernQuest.extra && tavernQuest.extra.worldDmg) || {}, }); // Put query-string party (& guild but use partyInvite for backward compatibility) @@ -68,4 +67,4 @@ module.exports = function(req, res, next) { } next(); -}; \ No newline at end of file +}; diff --git a/website/src/models/group.js b/website/src/models/group.js index 9971f9b649..ef46dbd9c2 100644 --- a/website/src/models/group.js +++ b/website/src/models/group.js @@ -269,12 +269,13 @@ GroupSchema.statics.collectQuest = function(user, progress, cb) { } // to set a boss: `db.groups.update({_id:'habitrpg'},{$set:{quest:{key:'dilatory',active:true,progress:{hp:1000,rage:1500}}}})` -module.exports.tavern = {}; +module.exports.tavernQuest = {}; var tavernQ = {_id:'habitrpg','quest.key':{$ne:null}}; process.nextTick(function(){ - mongoose.model('Group').findOne(tavernQ,function(err,tavern){ - // Using _assign so we don't lose the reference to the exported tavern - _.assign(module.exports.tavern, tavern); + mongoose.model('Group').findOne(tavernQ, function(err,tavern){ + var quest = tavern.quest.toObject(); + // Using _assign so we don't lose the reference to the exported tavernQuest + _.assign(module.exports.tavernQuest, quest); }); }); @@ -291,7 +292,7 @@ GroupSchema.statics.tavernBoss = function(user,progress) { }, function(tavern,cb){ if (!(tavern && tavern.quest && tavern.quest.key)) return cb(true); - module.exports.tavern = tavern; + module.exports.tavernQuest = tavern.quest.toObject(); var quest = shared.content.quests[tavern.quest.key]; if (tavern.quest.progress.hp <= 0) { From 5e10b8f4c91c361c090d16c1b1233c0112732b90 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 8 Oct 2015 08:32:40 -0500 Subject: [PATCH 2/3] Correct assinging of tavernQuest object when boss damage is calculated --- website/src/models/group.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/website/src/models/group.js b/website/src/models/group.js index ef46dbd9c2..fc35fc0ef8 100644 --- a/website/src/models/group.js +++ b/website/src/models/group.js @@ -273,6 +273,8 @@ module.exports.tavernQuest = {}; var tavernQ = {_id:'habitrpg','quest.key':{$ne:null}}; process.nextTick(function(){ mongoose.model('Group').findOne(tavernQ, function(err,tavern){ + if (!tavern) return; // No tavern quest + var quest = tavern.quest.toObject(); // Using _assign so we don't lose the reference to the exported tavernQuest _.assign(module.exports.tavernQuest, quest); @@ -292,7 +294,6 @@ GroupSchema.statics.tavernBoss = function(user,progress) { }, function(tavern,cb){ if (!(tavern && tavern.quest && tavern.quest.key)) return cb(true); - module.exports.tavernQuest = tavern.quest.toObject(); var quest = shared.content.quests[tavern.quest.key]; if (tavern.quest.progress.hp <= 0) { @@ -331,6 +332,8 @@ GroupSchema.statics.tavernBoss = function(user,progress) { tavern.quest.extra.str = quest.boss.desperation.str; tavern.markModified('quest.extra'); } + + _.assign(module.exports.tavernQuest, tavern.quest.toObject()); tavern.save(cb); } } From 36d471ddff84c4605e2c533d9bc551af6b441856 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Thu, 8 Oct 2015 08:42:42 -0500 Subject: [PATCH 3/3] Correct module exports --- website/src/models/group.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/src/models/group.js b/website/src/models/group.js index fc35fc0ef8..9ec1f28a21 100644 --- a/website/src/models/group.js +++ b/website/src/models/group.js @@ -300,7 +300,7 @@ GroupSchema.statics.tavernBoss = function(user,progress) { tavern.sendChat(quest.completionChat('en')); tavern.finishQuest(quest, function(){}); tavern.save(cb); - module.exports.tavern = undefined; + _.assign(module.exports.tavernQuest, {extra: null}); } else { // Deal damage. Note a couple things here, str & def are calculated. If str/def are defined in the database, // use those first - which allows us to update the boss on the go if things are too easy/hard.