Fix campaign owner labels to always use display names

This commit is contained in:
2026-02-26 17:42:44 +01:00
parent 0b30b04283
commit 6f94b1ba95
5 changed files with 30 additions and 5 deletions

View File

@@ -590,10 +590,18 @@ public partial class Workspace : IAsyncDisposable
if (User is not null && ownerUserId == User.Id)
return "You";
if (SelectedCampaign is not null && ownerUserId == SelectedCampaign.Gm.Id)
if (SelectedCampaign is null)
return "Unknown owner";
if (ownerUserId == SelectedCampaign.Gm.Id)
return $"{SelectedCampaign.Gm.DisplayName} (GM)";
return ownerUserId.ToString("N")[..8];
var ownerDisplayName = SelectedCampaign.Characters
.Where(character => character.OwnerUserId == ownerUserId)
.Select(character => character.OwnerDisplayName)
.FirstOrDefault(displayName => !string.IsNullOrWhiteSpace(displayName));
return string.IsNullOrWhiteSpace(ownerDisplayName) ? "Unknown owner" : ownerDisplayName;
}
private string CharacterLabel(Guid characterId)