My solution for EditMode error #2102


  • Fixed
Open
  • Ssal created this issue Aug 4, 2024

    I found in my case the error occurs when I checked more than one Hide Blizzard Frame.

    So I put some codes in regarding functions in SUF's lua file.

     

    I'm not sure this is the best way, but it works and didn't spit out any errors so far.

    I'm very not a programmer, but I tried so hard to make this codes not being spaghetti.

     

    * If this is right code and youu are goint to update with this, please note my nickname("Ssal") into patch note. I want to flex it to my friend :D

     

     

    POI = ShadowedUnitFrames.lua Ln:687

     

    local function hideBlizzardFrames(taint, ...)
        for i=1, select("#", ...) do
            local frame = select(i, ...)
            local old_parent = frame:GetParent()
            UnregisterUnitWatch(frame)
            frame:UnregisterAllEvents()
            frame:Hide()
    
            if( frame.manabar ) then frame.manabar:UnregisterAllEvents() end
            if( frame.healthbar ) then frame.healthbar:UnregisterAllEvents() end
            if( frame.spellbar ) then frame.spellbar:UnregisterAllEvents() end
            if( frame.powerBarAlt ) then frame.powerBarAlt:UnregisterAllEvents() end
    
            if( taint ) then
                frame.Show = ShadowUF.noop
            elseif not( EditModeManagerFrame ) then --Classic?
                frame:SetParent(ShadowUF.hiddenFrame)
                frame:HookScript("OnShow", rehideFrame)
            else
                EditModeManagerFrame:HookScript("OnShow", function(self)
                    frame:SetParent(old_parent)
                    end
                )
                EditModeManagerFrame:HookScript("OnHide", function(self)
                    frame:SetParent(ShadowUF.hiddenFrame)
                    rehideFrame(frame)
                    end
                )
            end
        end
    end

     

    Old modifying:

     

    POI = ShadowedUnitFrames.lua Ln:701

    local function hideBlizzardFrames(taint, ...)
    	for i=1, select("#", ...) do
    		local frame = select(i, ...)
    		UnregisterUnitWatch(frame)
    		frame:UnregisterAllEvents()
    		frame:Hide()
    
    		if( frame.manabar ) then frame.manabar:UnregisterAllEvents() end
    		if( frame.healthbar ) then frame.healthbar:UnregisterAllEvents() end
    		if( frame.spellbar ) then frame.spellbar:UnregisterAllEvents() end
    		if( frame.powerBarAlt ) then frame.powerBarAlt:UnregisterAllEvents() end
    
    		if( taint ) then
    			frame.Show = ShadowUF.noop
    		elseif not( EditModeManagerFrame ) then
    			frame:SetParent(ShadowUF.hiddenFrame)
    			frame:HookScript("OnShow", rehideFrame)
    		elseif EditModeManagerFrame:IsShown() then
    			--noop
    		end
    	end
    end

     Thx.

  • Ssal added a tag Fixed Aug 4, 2024
  • Ssal edited description Aug 4, 2024
  • EuntaekDanielKoh posted a comment Aug 5, 2024

    f-in amazing bro 

    it works amazingly 

    감사합니다 

    you are my hero 

    복받으세요

  • Ssal edited description Aug 14, 2024

To post a comment, please login or register a new account.