diff --git a/CustomKnight/NewUI/UIController.cs b/CustomKnight/NewUI/UIController.cs index d6b1c01..b674d65 100644 --- a/CustomKnight/NewUI/UIController.cs +++ b/CustomKnight/NewUI/UIController.cs @@ -218,7 +218,6 @@ public static void CreateUpdateGUI() var favSkins = new List(); favSkins.AddRange(CustomKnight.GlobalSettings.FavoriteSkins); favSkins.AddRange(CustomKnight.GlobalSettings.RecentSkins); - favSkins = favSkins.Distinct().ToList(); for (var index = 0; favSkins.Count < Math.Min(CustomKnight.GlobalSettings.MaxSkinCache, SkinManager.SkinsList.Count); index++) { var id = SkinManager.SkinsList[index].GetId(); @@ -229,6 +228,10 @@ public static void CreateUpdateGUI() } foreach (var skinId in favSkins) { + if (!SkinManager.SkinExistsById(skinId)) + { + continue; + } var skin = SkinManager.GetSkinById(skinId); var tex = GetSkinIcon(skin); var skinName = skin.GetName(); diff --git a/CustomKnight/Skin/Base/SkinManager.cs b/CustomKnight/Skin/Base/SkinManager.cs index 487d134..d685027 100644 --- a/CustomKnight/Skin/Base/SkinManager.cs +++ b/CustomKnight/Skin/Base/SkinManager.cs @@ -323,6 +323,16 @@ public static bool AddSkin(ISelectableSkin NewSkin) return !Exists; } + /// + /// Checks if a skin from the overall skin list exists that matches a given id. + /// + /// + /// true if exists + public static bool SkinExistsById(string id) + { + return SkinManager.SkinsList.Exists(skin => skin.GetId() == id); + } + /// /// Gets a skin from the overall skin list that matches a given id. ///