diff --git a/pkg/worker/coordinatorhandlers.go b/pkg/worker/coordinatorhandlers.go index f061f159..9fee6460 100644 --- a/pkg/worker/coordinatorhandlers.go +++ b/pkg/worker/coordinatorhandlers.go @@ -162,8 +162,8 @@ func (c *coordinator) HandleGameStart(rq api.StartGameRequest[com.Uid], w *Worke func (c *coordinator) HandleTerminateSession(rq api.TerminateSessionRequest[com.Uid], w *Worker) { if user := w.router.FindUser(rq.Id); user != nil { w.router.Remove(user) + c.log.Debug().Msgf(">>> users: %v", w.router.Users()) user.Disconnect() - w.router.SetRoom(nil) } } @@ -171,7 +171,7 @@ func (c *coordinator) HandleTerminateSession(rq api.TerminateSessionRequest[com. func (c *coordinator) HandleQuitGame(rq api.GameQuitRequest[com.Uid], w *Worker) { if user := w.router.FindUser(rq.Id); user != nil { w.router.Remove(user) - w.router.SetRoom(nil) + c.log.Debug().Msgf(">>> users: %v", w.router.Users()) } } diff --git a/pkg/worker/room/room.go b/pkg/worker/room/room.go index 67ac6960..51978532 100644 --- a/pkg/worker/room/room.go +++ b/pkg/worker/room/room.go @@ -119,6 +119,7 @@ func (r *Router[T]) FindRoom(id string) *Room[T] { func (r *Router[T]) Remove(user T) { if left := r.users.RemoveL(user); left == 0 { r.Close() + r.SetRoom(nil) } }