diff --git a/src/server/security/connections.js b/src/server/security/connections.js index 61ae3ee5..2267a2fd 100644 --- a/src/server/security/connections.js +++ b/src/server/security/connections.js @@ -164,11 +164,12 @@ module.exports = { if ((!p) || (p === exclude) || (!p.auth)) continue; - if (p.name && p.zoneName) - await atlas.forceSavePlayer(p.name, p.zoneName); + if (p.auth.username === exclude.auth.username) { + if (p.name && p.zoneName) + await atlas.forceSavePlayer(p.name, p.zoneName); - if (p.auth.username === exclude.auth.username) p.socket.emit('dc', {}); + } } }, diff --git a/src/server/world/instancer.js b/src/server/world/instancer.js index 59c1a669..c4d70288 100644 --- a/src/server/world/instancer.js +++ b/src/server/world/instancer.js @@ -355,8 +355,15 @@ module.exports = { forceSavePlayer: async function ({ playerName, callbackId }) { const player = objects.objects.find(o => o.player && o.name === playerName); - if (!player?.auth) + if (!player?.auth) { + await io.setAsync({ + key: new Date(), + table: 'error', + value: 'no auth found for forcesave ' + playerName + }); + return; + } await player.auth.doSave();