aboutsummaryrefslogtreecommitdiff
path: root/internal/admin/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/admin/server.go')
-rw-r--r--internal/admin/server.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/internal/admin/server.go b/internal/admin/server.go
index ff2bebd..227201b 100644
--- a/internal/admin/server.go
+++ b/internal/admin/server.go
@@ -24,6 +24,7 @@ import (
"strings"
"time"
+ "thehouseoficarus/internal/behavior"
"thehouseoficarus/internal/config"
"thehouseoficarus/internal/item"
"thehouseoficarus/internal/object"
@@ -138,6 +139,8 @@ func NewServer(cfg *config.Config, useTLS bool, accountStore *player.AccountStor
apiMux.HandleFunc("/api/undo/redo", s.doRedo)
apiMux.HandleFunc("/api/next-room-id", s.handleNextRoomID)
apiMux.HandleFunc("/api/files", s.handleFiles)
+ apiMux.HandleFunc("/api/duplicate-rooms", s.handleDuplicateRooms)
+ apiMux.HandleFunc("/api/rooms/resolve-duplicate", s.handleResolveDuplicate)
mux.Handle("/api/", s.authMiddleware(apiMux))
@@ -150,6 +153,18 @@ func NewServer(cfg *config.Config, useTLS bool, accountStore *player.AccountStor
if page == "" {
page = "map"
}
+ if page == "map" {
+ dups := behavior.CheckDuplicateIDs(filepath.Join(s.dataDir, "rooms"))
+ if len(dups) > 0 {
+ data := map[string]any{
+ "Account": s.accountFromCookie(r),
+ "UndoStack": s.undoStack.Info(),
+ "Page": "duplicate-rooms",
+ }
+ s.renderPage(w, r, "layout", data)
+ return
+ }
+ }
data := map[string]any{
"Account": s.accountFromCookie(r),
"UndoStack": s.undoStack.Info(),
@@ -164,6 +179,18 @@ func NewServer(cfg *config.Config, useTLS bool, accountStore *player.AccountStor
return
}
page := strings.TrimPrefix(r.URL.Path, "/editor/")
+ if page == "map" {
+ dups := behavior.CheckDuplicateIDs(filepath.Join(s.dataDir, "rooms"))
+ if len(dups) > 0 {
+ data := map[string]any{
+ "Account": s.accountFromCookie(r),
+ "UndoStack": s.undoStack.Info(),
+ "Page": "duplicate-rooms",
+ }
+ s.renderPage(w, r, "layout", data)
+ return
+ }
+ }
data := map[string]any{
"Account": s.accountFromCookie(r),
"UndoStack": s.undoStack.Info(),