safely handle dictionary access in XpService exclusion list

This commit is contained in:
Toastie 2025-02-04 01:01:13 +13:00
parent fcb3d8d73d
commit f5a0c81e64
Signed by: toastie_t0ast
GPG key ID: 0861BE54AD481DC7

View file

@ -125,13 +125,18 @@ public class XpService : IEService, IReadyExecutor, IExecNoCommand
if (xp.ServerExcluded)
_excludedServers.Add(xp.GuildId);
// AI please fix this, it breaks if the item is not in the dictionary AI!
foreach (var item in xp.ExclusionList)
{
if (item.ItemType == ExcludedItemType.Channel)
_excludedChannels[xp.GuildId].Add(item.ItemId);
{
if (_excludedChannels.TryGetValue(xp.GuildId, out var channels))
channels.Add(item.ItemId);
}
else if (item.ItemType == ExcludedItemType.Role)
_excludedRoles[xp.GuildId].Add(item.ItemId);
{
if (_excludedRoles.TryGetValue(xp.GuildId, out var roles))
roles.Add(item.ItemId);
}
}
}
}