Files
minecraft-account-manager/design/us-006-discord-nickname.md
T
dmg b7c0083647
CI / validate (push) Successful in 5m20s
Release / release (push) Successful in 6m56s
feat(portal): add SSR operations and exclusive groups
2026-08-01 19:21:23 -04:00

42 lines
2.1 KiB
Markdown

---
type: User Story
title: Keep Discord nicknames synchronized
description: Preferred names and primary Minecraft usernames determine community guild nicknames.
tags: [player, admin, discord, identity]
timestamp: 2026-08-01T23:10:59Z
story_id: US-006
status: verified
---
# User Story
As a community member, I want my Discord nickname to reflect my preferred name and primary Minecraft account, so that other players can identify me consistently.
# Acceptance Criteria
- [x] Given a preferred name and primary account, then the nickname format is `First name (MinecraftUsername)`.
- [x] Given Discord's 32-character limit, then the preferred-name portion is shortened while preserving the Minecraft username.
- [x] Given no remaining Minecraft account, then synchronization uses `First name (TBD)`.
- [x] User name, first-account, primary, and account-removal changes synchronize the nickname automatically without a second confirmation step.
- [x] Successful synchronization shows the exact new nickname in a dismissible status notice.
- [x] Discord failures show an assertive error notice without falsely claiming synchronization completed.
- [x] Administrator name, primary, and primary-removal operations synchronize the nickname automatically.
- [x] A protected administrative retry action can synchronize the current desired nickname.
# Implementation
- [`packages/minecraft/src/index.ts`](../packages/minecraft/src/index.ts)
- [`apps/web/src/app/account/actions.ts`](../apps/web/src/app/account/actions.ts)
- [`apps/web/src/app/admin/(console)/users/actions.ts`](../apps/web/src/app/admin/%28console%29/users/actions.ts)
- [`apps/web/src/components/nickname-notice.tsx`](../apps/web/src/components/nickname-notice.tsx)
# Validation
- [`packages/minecraft/test/discord.test.ts`](../packages/minecraft/test/discord.test.ts)
- Nickname length and fallback behavior are covered in [`packages/minecraft/test/minecraft.test.ts`](../packages/minecraft/test/minecraft.test.ts).
# Related Stories
- [Manage linked accounts](us-005-user-dashboard.md)
- [Administer users](us-013-admin-user-management.md)