feat: store each named pet's LOT in pet_names

pet_names gets a pet_lot column (mysql 80, sqlite 63). The world writes
it whenever it saves a pet name, from the pet entity's LOT, and fills it
in for older rows when the owner loads into a world (from the pets the
game loads for that character, only where it is still missing).

The dashboard's pet name tables read pet_lot instead of scanning the
owner's character XML; pets without it yet show as Unknown.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Aaron Kimbrell
2026-09-27 03:51:39 -05:00
parent 4735ce4f42
commit 7284422320
14 changed files with 72 additions and 36 deletions

View File

@@ -725,8 +725,9 @@ tells the player in game if they're online. Rejecting asks for an optional reaso
account page next to what they asked for. The queues show only what the game itself would still review: rejected
properties and names whose player must pick a new one no longer appear.
Pet names show what kind of pet each one is (its icon and name from the CDClient), read from the pet's entry in its
owner's save. A pet whose owner is unknown or no longer has it shows as Unknown.
Pet names show what kind of pet each one is (its icon and name from the CDClient), from the pet's LOT that the game
stores with the name (`pet_names.pet_lot`). Names set before that column existed get their LOT the next time the pet's
owner loads into a world; until then they show as Unknown.
### Moderation history, warnings and bans