diff options
Diffstat (limited to 'internal/admin/server.go')
| -rw-r--r-- | internal/admin/server.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/internal/admin/server.go b/internal/admin/server.go index 96b5981..8fcba77 100644 --- a/internal/admin/server.go +++ b/internal/admin/server.go @@ -1092,6 +1092,12 @@ func (s *AdminServer) rebuildAfterUndo(change *ChangeDesc) { if s.evictRoom != nil { s.evictRoom(id) } + } else if s.reconcileRoom != nil { + // The file still exists but its content changed: refresh the + // live room so a removed spawn/object stops lingering and a + // restored one appears. Without this, undo of a content edit + // is not reflected until restart. + s.reconcileRoom(id) } } } @@ -1126,11 +1132,15 @@ func (s *AdminServer) invalidateEntityCaches(entityType string) { if s.rebuildCraftIndex != nil { s.rebuildCraftIndex() } + case "objects": + if s.objectStore != nil { + s.objectStore.Reload(s.dataDir) + } } } func (s *AdminServer) invalidateEntityCacheForPath(path string) { - for _, subdir := range []string{"mobs", "drops", "items"} { + for _, subdir := range []string{"mobs", "drops", "items", "objects"} { rel, err := filepath.Rel(filepath.Join(s.dataDir, subdir), path) if err == nil && !strings.HasPrefix(rel, "..") && rel != "." { s.invalidateEntityCaches(subdir) |
