diff --git a/ElvUI_AddOnSkins/Skins/Addons/GuildManager.lua b/ElvUI_AddOnSkins/Skins/Addons/GuildManager.lua
new file mode 100644
index 0000000..c264739
--- /dev/null
+++ b/ElvUI_AddOnSkins/Skins/Addons/GuildManager.lua
@@ -0,0 +1,124 @@
+local E, L, V, P, G = unpack(ElvUI)
+local S = E:GetModule("Skins")
+local AS = E:GetModule("AddOnSkins")
+if not AS:IsAddonLODorEnabled("GuildManager") then return end
+
+local _G = _G
+local ipairs = ipairs
+local unpack = unpack
+
+local hooksecurefunc = hooksecurefunc
+
+
+S:AddCallbackForAddon("GuildManager", "GuildManager", function()
+ if not E.private.addOnSkins.GuildManager then return end
+
+ -- Master
+ GuildManagerFrame:StripTextures()
+ GuildManagerFrame:SetTemplate("Transparent")
+ GuildManagerFrame:SetClampRectInsets(0, 0, 0, 0)
+
+ GuildManagerEditDialog:StripTextures()
+ GuildManagerEditDialog:SetTemplate("Transparent")
+ GuildManagerEditDialog:SetClampRectInsets(0, 0, 0, 0)
+
+
+ local promoteButton = _G["GuildManagerEditDialogPromoteButton"]
+ S:HandleButton(promoteButton)
+ promoteButton:SetNormalTexture(E.Media.Textures.ArrowUp)
+ promoteButton:GetNormalTexture():SetRotation(S.ArrowRotation.up)
+
+ local demoteButton = _G["GuildManagerEditDialogDemoteButton"]
+ S:HandleButton(demoteButton)
+ demoteButton:SetNormalTexture(E.Media.Textures.ArrowUp)
+ demoteButton:GetNormalTexture():SetRotation(S.ArrowRotation.down)
+ --S:HandleButton(_G["talentsbutton"])
+ --_G["talentsbutton"]:SetNormalTexture(E.Media.Textures.Plus)
+ --_G["talentsbutton"]:SetPushedTexture(E.Media.Textures.Plus)
+
+ --S:HandleButton(_G["optionsbutton"])
+ --_G["optionsbutton"]:SetNormalTexture(E.Media.Textures.Plus)
+ --_G["optionsbutton"]:SetPushedTexture(E.Media.Textures.Plus)
+
+
+ local scrollBars = {
+ "GuildManagerScrollFrameScrollBar",
+ "GuildManagerEditDialogPublicNoteScrollScrollBar",
+ "GuildManagerEditDialogOfficerNoteScrollScrollBar",
+ }
+
+ local buttons = {
+ "GuildManagerFrameRefreshButton",
+ "GuildManagerFrameAddMemberButton",
+ "GuildManagerFrameHeaderFrameNameHeader",
+ "GuildManagerFrameHeaderFrameClassHeader",
+ "GuildManagerFrameHeaderFrameLevelHeader",
+ "GuildManagerFrameHeaderFrameRankHeader",
+ "GuildManagerFrameHeaderFrameNoteHeader",
+ "GuildManagerFrameHeaderFrameOfficerNoteHeader",
+ "GuildManagerFrameHeaderFrameLastOnlineHeader",
+ "GuildManagerEditDialogSaveButton",
+ "GuildManagerEditDialogCancelButton",
+ "GuildManagerEditDialogRemoveButton",
+ "GuildManagerEditDialogInviteButton",
+ }
+
+ local checkBoxes = {
+ "GuildManagerFrameShowOfflineCheckbox",
+ }
+
+ local editBoxes = {
+ "GuildManagerFrameSearchBox",
+ "GuildManagerEditDialogPublicNoteScroll",
+ "GuildManagerEditDialogOfficerNoteScroll",
+ }
+
+ local dropDownBoxes = {
+ -- Main Frame
+ }
+
+ local closeButtons = {
+ "GuildManagerFrameCloseButton",
+ "GuildManagerEditDialogCloseButton",
+ }
+
+ local statusBars = {
+ }
+
+ local sliderFrames = {
+ }
+
+ for _, scrollBar in ipairs(scrollBars) do
+ scrollBar = _G[scrollBar]
+ --scrollBar:GetParent():StripTextures()
+ S:HandleScrollBar(scrollBar)
+ end
+ for _, button in ipairs(buttons) do
+ S:HandleButton(_G[button])
+ end
+ for _, checkBox in ipairs(checkBoxes) do
+ S:HandleCheckBox(_G[checkBox])
+ end
+ for _, editBox in ipairs(editBoxes) do
+ _G[editBox]:StripTextures()
+ S:HandleEditBox(_G[editBox])
+ end
+ for _, dropDownBox in ipairs(dropDownBoxes) do
+ S:HandleDropDownBox(_G[dropDownBox])
+ end
+ for _, closeButton in ipairs(closeButtons) do
+ closeButton = _G[closeButton]
+ S:HandleCloseButton(closeButton, closeButton:GetParent().backdrop)
+ end
+ for _, sliderFrame in ipairs(sliderFrames) do
+ sliderFrame = _G[sliderFrame]
+ S:HandleSliderFrame(sliderFrame)
+ end
+ for _, statusBar in ipairs(statusBars) do
+ statusBar = _G[statusBar]
+ statusBar:StripTextures()
+ statusBar:CreateBackdrop()
+ statusBar:SetStatusBarTexture(E.media.normTex)
+ E:RegisterStatusBar(statusBar)
+ end
+end)
\ No newline at end of file
diff --git a/ElvUI_AddOnSkins/Skins/Addons/MP-Reporter.lua b/ElvUI_AddOnSkins/Skins/Addons/MP-Reporter.lua
new file mode 100644
index 0000000..e022c22
--- /dev/null
+++ b/ElvUI_AddOnSkins/Skins/Addons/MP-Reporter.lua
@@ -0,0 +1,298 @@
+local E, L, V, P, G = unpack(ElvUI)
+local S = E:GetModule("Skins")
+local AS = E:GetModule("AddOnSkins")
+
+if not AS:IsAddonLODorEnabled("MPR") then return end
+
+-- MP-Reporter
+-- Skin for MPR_Options frame
+
+function MPROptionsHandleColorButton(button)
+ if not button.isSkinned then
+ S:HandleButton(button)
+ button:Disable()
+ button.isSkinned = true
+ end
+end
+
+function SkinMPReporterOptions()
+ -- Hook the Initialize function to skin after frame is created
+ if MPR_Options then
+ -- Strip default backdrop and apply ElvUI template
+ MPR_Options:StripTextures()
+ MPR_Options:SetTemplate("Transparent")
+
+ -- Skin close button
+ if MPR_Options_BtnClose then
+ S:HandleCloseButton(MPR_Options_BtnClose)
+ MPR_Options_BtnClose:SetSize(18, 18)
+ end
+
+ -- Skin all checkboxes (created via NewCB function)
+ for i = 1, 100 do
+ local cb = _G["CheckBox" .. i]
+ if cb then S:HandleCheckBox(cb) end
+ end
+
+ -- Skin color selection checkboxes
+ if MPR_Options.CB_Gray then MPROptionsHandleColorButton(MPR_Options.CB_Gray) end
+ if MPR_Options.CB_White then MPROptionsHandleColorButton(MPR_Options.CB_White) end
+ if MPR_Options.CB_Blue then MPROptionsHandleColorButton(MPR_Options.CB_Blue) end
+ if MPR_Options.CB_Green then MPROptionsHandleColorButton(MPR_Options.CB_Green) end
+ if MPR_Options.CB_Yellow then MPROptionsHandleColorButton(MPR_Options.CB_Yellow) end
+ if MPR_Options.CB_Red then MPROptionsHandleColorButton(MPR_Options.CB_Red) end
+ if MPR_Options.CB_SeaGreen then MPROptionsHandleColorButton(MPR_Options.CB_SeaGreen) end
+ if MPR_Options.CB_Orange then MPROptionsHandleColorButton(MPR_Options.CB_Orange) end
+ if MPR_Options.CB_Purple then MPROptionsHandleColorButton(MPR_Options.CB_Purple) end
+
+ -- Skin death report channel checkboxes
+ if MPR_Options.CB_MPR_Options then S:HandleCheckBox(MPR_Options.CB_MPR_Options) end
+ if MPR_Options.CB_Raid then S:HandleCheckBox(MPR_Options.CB_Raid) end
+ if MPR_Options.CB_Self then S:HandleCheckBox(MPR_Options.CB_Self) end
+ if MPR_Options.CB_Guild then S:HandleCheckBox(MPR_Options.CB_Guild) end
+
+ -- Skin sliders
+ if MPR_Slider then
+ S:HandleSliderFrame(MPR_Slider)
+ end
+ if MPR_OpacitySlider then
+ S:HandleSliderFrame(MPR_OpacitySlider)
+ end
+
+ -- Skin buttons
+ if BtnToggleIgnoreDispels then
+ S:HandleButton(BtnToggleIgnoreDispels)
+ end
+ if BtnToggleAuraInfo then
+ S:HandleButton(BtnToggleAuraInfo)
+ end
+ if BtnToggleTimers then
+ S:HandleButton(BtnToggleTimers)
+ end
+ if MPR_Options.BTN_CLEAR_DEATHLOG then
+ S:HandleButton(MPR_Options.BTN_CLEAR_DEATHLOG)
+ end
+ if MPR_Options.BTN_ID_LESS then
+ S:HandleButton(MPR_Options.BTN_ID_LESS)
+ end
+ if MPR_Options.BTN_ID_MORE then
+ S:HandleButton(MPR_Options.BTN_ID_MORE)
+ end
+ if MPR_Options.BTN_REPORT then
+ S:HandleButton(MPR_Options.BTN_REPORT)
+ end
+ if MPR_Options.BTN_SAVE_PREFIX then
+ S:HandleButton(MPR_Options.BTN_SAVE_PREFIX)
+ end
+ if _G["BtnTestKillingBlow"] then
+ S:HandleButton(_G["BtnTestKillingBlow"])
+ end
+
+ -- Skin DKP buttons if they exist
+ for i = 1, 50 do
+ local btnMore = _G["BtnDKPMore" .. i]
+ local btnLess = _G["BtnDKPLess" .. i]
+ if btnMore then S:HandleButton(btnMore) end
+ if btnLess then S:HandleButton(btnLess) end
+ if not btnMore and not btnLess then break end
+ end
+
+ -- Skin edit box
+ if MPR_Options.EB_PREFIX then
+ S:HandleEditBox(MPR_Options.EB_PREFIX)
+ end
+ end
+end
+
+function SkinMPRTimers()
+ if MPR_Timers then
+ MPR_Timers:StripTextures()
+ MPR_Timers:SetTemplate("Transparent")
+
+ -- Skin buttons
+ if MPR_Timers.CloseButton then
+ S:HandleCloseButton(MPR_Timers.CloseButton)
+ MPR_Timers.CloseButton:SetSize(18, 18)
+ end
+ if MPR_Timers.OptionsButton then
+ S:HandleButton(MPR_Timers.OptionsButton)
+ end
+ end
+end
+
+function SkinMPRTimersOptions()
+ if MPR_Timers_Options then
+ MPR_Timers_Options:StripTextures()
+ MPR_Timers_Options:SetTemplate("Transparent")
+
+ -- Skin close button
+ if MPR_Timers_Options.CloseButton then
+ S:HandleCloseButton(MPR_Timers_Options.CloseButton)
+ MPR_Timers_Options.CloseButton:SetSize(18, 18)
+ end
+
+ -- Skin all checkboxes created by timer options
+ for i = 1, 300 do
+ local cb = _G["CheckBox" .. i]
+ if cb and cb:GetParent() == MPR_Timers_Options then
+ S:HandleCheckBox(cb)
+ end
+ end
+ end
+end
+
+function SkinMPRDispels()
+ if MPR_Dispels then
+ MPR_Dispels:StripTextures()
+ MPR_Dispels:SetTemplate("Transparent")
+
+ -- Skin close button (global name used in dispels)
+ local closeBtn = _G["BtnClose"]
+ if closeBtn and closeBtn:GetParent() == MPR_Dispels then
+ S:HandleCloseButton(closeBtn)
+ closeBtn:SetSize(18, 18)
+ end
+
+ -- Skin add spell button
+ if MPR_Dispels.BTN_ADDSPELL then
+ S:HandleButton(MPR_Dispels.BTN_ADDSPELL)
+ end
+
+ -- Skin edit box
+ if MPR_Dispels.EB_ADDSPELL then
+ S:HandleEditBox(MPR_Dispels.EB_ADDSPELL)
+ end
+
+ -- Skin scroll frame
+ if _G["ListSpellsScrollFrame"] then
+ S:HandleScrollBar(_G["ListSpellsScrollFrameScrollBar"])
+ end
+
+ -- Skin remove buttons in the list
+ for i = 1, 12 do
+ local btn = _G["removeBtn" .. i]
+ if btn then
+ S:HandleButton(btn)
+ end
+ end
+ end
+end
+
+function SkinMPRAuraInfo()
+ if MPR_AuraInfo then
+ MPR_AuraInfo:StripTextures()
+ MPR_AuraInfo:SetTemplate("Transparent")
+
+ -- Skin navigation buttons (global names)
+ local btnPrev = _G["BtnPrev"]
+ local btnNext = _G["BtnNext"]
+ local btnLess = _G["BtnLess"]
+ local btnMore = _G["BtnMore"]
+ local btnClose = _G["BtnClose"]
+
+ if btnPrev and btnPrev:GetParent() == MPR_AuraInfo then S:HandleButton(btnPrev) end
+ if btnNext and btnNext:GetParent() == MPR_AuraInfo then S:HandleButton(btnNext) end
+ if btnLess and btnLess:GetParent() == MPR_AuraInfo then S:HandleButton(btnLess) end
+ if btnMore and btnMore:GetParent() == MPR_AuraInfo then S:HandleButton(btnMore) end
+ if btnClose and btnClose:GetParent() == MPR_AuraInfo then
+ S:HandleCloseButton(btnClose)
+ btnClose:SetSize(18, 18)
+ end
+ end
+end
+
+function SkinMPRPenalties()
+ if not MPR_Penalties then return end
+
+ MPR_Penalties:StripTextures()
+ MPR_Penalties:SetTemplate("Transparent")
+
+ -- Skin close button
+ if MPR_Penalties_BtnClose then
+ S:HandleCloseButton(MPR_Penalties_BtnClose)
+ MPR_Penalties_BtnClose:SetSize(18, 18)
+ end
+
+ -- Skin all checkboxes - iterate through all possible CheckBox IDs
+ -- The penalty window creates many checkboxes dynamically
+ for i = 1, 500 do
+ local cb = _G["CheckBox" .. i]
+ if cb and cb:GetParent() == MPR_Penalties then
+ S:HandleCheckBox(cb)
+ end
+ end
+
+ -- Skin numeric field buttons (-, + buttons for DKP amounts)
+ -- These follow pattern: BTN_NF_{ID}_LESS and BTN_NF_{ID}_MORE
+ for i = 1, 500 do
+ local btnLess = _G["BTN_NF_" .. i .. "_LESS"]
+ local btnMore = _G["BTN_NF_" .. i .. "_MORE"]
+ if btnLess then
+ S:HandleButton(btnLess)
+ end
+ if btnMore then
+ S:HandleButton(btnMore)
+ end
+ -- Stop if we've passed all created buttons
+ if not btnLess and not btnMore then break end
+ end
+
+ -- Skin penalty action buttons in the list
+ -- Pattern: MPR_Penalties_Button_{ID}
+ for i = 1, 200 do
+ local btn = _G["MPR_Penalties_Button_" .. i]
+ if btn then
+ S:HandleButton(btn)
+ else
+ break
+ end
+ end
+
+ -- Also try to catch buttons by iterating through Rows table if available
+ if MPR_Penalties.Rows then
+ for i = 0, 20 do
+ local row = MPR_Penalties.Rows[i]
+ if row then
+ if row.Deduct then S:HandleButton(row.Deduct) end
+ if row.Skip then S:HandleButton(row.Skip) end
+ end
+ end
+ end
+
+ local btnNFPattern = "BTN_NF_"
+ for _, btn in pairs(MPR_Penalties.Frames) do
+ if btn and string.sub(btn:GetName(), 1, #btnNFPattern) == btnNFPattern then
+ S:HandleButton(btn)
+ end
+ end
+end
+
+S:AddCallbackForAddon("MPR", "MPR", function()
+ if not E.private.addOnSkins["MP-Reporter"] then return end
+
+ SkinMPReporterOptions()
+
+ -- Skin additional windows when they're initialized
+ if MPR_Timers then SkinMPRTimers() end
+ if MPR_Timers_Options then SkinMPRTimersOptions() end
+ if MPR_Dispels then SkinMPRDispels() end
+ if MPR_AuraInfo then SkinMPRAuraInfo() end
+ if MPR_Penalties then SkinMPRPenalties() end
+
+ -- Hook Initialize functions to skin frames when they're created
+ if MPR_Timers and MPR_Timers.Initialize then
+ hooksecurefunc(MPR_Timers, "Initialize", SkinMPRTimers)
+ end
+ if MPR_Timers_Options and MPR_Timers_Options.Initialize then
+ hooksecurefunc(MPR_Timers_Options, "Initialize", SkinMPRTimersOptions)
+ end
+ if MPR_Dispels and MPR_Dispels.Initialize then
+ hooksecurefunc(MPR_Dispels, "Initialize", SkinMPRDispels)
+ end
+ if MPR_AuraInfo and MPR_AuraInfo.Initialize then
+ hooksecurefunc(MPR_AuraInfo, "Initialize", SkinMPRAuraInfo)
+ end
+ if MPR_Penalties and MPR_Penalties.Initialize then
+ hooksecurefunc(MPR_Penalties, "Initialize", SkinMPRPenalties)
+ end
+end)
\ No newline at end of file
diff --git a/ElvUI_AddOnSkins/Skins/Addons/RaidBuffStatus.lua b/ElvUI_AddOnSkins/Skins/Addons/RaidBuffStatus.lua
new file mode 100644
index 0000000..70ecdfa
--- /dev/null
+++ b/ElvUI_AddOnSkins/Skins/Addons/RaidBuffStatus.lua
@@ -0,0 +1,115 @@
+local E, L, V, P, G = unpack(ElvUI)
+local S = E:GetModule("Skins")
+local AS = E:GetModule("AddOnSkins")
+if not AS:IsAddonLODorEnabled("RaidBuffStatus") then return end
+
+local _G = _G
+local ipairs = ipairs
+local unpack = unpack
+
+local hooksecurefunc = hooksecurefunc
+
+
+S:AddCallbackForAddon("RaidBuffStatus", "RaidBuffStatus", function()
+ if not E.private.addOnSkins.RaidBuffStatus then return end
+
+ local core = LibStub("AceAddon-3.0"):GetAddon("RaidBuffStatus")
+ if not core then return end
+ -- Master
+ RBSFrame:StripTextures()
+ RBSFrame:SetTemplate("Transparent")
+ RBSFrame:SetClampRectInsets(0, 0, 0, 0)
+ -- Talents Frame
+ RBSTalentsFrame:StripTextures()
+ RBSTalentsFrame:SetTemplate("Transparent")
+ RBSTalentsFrame:SetClampRectInsets(0, 0, 0, 0)
+ -- Options
+ RBSOptionsFrame:StripTextures()
+ RBSOptionsFrame:SetTemplate("Transparent")
+ RBSOptionsFrame:SetClampRectInsets(0, 0, 0, 0)
+
+ S:HandleButton(_G["talentsbutton"])
+ _G["talentsbutton"]:SetNormalTexture(E.Media.Textures.Plus)
+ _G["talentsbutton"]:SetPushedTexture(E.Media.Textures.Plus)
+
+ S:HandleButton(_G["optionsbutton"])
+ _G["optionsbutton"]:SetNormalTexture(E.Media.Textures.Plus)
+ _G["optionsbutton"]:SetPushedTexture(E.Media.Textures.Plus)
+
+ S:HandleButton(core.trashbutton)
+ S:HandleButton(core.readybutton)
+ S:HandleButton(core.bossbutton)
+ S:HandleButton(core.scanbutton)
+
+
+ local scrollBars = {
+ -- Main Frame
+
+ }
+
+ local buttons = {
+ "RBSTalentsFrameButton",
+ "RBSOptionsFrameButton",
+ }
+
+ local checkBoxes = {
+ -- Config
+
+ }
+
+ local editBoxes = {
+ -- Master
+
+ }
+
+ local dropDownBoxes = {
+ -- Main Frame
+
+ }
+
+ local closeButtons = {
+ -- Main Frame
+ }
+
+ local statusBars = {
+ -- History
+
+ }
+
+ local sliderFrames = {
+ -- Config
+ }
+
+ for _, scrollBar in ipairs(scrollBars) do
+ scrollBar = _G[scrollBar]
+ scrollBar:GetParent():StripTextures()
+ S:HandleScrollBar(scrollBar)
+ end
+ for _, button in ipairs(buttons) do
+ S:HandleButton(_G[button])
+ end
+ for _, checkBox in ipairs(checkBoxes) do
+ S:HandleCheckBox(_G[checkBox])
+ end
+ for _, editBox in ipairs(editBoxes) do
+ S:HandleEditBox(_G[editBox])
+ end
+ for _, dropDownBox in ipairs(dropDownBoxes) do
+ S:HandleDropDownBox(_G[dropDownBox])
+ end
+ for _, closeButton in ipairs(closeButtons) do
+ closeButton = _G[closeButton]
+ S:HandleCloseButton(closeButton, closeButton:GetParent().backdrop)
+ end
+ for _, sliderFrame in ipairs(sliderFrames) do
+ sliderFrame = _G[sliderFrame]
+ S:HandleSliderFrame(sliderFrame)
+ end
+ for _, statusBar in ipairs(statusBars) do
+ statusBar = _G[statusBar]
+ statusBar:StripTextures()
+ statusBar:CreateBackdrop()
+ statusBar:SetStatusBarTexture(E.media.normTex)
+ E:RegisterStatusBar(statusBar)
+ end
+end)
diff --git a/ElvUI_AddOnSkins/Skins/Addons/load_addons.xml b/ElvUI_AddOnSkins/Skins/Addons/load_addons.xml
index 29c67cb..c60f727 100644
--- a/ElvUI_AddOnSkins/Skins/Addons/load_addons.xml
+++ b/ElvUI_AddOnSkins/Skins/Addons/load_addons.xml
@@ -98,4 +98,7 @@
+
+
+
\ No newline at end of file
diff --git a/ElvUI_AddOnSkins/core.lua b/ElvUI_AddOnSkins/core.lua
index 9326b34..d24728d 100644
--- a/ElvUI_AddOnSkins/core.lua
+++ b/ElvUI_AddOnSkins/core.lua
@@ -109,6 +109,9 @@ local addonList = {
"RCLootCouncil",
"QDKP2_GUI",
"LootWonAlert",
+ "RaidBuffStatus",
+ "GuildManager",
+ "MP-Reporter",
}
local addonAlias = {
["DBM"] = "DBM-Core",
@@ -116,6 +119,7 @@ local addonAlias = {
["AuctioneerSuite"] = "Auc-Advanced",
["_NPCScanOverlay"] = "_NPCScan.Overlay",
["ElvinCDs"] = "!ElvinCDs",
+ ["MP-Reporter"] = "MPR",
}
AS.addons = {}
@@ -638,4 +642,4 @@ local function InitializeCallback()
AS:Initialize()
end
-E:RegisterModule(AS:GetName(), InitializeCallback)
\ No newline at end of file
+E:RegisterModule(AS:GetName(), InitializeCallback)
diff --git a/README.md b/README.md
index d2b44d3..ca3b728 100644
--- a/README.md
+++ b/README.md
@@ -101,3 +101,4 @@ ElvUI_AddOnSkins is a plugin for [ElvUI](https://github.com/ElvUI-WotLK/ElvUI) w
1. ZygorGuidesViewer
1. ZygorTalentAdvisor
1. Quick DKP V2
+1. RaidBuffStatus
\ No newline at end of file