From 1d4016bda89f1cbc0d3d9ada2ad18d11c32f71e7 Mon Sep 17 00:00:00 2001 From: kckckc Date: Thu, 5 Aug 2021 14:46:12 -0700 Subject: [PATCH 1/4] polish #1733: Display exalted reputation as 100% --- src/client/ui/templates/reputation/reputation.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/client/ui/templates/reputation/reputation.js b/src/client/ui/templates/reputation/reputation.js index 8f25edb2..64d0d262 100644 --- a/src/client/ui/templates/reputation/reputation.js +++ b/src/client/ui/templates/reputation/reputation.js @@ -64,10 +64,15 @@ define([ let nextTier = (tier === tiers.length - 1) ? tiers[tiers.length - 1] : tiers[tier + 1]; let percentage = (rep - prevTier.rep) / (nextTier.rep - prevTier.rep) * 100; + + if (tier === tiers.length - 1) + percentage = 100; + this.find('.bar-outer').show(); this.find('.front').css({ - width: percentage + '%' + width: percentage + '%', + minWidth: percentage + '%' }); let w = ~~(this.find('.front').width() / 5) * 5; From fbd286626259b01ec0f44cda925c9777021c5b3f Mon Sep 17 00:00:00 2001 From: kckckc Date: Thu, 24 Feb 2022 17:05:27 -0800 Subject: [PATCH 2/4] Keep counting login streak but limit rewards --- src/server/components/auth/checkLoginRewards.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/server/components/auth/checkLoginRewards.js b/src/server/components/auth/checkLoginRewards.js index 5341c43b..1cd23ba5 100644 --- a/src/server/components/auth/checkLoginRewards.js +++ b/src/server/components/auth/checkLoginRewards.js @@ -1,6 +1,8 @@ const scheduler = require('../../misc/scheduler'); const rewardGenerator = require('../../misc/rewardGenerator'); +const maxRewardedDays = 21; + const calculateDaysSkipped = (oldTime, newTime) => { let daysSkipped = 1; @@ -59,10 +61,10 @@ module.exports = async (cpnAuth, data, character, cbDone) => { else loginStreak = 1; - loginStreak = Math.max(1, Math.min(21, loginStreak)); accountInfo.loginStreak = loginStreak; - const itemCount = 1 + ~~(loginStreak / 2); + const cappedLoginStreak = Math.max(1, Math.min(maxRewardedDays, loginStreak)); + const itemCount = 1 + ~~(cappedLoginStreak / 2); const rewards = rewardGenerator(itemCount); if (!rewards) { cbDone(); From e62f60f55d9003b61c7ed9cb044876a8f29518b5 Mon Sep 17 00:00:00 2001 From: Shaun Date: Mon, 28 Feb 2022 19:32:12 +0200 Subject: [PATCH 3/4] bug #1913 --- src/server/events/events.js | 4 ++-- src/server/world/syncer.js | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/server/events/events.js b/src/server/events/events.js index 89cc1972..529658f8 100644 --- a/src/server/events/events.js +++ b/src/server/events/events.js @@ -310,7 +310,7 @@ module.exports = { } } ] - }, 'server'); + }, ['server']); } event.phases.forEach(function (p) { @@ -344,7 +344,7 @@ module.exports = { } } ] - }, 'server'); + }, ['server']); } if (desc) { diff --git a/src/server/world/syncer.js b/src/server/world/syncer.js index c4c3bcd9..ea582a3b 100644 --- a/src/server/world/syncer.js +++ b/src/server/world/syncer.js @@ -39,6 +39,8 @@ module.exports = { oLen--; i--; } + + this.sendServerModuleMessages(); }, updateZoneNotEmpty: function (objects, oList, oLen, pList, pLen) { @@ -220,6 +222,26 @@ module.exports = { data: this.buffer }); + this.buffer = {}; + }, + + sendServerModuleMessages: function () { + if (!this.dirty) + return; + + this.dirty = false; + + const serverModuleMsgs = this.buffer.serverModule; + + if (serverModuleMsgs) { + process.send({ + method: 'events', + data: { + serverModule: serverModuleMsgs + } + }); + } + this.buffer = {}; } }; From 39a78b5fec7d29e13468fd7e52588ff734778afb Mon Sep 17 00:00:00 2001 From: Shaun Date: Tue, 1 Mar 2022 19:08:28 +0200 Subject: [PATCH 4/4] bug #1912 --- src/server/security/router.js | 17 ++++++++++++----- src/server/security/routerConfig.js | 12 +++++++++++- 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/server/security/router.js b/src/server/security/router.js index fbb5e13a..8cbb225d 100644 --- a/src/server/security/router.js +++ b/src/server/security/router.js @@ -62,9 +62,18 @@ module.exports = { return (typeof(value) !== 'string' && !Number.isInteger(value)); else if (dataType === 'integer') return !Number.isInteger(value); - else if (dataType === 'integerNullOrPosition') - return !Number.isInteger(value) && value !== null && (typeof(value) !== 'object' && value.hasOwnProperty('x') && value.hasOwnProperty('y')); - else if (dataType === 'arrayOfStrings') + else if (dataType === 'integerNullOrObject') { + const isCorrect = ( + Number.isInteger(value) || + value === null || + ( + typeof(value) === 'object' && + this.keysCorrect(value, spec) + ) + ); + + return !isCorrect; + } else if (dataType === 'arrayOfStrings') return (!Array.isArray(value) || value.some(v => typeof(v) !== 'string')); else if (dataType === 'arrayOfIntegers') return (!Array.isArray(value) || value.some(v => !Number.isInteger(v))); @@ -91,8 +100,6 @@ module.exports = { return foundIncorrectObject; } else if (dataType === 'stringOrNull') return (typeof(value) !== 'string' && value !== null); - else if (dataType === 'mixed') - return false; return true; }); diff --git a/src/server/security/routerConfig.js b/src/server/security/routerConfig.js index 9bcd69d9..19ef9d7a 100644 --- a/src/server/security/routerConfig.js +++ b/src/server/security/routerConfig.js @@ -158,7 +158,17 @@ const routerConfig = { }, { key: 'target', - dataType: 'integerNullOrPosition' + dataType: 'integerNullOrObject', + spec: [ + { + key: 'x', + dataType: 'integer' + }, + { + key: 'y', + dataType: 'integer' + } + ] }, { key: 'spell',