AddonClearer = {} function AddonClearer:SetAddons(toDo) table.sort(ZO_AddOnsList.data, function(a,b) return a.data.addOnName == "AddonClearer" end) -- In place sorting. oh dear local thisAddonIndex = ZO_AddOnsList.data[1].data.index if not toDo then -- Save current setup AddonClearer.settings.savedSetup = {} for i,v in ipairs(ZO_AddOnsList.data) do AddonClearer.settings.savedSetup[v.data.index] = v.data.addOnEnabled end end local AddOnManager = GetAddOnManager() local numAddons = AddOnManager:GetNumAddOns() for i = 1, numAddons do if i ~= thisAddonIndex then -- ignore this addon if IsShiftKeyDown() then -- Are we restoring from save? AddOnManager:SetAddOnEnabled(i, AddonClearer.settings.savedSetup[i]) else -- Otherwise continue as normal AddOnManager:SetAddOnEnabled(i, toDo) end end end -- Reset the view SCENE_MANAGER:RemoveFragment(ADDONS_FRAGMENT) SCENE_MANAGER:AddFragment(ADDONS_FRAGMENT) end function AddonClearer:Loaded(eventCode, addonName) if(addonName ~= "AddonClearer") then return end AddonClearer.settings = ZO_SavedVars:NewAccountWide("AddonClearerSV", 1, nil, {savedSetup = {}}) end EVENT_MANAGER:RegisterForEvent("AddonClearerLoaded", EVENT_ADD_ON_LOADED, function(...) AddonClearer:Loaded(...) end)