J3b: chat, the player list (with each player's land) and admin commands across lands; sleep needs everyone in every land, with a 'waiting for everyone else' message

This commit is contained in:
Paul Bailey
2026-11-06 23:42:50 +00:00
parent 85bbed249b
commit 86ebe07899
9 changed files with 404 additions and 27 deletions

View File

@@ -36,9 +36,28 @@ player list across lands are J3b). The rest is planned.
- `tests/test_net_lands.gd`: Alice digs and props online, lights it,
crosses to the Cove (bag and day kept) while Bob stays in the Valley,
comes back up, then leaves from the Cove and rejoining sends her there.
- Next, J3b: chat, the player list (with where each player is) and admin
commands across lands; sleeping needs everyone in every land. J3c: a land
server crashing, the Host page's extra ports.
*As built in J3b (everyone, everywhere):*
- Chat and server messages go to every land (`Chat._all` relays through
the hub, `Lands.relay_line`).
- The hub keeps the **roster** (everyone on every land, with their land);
every land and every player's game gets it (`Net.roster`,
`Net.everyone()`): the pause menu's player list and `/players` show
where each player is.
- Commands typed in another land run **on the hub** (it alone keeps
server.json) and answer back there; after one that changes server.json
(`/set`, `/ban`, `/admin`, `/friend`...) every land reloads it.
`/kick` and `/ban` reach the land the player's in; `/weather`, `/save`
and `/backup` reach every land.
- **Sleep needs everyone in every land:** land servers report their beds,
the hub decides, and every land passes the night together. Getting into
bed while others are up: "You're in bed: waiting for everyone else to go
to bed (1 of 2 asleep)", and every land hears "Bob is in bed (1 of 2
asleep)" in chat.
- `tests/test_net_lands.gd` covers it all, Alice in the Cove and Bob in the
Valley.
- Next, J3c: a land server crashing (its players back to the hub), and the
Host page's extra ports.
*As built in J1:*
- `scripts/world/tunnel.gd`: the seam (an outcrop on the clifftop strip,