From 683eb5b368aa42dc590e8f82cd8f3f3c2cbbbab8 Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Thu, 5 Nov 2020 03:19:18 +0000 Subject: [PATCH] remove players from rooms when their sockets close --- internal/sim/player.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/internal/sim/player.go b/internal/sim/player.go index 59479cf..e4a3dbb 100644 --- a/internal/sim/player.go +++ b/internal/sim/player.go @@ -66,6 +66,13 @@ func (p *player) readLoop(c chan Request, conn *websocket.Conn) { if err != nil { p.Error("read error: %v", err) conn.Close() + c <- Request{ + From: p.name, + Wants: effect(func(w *world, r *room, p *player, seq int) result { + r.removePlayer(p.name) + return result{} + }), + } p.stop <- false return }