====== Players ======

===== How players are made =====

When the hub first sees ''[TAG]Name'' it:

  - makes a Synchronet user on your door BBS called ''Name (TAG)'' (Synchronet allows 25 characters, so long names are shortened, and a number is added if two players would get the same name);
  - gives that user a random password that only the hub knows;
  - remembers the player's password from their BBS, as a bcrypt hash.

Each session the hub runs ''mkuser.js'' with ''jsexec'' to make sure the user exists and has the right password. If you delete a hub user in Synchronet, it's simply made again next time, with a fresh start in every game.

Users made by the hub have the comment set by ''new_user_comment'' (default "Door Hub player"), so they're easy to find in your user editor. They get your BBS's normal new-user settings, with ANSI and colour turned on.

===== Commands =====

<code>
doorhub player list [TAG]           players, newest first
doorhub player reset "[TAG]Name"    forget the player's password from their BBS
</code>

<code>
$ doorhub player list
PLAYER           DOOR-BBS USER     FIRST SEEN        LAST SEEN         PLAYS
[KAL]Heisenberg  Heisenberg (KAL)  2026-11-09 10:42  2026-11-09 11:40  lord:3 seal:1
</code>

===== Player passwords =====

Member BBSes send a password for each caller (''doorhub.js'' makes a random one per caller). The hub keeps the first one it sees for each name. If a different password arrives later for the same ''[TAG]Name'', the hub refuses it with "Your Door Hub password doesn't match".

This stops a new caller who takes an old caller's name on a member BBS from playing as them. When a member rebuilds their user base, or a caller's BBS account is recreated, reset the player:

<code>
doorhub player reset "[KAL]Heisenberg"
</code>

The next password that arrives for that name is kept.

===== Names =====

  * Up to 30 characters, printable ASCII. Names with ''['' or '']'' are refused.
  * Names are matched without regard to capitals: ''[KAL]heisenberg'' is the same player as ''[KAL]Heisenberg''.
  * The game sees the door BBS user name (''Heisenberg (KAL)''). Many doors also let players choose their own name inside the game.
