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; 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; diff --git a/src/server/world/atlas.js b/src/server/world/atlas.js index dfd2d067..29dc30c3 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;