From 681d6b915bf010ed17708fe9f35d83e15617216a Mon Sep 17 00:00:00 2001 From: RebeccaNod1 Date: Fri, 8 May 2026 18:07:21 -0600 Subject: [PATCH] Use high-level clean swap for ReplaceOutfit --- .../Services/CurrentOutfitFolder.cs | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/SecondBotEvents/Services/CurrentOutfitFolder.cs b/SecondBotEvents/Services/CurrentOutfitFolder.cs index 3b1d952..c455b94 100644 --- a/SecondBotEvents/Services/CurrentOutfitFolder.cs +++ b/SecondBotEvents/Services/CurrentOutfitFolder.cs @@ -522,21 +522,12 @@ namespace SecondBotEvents.Services AddLink(item); } - // Re-implementing ReplaceOutfit logic manually to ensure a clean swap without toggling. - var wearables = outfit.OfType().ToList(); - var attachments = outfit.Where(item => item is InventoryAttachment || item is InventoryObject).ToList(); - - // 1. Replace wearables (this is usually safe and doesn't toggle) - GetClient().Appearance.ReplaceOutfit(wearables.Cast().ToList()); - - // 2. Replace attachments with FirstDetachAll=true and replace=true to prevent toggling - GetClient().Appearance.AddAttachments(attachments, true, true); - - ThreadPool.QueueUserWorkItem(sync => - { - Thread.Sleep(2000); - GetClient().Appearance.RequestSetAppearance(true); - }); + // Clean swap: Remove everything current, then add everything new. + // This ensures proper link folder sync and avoids toggling. + var current = ContentLinks().Select(RealInventoryItem).ToList(); + RemoveFromOutfit(current); + + AddToOutfit(outfit, false); } ///