diff --git a/dist/habitrpg-shared.js b/dist/habitrpg-shared.js index e1d2fba508..230e1b42af 100644 --- a/dist/habitrpg-shared.js +++ b/dist/habitrpg-shared.js @@ -11405,14 +11405,15 @@ var process=require("__browserify_process");(function() { }, req) : void 0; }, unlock: function(req, cb) { - var cost, fullSet, k, path, split, v; + var alreadyOwns, cost, fullSet, k, path, split, v; path = req.query.path; fullSet = ~path.indexOf(","); cost = fullSet ? 1.25 : 0.5; - if (user.balance < cost) { + alreadyOwns = !fullSet && user.fns.dotGet("purchased." + path) === true; + if (user.balance < cost && !alreadyOwns) { return typeof cb === "function" ? cb({ code: 401, - err: "Not enough gems" + message: "Not enough gems" }) : void 0; } if (fullSet) { @@ -11421,7 +11422,7 @@ var process=require("__browserify_process");(function() { return true; }); } else { - if (user.fns.dotGet("purchased." + path) === true) { + if (alreadyOwns) { split = path.split('.'); v = split.pop(); k = split.join('.'); diff --git a/script/index.coffee b/script/index.coffee index 3aa121bb76..0f808e41e2 100644 --- a/script/index.coffee +++ b/script/index.coffee @@ -565,12 +565,13 @@ api.wrap = (user) -> {path} = req.query fullSet = ~path.indexOf(",") cost = if fullSet then 1.25 else 0.5 # 5G per set, 2G per individual - return cb?({code:401, err: "Not enough gems"}) if user.balance < cost + alreadyOwns = !fullSet and user.fns.dotGet("purchased." + path) is true + return cb?({code:401, message: "Not enough gems"}) if user.balance < cost and !alreadyOwns if fullSet _.each path.split(","), (p) -> user.fns.dotSet("purchased.#{p}", true);true else - if user.fns.dotGet("purchased." + path) is true + if alreadyOwns split = path.split('.');v=split.pop();k=split.join('.') user.fns.dotSet("preferences.#{k}",v) return cb? null, req