Adv 2.0 L4f-prep: flip DisplayName readers to loadDisplayName

Swap all char.DisplayName / c.DisplayName reader sites in
internal/plugin/ to loadDisplayName(userID). Touches 12 files
across combat (combat_bridge, dnd_zone_combat, dnd_zone_cmd,
dnd_expedition_combat), arena, hospital, events, render,
masterwork, robbie, scheduler, and adventure.go.

Only intentional char.DisplayName references remaining are in
adventure_character.go (scan + save + dual-write) and the
player_meta.go doc comment. go vet + go test ./internal/plugin/...
clean.

Unblocks deferred L2 step 9 (arena AdvCharacter import drop)
once L4 hospital/pets/render also lands.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-05-09 09:36:50 -07:00
parent 5000c3d696
commit cc6fb7dd39
13 changed files with 67 additions and 37 deletions

View File

@@ -92,7 +92,8 @@ func advSubstituteFlavor(template string, vars map[string]string) string {
func renderAdvCharacterSheet(char *AdventureCharacter, equip map[EquipmentSlot]*AdvEquipment, items []AdvItem, treasures []AdvTreasureBonus, balance float64) string {
var sb strings.Builder
sb.WriteString(fmt.Sprintf("⚔️ **%s's Adventurer**\n\n", char.DisplayName))
displayName, _ := loadDisplayName(char.UserID)
sb.WriteString(fmt.Sprintf("⚔️ **%s's Adventurer**\n\n", displayName))
// Stats
sb.WriteString("📊 Stats:\n")
@@ -275,8 +276,8 @@ func renderRivalNudge(char *AdventureCharacter) string {
hours = 1 // floor — "<1h" feels worse than "1h"
}
rivalName := string(c.ChallengerID)
if rc, err := loadAdvCharacter(c.ChallengerID); err == nil && rc != nil && rc.DisplayName != "" {
rivalName = rc.DisplayName
if name, err := loadDisplayName(c.ChallengerID); err == nil && name != "" {
rivalName = name
}
return fmt.Sprintf("⚔️ **Rival challenge open** — %s, round %d/3, €%d on the line · expires in %dh · reply **rock**, **paper**, or **scissors**",
rivalName, c.Round, c.Stake, hours)
@@ -294,8 +295,9 @@ func renderAdvMorningDM(char *AdventureCharacter, equip map[EquipmentSlot]*AdvEq
// Pick a morning greeting
greeting, _ := advPickFlavor(MorningDM, char.UserID, "morning_dm")
displayName, _ := loadDisplayName(char.UserID)
vars := map[string]string{
"{name}": char.DisplayName,
"{name}": displayName,
"{character_sheet}": fmt.Sprintf(
" ⚔️ Combat Lv.%d ⛏️ Mining Lv.%d 🌿 Foraging Lv.%d 🎣 Fishing Lv.%d\n 💰 €%.0f",
char.CombatLevel, char.MiningSkill, char.ForagingSkill, char.FishingSkill, balance),
@@ -503,8 +505,9 @@ func renderAdvDeathStatusDM(char *AdventureCharacter) string {
func renderAdvRespawnDM(char *AdventureCharacter) string {
text, _ := advPickFlavor(RespawnDM, char.UserID, "respawn_dm")
displayName, _ := loadDisplayName(char.UserID)
return advSubstituteFlavor(text, map[string]string{
"{name}": char.DisplayName,
"{name}": displayName,
})
}
@@ -664,8 +667,9 @@ func masteryBar(value, total int) string {
func renderAdvIdleShameDM(char *AdventureCharacter) string {
text, _ := advPickFlavor(IdleShameDM, char.UserID, "idle_shame")
displayName, _ := loadDisplayName(char.UserID)
return advSubstituteFlavor(text, map[string]string{
"{name}": char.DisplayName,
"{name}": displayName,
})
}
@@ -673,8 +677,9 @@ func renderAdvIdleShameDM(char *AdventureCharacter) string {
func renderAdvOnboardingDM(char *AdventureCharacter) string {
text, _ := advPickFlavor(OnboardingDM, char.UserID, "onboarding")
displayName, _ := loadDisplayName(char.UserID)
return advSubstituteFlavor(text, map[string]string{
"{name}": char.DisplayName,
"{name}": displayName,
})
}
@@ -890,8 +895,9 @@ func renderAdvLeaderboard(chars []AdventureCharacter) string {
var entries []entry
for _, c := range chars {
score := (c.CombatLevel + c.MiningSkill + c.ForagingSkill + c.FishingSkill) * 10
name, _ := loadDisplayName(c.UserID)
entries = append(entries, entry{
Name: c.DisplayName,
Name: name,
Score: score,
Levels: fmt.Sprintf("⚔️%d ⛏️%d 🌿%d 🎣%d", c.CombatLevel, c.MiningSkill, c.ForagingSkill, c.FishingSkill),
Streak: c.CurrentStreak,