@@ -293,7 +293,7 @@ module.exports = { | |||||
} | } | ||||
this.username = msg.data.username; | this.username = msg.data.username; | ||||
cons.logOut(this.obj); | |||||
await cons.logOut(this.obj); | |||||
this.initTracker(); | this.initTracker(); | ||||
@@ -154,7 +154,7 @@ module.exports = { | |||||
msg.callback(); | msg.callback(); | ||||
}, | }, | ||||
logOut: function (exclude) { | |||||
logOut: async function (exclude) { | |||||
let players = this.players; | let players = this.players; | ||||
let pLen = players.length; | let pLen = players.length; | ||||
for (let i = 0; i < pLen; i++) { | for (let i = 0; i < pLen; i++) { | ||||
@@ -163,6 +163,9 @@ module.exports = { | |||||
if ((!p) || (p === exclude) || (!p.auth)) | if ((!p) || (p === exclude) || (!p.auth)) | ||||
continue; | continue; | ||||
if (p.name && p.zoneName) | |||||
await atlas.forceSavePlayer(p.name, p.zoneName); | |||||
if (p.auth.username === exclude.auth.username) | if (p.auth.username === exclude.auth.username) | ||||
p.socket.emit('dc', {}); | p.socket.emit('dc', {}); | ||||
} | } | ||||
@@ -258,5 +258,25 @@ module.exports = { | |||||
}); | }); | ||||
}); | }); | ||||
}); | }); | ||||
}, | |||||
forceSavePlayer: async function (playerName, zoneName) { | |||||
const thread = this.getThreadFromName(zoneName); | |||||
if (!thread) | |||||
return; | |||||
return new Promise(res => { | |||||
const callbackId = this.registerCallback(res); | |||||
thread.worker.send({ | |||||
method: 'forceSavePlayer', | |||||
args: { | |||||
playerName, | |||||
callbackId | |||||
} | |||||
}); | |||||
}); | |||||
} | } | ||||
}; | }; |
@@ -337,5 +337,23 @@ module.exports = { | |||||
process.send({ | process.send({ | ||||
method: 'onZoneIdle' | method: 'onZoneIdle' | ||||
}); | }); | ||||
}, | |||||
forceSavePlayer: async function ({ playerName, callbackId }) { | |||||
const player = objects.objects.find(o => o.player && o.name === playerName); | |||||
if (!player?.auth) | |||||
return; | |||||
await player.auth.doSave(); | |||||
process.send({ | |||||
module: 'atlas', | |||||
method: 'resolveCallback', | |||||
msg: { | |||||
id: callbackId | |||||
} | |||||
}); | |||||
} | } | ||||
}; | }; |