From 5bc2e5511e4c1057d1a27a92b8912875dc51c3d8 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Thu, 15 Oct 2026 16:30:46 +0000 Subject: [PATCH 1/2] docs: Thievery remembers lock kinds across restarts Co-Authored-By: Claude Opus 5.5 --- projects/Thievery/docs/LOCK-OWNERS.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/projects/Thievery/docs/LOCK-OWNERS.md b/projects/Thievery/docs/LOCK-OWNERS.md index 4336f5b..fdeb097 100644 --- a/projects/Thievery/docs/LOCK-OWNERS.md +++ b/projects/Thievery/docs/LOCK-OWNERS.md @@ -134,9 +134,13 @@ and delete keeps it current, so a listing reads no files. Counts are `locks` (private and public records, doors and furniture) and `guild-locks` (guild and faction records). Each label reads ` at x y z`, adding the world in brackets when it is not the first world and ` (guild)` or ` (faction)` for those -states. Lock files store no block type or world, so a block is named only once -its chunk has been loaded since the restart; until then it reads `Container` or -`Door`, and the two halves of a double chest may be listed separately. Halves +states. Lock files store no block type or world, so Thievery learns them when a +lock's chunk loads (or when the will screen lists it) and keeps them in +`plugins/Thievery/owned-lock-kinds.json`, written at most once a minute and on +shutdown and reloaded after the startup lock pass. A lock never seen in a loaded +chunk reads `Container` or `Door`, and the two halves of a double chest may be +listed separately until one is seen. The file only names blocks: deleting it +costs nothing but re-learning, and it never changes ownership or estates. Halves that go to different estate parts (one guild, one private) are always listed and counted apart. Every save and delete re-reads the file into the index, so a write whose directory sync failed after the file changed is still reflected. From accda3f6daaa3a3638a4dd810dc99c64cfe76b32 Mon Sep 17 00:00:00 2001 From: Ryan Barlow <7389646+ryanbarlow97@users.noreply.github.com> Date: Thu, 15 Oct 2026 16:43:55 +0000 Subject: [PATCH 2/2] docs: guessed lock worlds and partner links Co-Authored-By: Claude Opus 5.5 --- projects/Thievery/docs/LOCK-OWNERS.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/projects/Thievery/docs/LOCK-OWNERS.md b/projects/Thievery/docs/LOCK-OWNERS.md index fdeb097..aa9d1de 100644 --- a/projects/Thievery/docs/LOCK-OWNERS.md +++ b/projects/Thievery/docs/LOCK-OWNERS.md @@ -137,7 +137,12 @@ brackets when it is not the first world and ` (guild)` or ` (faction)` for those states. Lock files store no block type or world, so Thievery learns them when a lock's chunk loads (or when the will screen lists it) and keeps them in `plugins/Thievery/owned-lock-kinds.json`, written at most once a minute and on -shutdown and reloaded after the startup lock pass. A lock never seen in a loaded +shutdown (in the background, except at shutdown) and reloaded after the startup +lock pass. A world seen only from a chunk load is a guess: an earlier world in +server order (the main world first) with a fitting block replaces it, and it is +dropped when its block no longer fits. Only a save or delete at the block fixes the +world for good. Removing one half of a double chest clears its neighbour's partner +link. A lock never seen in a loaded chunk reads `Container` or `Door`, and the two halves of a double chest may be listed separately until one is seen. The file only names blocks: deleting it costs nothing but re-learning, and it never changes ownership or estates. Halves