mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-12 23:14:36 +01:00
correctly clear disconnected sessions
This commit is contained in:
@@ -192,14 +192,6 @@ func handleMsgSysLogout(s *Session, p mhfpacket.MHFPacket) {
|
||||
}
|
||||
|
||||
func logoutPlayer(s *Session) {
|
||||
if s.stage == nil {
|
||||
return
|
||||
}
|
||||
|
||||
s.server.BroadcastMHF(&mhfpacket.MsgSysDeleteUser {
|
||||
CharID: s.charID,
|
||||
}, s)
|
||||
|
||||
delete(s.server.sessions, s.rawConn)
|
||||
s.rawConn.Close()
|
||||
|
||||
@@ -213,17 +205,6 @@ func logoutPlayer(s *Session) {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
s.server.Lock()
|
||||
for _, stage := range s.server.stages {
|
||||
if _, exists := stage.reservedClientSlots[s.charID]; exists {
|
||||
delete(stage.reservedClientSlots, s.charID)
|
||||
}
|
||||
}
|
||||
s.server.Unlock()
|
||||
|
||||
removeSessionFromSemaphore(s)
|
||||
removeSessionFromStage(s)
|
||||
|
||||
var timePlayed int
|
||||
_ = s.server.db.QueryRow("SELECT time_played FROM characters WHERE id = $1", s.charID).Scan(&timePlayed)
|
||||
|
||||
@@ -244,6 +225,25 @@ func logoutPlayer(s *Session) {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
if s.stage == nil {
|
||||
return
|
||||
}
|
||||
|
||||
s.server.BroadcastMHF(&mhfpacket.MsgSysDeleteUser {
|
||||
CharID: s.charID,
|
||||
}, s)
|
||||
|
||||
s.server.Lock()
|
||||
for _, stage := range s.server.stages {
|
||||
if _, exists := stage.reservedClientSlots[s.charID]; exists {
|
||||
delete(stage.reservedClientSlots, s.charID)
|
||||
}
|
||||
}
|
||||
s.server.Unlock()
|
||||
|
||||
removeSessionFromSemaphore(s)
|
||||
removeSessionFromStage(s)
|
||||
|
||||
saveData, err := GetCharacterSaveData(s, s.charID)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
|
||||
Reference in New Issue
Block a user