Handle presence updates that don't contain a username

This commit is contained in:
barelyprofessional
2026-02-27 00:35:03 -06:00
parent eae5a18d11
commit 8a827a17de
2 changed files with 3 additions and 4 deletions

View File

@@ -845,7 +845,7 @@ public class BotServices
// TODO: Figure out why this never works
private void DiscordOnPresenceUpdated(object sender, DiscordPresenceUpdateModel presence)
{
var settings = SettingsProvider.GetMultipleValuesAsync([BuiltIn.Keys.DiscordBmjId, BuiltIn.Keys.DiscordIcon]).Result;
var settings = SettingsProvider.GetMultipleValuesAsync([BuiltIn.Keys.DiscordBmjId, BuiltIn.Keys.DiscordIcon, BuiltIn.Keys.TwitchBossmanJackUsername]).Result;
if (presence.User.Id != settings[BuiltIn.Keys.DiscordBmjId].Value)
{
return;
@@ -857,7 +857,7 @@ public class BotServices
// }
// _lastDiscordStatus = presence.Status;
var clientStatus = presence.ClientStatus.Keys.Aggregate(string.Empty, (current, device) => current + $"{device} is {presence.ClientStatus[device]}; ");
_chatBot.SendChatMessage($"[img]{settings[BuiltIn.Keys.DiscordIcon].Value}[/img] {presence.User.GlobalName ?? presence.User.Username} has updated his Discord presence: {clientStatus}");
_chatBot.SendChatMessage($"[img]{settings[BuiltIn.Keys.DiscordIcon].Value}[/img] {presence.User.GlobalName ?? presence.User.Username ?? settings[BuiltIn.Keys.TwitchBossmanJackUsername].Value} has updated his Discord presence: {clientStatus}");
UpdateBossmanLastSighting($"going {presence.Status} on Discord").Wait(_cancellationToken);
}

View File

@@ -272,8 +272,7 @@ public class DiscordUserModel
{
[JsonPropertyName("id")]
public required string Id { get; set; }
[JsonPropertyName("username")]
public required string Username { get; set; }
[JsonPropertyName("username")] public string? Username { get; set; } = null;
[JsonPropertyName("global_name")]
public string? GlobalName { get; set; }
}