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" } } )' ```