Account email change and moving a character between accounts, in game
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 12/100
Research direction
The work spans src/account_index.h (which needs an erase path before email or record changes), account_cache.cpp (owner lookup and account reads that must be refreshed), the account subcommands that refuse with "Character is already linked", and src/mob_progs/banker.cpp for vault selection. Done means the design questions in the issue are answered first, then a staff transfer command with the offline rule and cache refresh is in place. This is design-heavy, so start by discussing the open questions with the maintainers.
Written by the indexing model from the issue text.
Description
What is missing
Two account changes cannot be made from inside the game today, by players or by staff:
- Changing an account's email. There is no player path and no
accountsubcommand for it. - Moving a character from one account to another.
account addcharandaccount migratecharonly link a character that has no owner yet; both refuse with "Character is already linked to account ...". Now that every character is on an account, there is no in-game way to re-home one.
Both are currently done with tooling outside the game.
What is wanted
- A way to change an account's email (who may do it, player or staff, is open).
- A staff command to move a character from one account to another.
- The character should most likely have to be offline for a transfer.
Things the code already tells us
- The account index has no erase path.
src/account_index.hnotes that nothing deletes an account record or changes an email today, and that adding either "REQUIRES adding an erase path first", or the index keeps serving a path to a file that no longer exists. - Lookups are cached. The owner lookup (
find_linked_character_owner_account) and account reads are memoized inaccount_cache.cpp; a transfer or email change has to refresh them. - The connection remembers its account. A playing character's connection holds the account name it logged in with, and several features read it: the player bank picks the vault from it (
src/mob_progs/banker.cpp, PR #369), the Player Preferred Config reads it, andsave_charpicks the account from the index instead. While a character is in the game these must not disagree, which is the main reason to require the character to be offline for a transfer. - Bank vaults belong to the account, not the character. A transferred character leaves its old account's vault behind and uses the new account's. That needs to be a stated rule.
Open questions
- Email change: player self-service (with verification of the new address), staff only, or both?
- What happens to verification state, and to a pending password reset, when the email changes?
- Transfer: what is refused (character online, target roster full, name clash, blocked account)?
- What is logged, and at what staff level?
Raised while answering the review of #369.
- Dominant language
- C++
- Stars
- 3
- Forks
- 4
- Avg merge
- 18h 36m
- Merged PRs (30d)
- 87
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from returnoftheshadow/RotS_Live
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
returnoftheshadow/RotS_Live#521 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
returnoftheshadow/RotS_Live#485 ·
Maintainers usually reply within 1 day
-
Remove dead object refresh code (check_inventory_proto and friends)Possibly taken @drelidan7 claimed this 1 day ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
returnoftheshadow/RotS_Live#414 ·
Maintainers usually reply within 1 day
-
purge <player> idle-saves the immortal instead of the playerPossibly taken @bskalpavrukshab25-sketch claimed this 11 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 92/100
returnoftheshadow/RotS_Live#411 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
returnoftheshadow/RotS_Live#410 · 2 comments ·
Maintainers usually reply within 1 day
All issues in returnoftheshadow/RotS_Live
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
enhancement Ready for final check
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
mpogue2/SquareDesk#1818 · 1 comment ·
-
launch-client --save-creds creates creds/<account>/ with mode 755, not 700Possibly taken @metis-sprock claimed this today. Openbacklog bug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
EchoTools/nevr-runtime#1471 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 66/100
Maintainers usually reply within 2 days
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
iamankushpandit/Gume#231 ·
Maintainers usually reply within 1 day