From 4efb7dcf21bcc60f6d5feb17bd37917aa5ea9ec6 Mon Sep 17 00:00:00 2001
From: anima
Date: Fri, 6 Nov 2026 18:05:43 +0100
Subject: [PATCH] update char slot handling
---
README.md | 31 +++++++++++++++++++++++++++++--
1 file changed, 29 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index 2527dc2..7c1ba93 100644
--- a/README.md
+++ b/README.md
@@ -36,6 +36,18 @@ docker compose exec al-mongo mongosh adventureland --eval \
'db.user.updateMany({}, { $set: { "info.slots": 18 } })'
```
+Der Wert wird bei jeder Anfrage neu aus MongoDB gelesen; ein Neustart ist nicht
+nötig. Maximal sind 18 Plätze möglich. Prüfen, ob der richtige Account getroffen
+wurde:
+
+```sh
+docker compose exec al-mongo mongosh adventureland --eval \
+ 'db.user.findOne(
+ { "info.email": "du@example.com" },
+ { _id: 1, name: 1, "info.slots": 1, "info.characters": 1, pid: 1 }
+ )'
+```
+
**Admin werden:** Die Admin-Seiten (`/admin/executor`, `/admin/renderer`) sind
standardmäßig gesperrt. `is_admin` in `common/admin.js` prüft das Feld
`user.admin`; setzen lässt es sich direkt in MongoDB:
@@ -52,12 +64,27 @@ sinnvoll.
**GM werden (Game):** Der Web-Admin ist **kein** Game-GM. Die GM-Rolle hängt am
Charakter, nicht am Benutzerkonto: Der Game-Server prüft `player.role` bzw.
-`player.p.role` auf `"gm"`. Charakter vorher ausloggen, dann in MongoDB setzen:
+`player.p.role` auf `"gm"`. Charakter vorher ausloggen, dann in MongoDB setzen.
+
+Wichtig: Das Top-Level-Feld `name` wird beim Anlegen kleingeschrieben
+(`simplify_name`), das Anzeige-Feld `info.name` behält die Schreibweise. Eine
+Abfrage auf `{ name: "CharName" }` findet deshalb nichts. Nutze den
+kleingeschriebenen Namen oder `info.name`:
```sh
docker compose exec al-mongo mongosh adventureland --eval \
'db.character.updateOne(
- { name: "CharName" },
+ { name: "charname" },
+ { $set: { role: "gm", "info.p.role": "gm" } }
+ )'
+```
+
+Alternativ, wenn die Groß-/Kleinschreibung im Spiel erhalten bleiben soll:
+
+```sh
+docker compose exec al-mongo mongosh adventureland --eval \
+ 'db.character.updateOne(
+ { "info.name": "CharName" },
{ $set: { role: "gm", "info.p.role": "gm" } }
)'
```