From 0b0b25222b3131ada79ff78c28eb8bf07d977deb Mon Sep 17 00:00:00 2001 From: historia <[not public]> Date: Tue, 15 Sep 2026 15:35:52 -0400 Subject: feat: single-owner game state, transactional lifecycle, durable money on server stop --- internal/admin/api_room_insert_remove.go | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'internal/admin/api_room_insert_remove.go') diff --git a/internal/admin/api_room_insert_remove.go b/internal/admin/api_room_insert_remove.go index 8549d76..812a3ae 100644 --- a/internal/admin/api_room_insert_remove.go +++ b/internal/admin/api_room_insert_remove.go @@ -349,6 +349,11 @@ func (s *AdminServer) handleRoomRemove(w http.ResponseWriter, r *http.Request) { if s.mobStore != nil { s.mobStore.RemoveMobsInRoom(bID) } + // Deleted room: evict its cached games (wagers refunded via the wired + // game callback) so gameplay never points at a removed room. + if s.evictRoom != nil { + s.evictRoom(bID) + } s.undoStack.Push(ChangeDesc{ Description: fmt.Sprintf("remove room %d %s (pull %d to %d)", bID, dir, cID, aID), FilePath: bPath, -- cgit v1.2.3