From c39f53c224e0fe00d3264fccfc2367f41fedca09 Mon Sep 17 00:00:00 2001 From: Gurkirpal Date: Wed, 4 Sep 2019 03:49:14 +0530 Subject: [PATCH 1/6] [WIP] Make saddles not sellable --- website/common/script/ops/sell.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/website/common/script/ops/sell.js b/website/common/script/ops/sell.js index 796ed929c2..ac0c4d4e75 100644 --- a/website/common/script/ops/sell.js +++ b/website/common/script/ops/sell.js @@ -43,6 +43,10 @@ module.exports = function sell (user, req = {}) { throw new NotFound(i18n.t('userItemsNotEnough', {type}, req.language)); } + if (content[type][key].sellWarningNote) { + throw new NotAuthorized(i18n.t('positiveAmountRequired', req.language)); + } + user.items[type][key] -= amount; if (user.markModified) user.markModified(`items.${type}`); From 9709b92d33ff3eb47411f8ae22a4f6a97db8d56b Mon Sep 17 00:00:00 2001 From: Gurkirpal Date: Wed, 4 Sep 2019 19:26:19 +0530 Subject: [PATCH 2/6] Use sellWarningNote as warning string --- website/common/script/ops/sell.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/common/script/ops/sell.js b/website/common/script/ops/sell.js index ac0c4d4e75..2973c79499 100644 --- a/website/common/script/ops/sell.js +++ b/website/common/script/ops/sell.js @@ -44,7 +44,7 @@ module.exports = function sell (user, req = {}) { } if (content[type][key].sellWarningNote) { - throw new NotAuthorized(i18n.t('positiveAmountRequired', req.language)); + throw new NotAuthorized(content[type][key].sellWarningNote()); } user.items[type][key] -= amount; From 201b4551a3d29f50d5ec9e98e965141e2ce82f91 Mon Sep 17 00:00:00 2001 From: Gurkirpal Date: Wed, 11 Sep 2019 19:32:51 +0530 Subject: [PATCH 3/6] Check food is Saddle before selling --- website/common/script/ops/sell.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/website/common/script/ops/sell.js b/website/common/script/ops/sell.js index 2973c79499..69e132da37 100644 --- a/website/common/script/ops/sell.js +++ b/website/common/script/ops/sell.js @@ -43,8 +43,8 @@ module.exports = function sell (user, req = {}) { throw new NotFound(i18n.t('userItemsNotEnough', {type}, req.language)); } - if (content[type][key].sellWarningNote) { - throw new NotAuthorized(content[type][key].sellWarningNote()); + if (type === 'food' && key === 'Saddle') { + throw new NotAuthorized(content[type][key].sellWarningNote(req.language)); } user.items[type][key] -= amount; From 9bf380039e895b93437896c52da7038ab3ecabe9 Mon Sep 17 00:00:00 2001 From: Gurkirpal Date: Wed, 11 Sep 2019 20:18:30 +0530 Subject: [PATCH 4/6] Add test for code preventing sale of saddles --- test/common/ops/sell.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/test/common/ops/sell.js b/test/common/ops/sell.js index f2a67c9d8e..2f1d9b86d1 100644 --- a/test/common/ops/sell.js +++ b/test/common/ops/sell.js @@ -85,6 +85,19 @@ describe('shared.ops.sell', () => { } }); + it('returns error when trying to sell Saddle', (done) => { + const foodType = 'food'; + const saddleKey = 'Saddle'; + user.items[foodType][saddleKey] = 1; + try { + sell(user, {params: {type: foodType, key: saddleKey}}); + } catch (err) { + expect(err).to.be.an.instanceof(NotAuthorized); + expect(err.message).to.equal(i18n.t('foodSaddleSellWarningNote')); + done(); + } + }); + it('reduces item count from user', () => { sell(user, {params: { type, key } }); From 23c7177da6a7039c53c8646d106c1a984203b308 Mon Sep 17 00:00:00 2001 From: Gurkirpal Date: Thu, 12 Sep 2019 03:10:41 +0530 Subject: [PATCH 5/6] Check for item name before showing sellWarningNote --- website/client/components/shops/market/sellModal.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/client/components/shops/market/sellModal.vue b/website/client/components/shops/market/sellModal.vue index 31d1a80b05..f497e59651 100644 --- a/website/client/components/shops/market/sellModal.vue +++ b/website/client/components/shops/market/sellModal.vue @@ -21,7 +21,7 @@ h4.title {{ itemContextToSell.itemName }} - div(v-if="item.sellWarningNote") + div(v-if="item.text() === $t('foodSaddleText')") div.text {{ item.sellWarningNote() }} br From 03dbd1dfc607be6d55c9940ee5bf9ad081717621 Mon Sep 17 00:00:00 2001 From: Matteo Pagliazzi Date: Fri, 13 Sep 2019 17:53:37 +0200 Subject: [PATCH 6/6] fix(sell modal): change saddle check --- website/client/components/shops/market/sellModal.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/client/components/shops/market/sellModal.vue b/website/client/components/shops/market/sellModal.vue index f497e59651..d0bd729ec9 100644 --- a/website/client/components/shops/market/sellModal.vue +++ b/website/client/components/shops/market/sellModal.vue @@ -21,7 +21,7 @@ h4.title {{ itemContextToSell.itemName }} - div(v-if="item.text() === $t('foodSaddleText')") + div(v-if="item.key === 'Saddle'") div.text {{ item.sellWarningNote() }} br