From b62661dc82a410a2b22040848ca8d18156fc4899 Mon Sep 17 00:00:00 2001 From: Shaun Date: Tue, 25 Jul 2023 07:44:30 +0200 Subject: [PATCH 1/4] feat: The aggro component can now receive a range to override the default range of 7 --- src/server/components/aggro.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/server/components/aggro.js b/src/server/components/aggro.js index 95e743aa..edafb21f 100644 --- a/src/server/components/aggro.js +++ b/src/server/components/aggro.js @@ -29,6 +29,9 @@ module.exports = { if (blueprint.faction) this.faction = blueprint.faction; + if (blueprint.range) + this.range = blueprint.range; + //TODO: Why don't we move if faction is null? if (!this.has('faction')) return; From 37cf7493f82ff696df4682e6d1d7e8b9b4740081 Mon Sep 17 00:00:00 2001 From: Shaun Date: Tue, 25 Jul 2023 07:45:02 +0200 Subject: [PATCH 2/4] bug: Fixed a crash caused by calling teleportr with incorrect arguments --- src/server/components/social/teleport.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/server/components/social/teleport.js b/src/server/components/social/teleport.js index 2d90ce2d..974a9e2d 100644 --- a/src/server/components/social/teleport.js +++ b/src/server/components/social/teleport.js @@ -2,7 +2,10 @@ module.exports = async (cpnSocial, targetName) => { const { obj } = cpnSocial; const { instance: { objects, physics }, syncer } = obj; - const target = objects.find(o => o.name && o.name.toLowerCase().includes(targetName.toLowerCase())); + if (typeof(targetName) !== 'string') + return; + + const target = objects.find(o => o.name?.toLowerCase().includes(targetName.toLowerCase())); if (!target) return; From 7845d2bf6ff65efdb73db032f69bd2692fd421a5 Mon Sep 17 00:00:00 2001 From: Shaun Date: Mon, 16 Oct 2023 17:29:10 +0200 Subject: [PATCH 3/4] big: fixed a crash with finding party leaders on rezone (cherry picked from commit fbf9593bdfe8bbec6b78995b62cbdb7118578795) --- src/server/world/atlas.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/world/atlas.js b/src/server/world/atlas.js index 045089a8..62cdb201 100644 --- a/src/server/world/atlas.js +++ b/src/server/world/atlas.js @@ -24,7 +24,7 @@ module.exports = { const partyIds = obj.components.find(c => c.type === 'social')?.party; if (partyIds) { - const partyLeader = cons.players.find(p => partyIds.includes(p.id) && p.components.find(c => c.type === 'social').isPartyLeader); + const partyLeader = cons.players.find(p => partyIds.includes(p.id) && p.components.find(c => c.type === 'social')?.isPartyLeader); if (partyLeader?.zoneName === zoneName) zoneId = partyLeader.zoneId; From 877aaa4aef4079df6139dafddf31ccce73b3b488 Mon Sep 17 00:00:00 2001 From: Shaun Date: Mon, 16 Oct 2023 17:50:57 +0200 Subject: [PATCH 4/4] bug: another attempt at fixing the crash when party members rezone --- src/server/world/atlas.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/server/world/atlas.js b/src/server/world/atlas.js index 62cdb201..2d604e71 100644 --- a/src/server/world/atlas.js +++ b/src/server/world/atlas.js @@ -24,7 +24,17 @@ module.exports = { const partyIds = obj.components.find(c => c.type === 'social')?.party; if (partyIds) { - const partyLeader = cons.players.find(p => partyIds.includes(p.id) && p.components.find(c => c.type === 'social')?.isPartyLeader); + const partyLeader = cons.players.find(p => { + if (!partyIds.includes(p.id)) + return false; + + const cpnSocial = p.components.find(c => c.type === 'social'); + + if (!cpnSocial) + return false; + + return cpnSocial.isPartyLeader; + }); if (partyLeader?.zoneName === zoneName) zoneId = partyLeader.zoneId;