From 208d314d8008df39f9d0b507da2479be96440ee9 Mon Sep 17 00:00:00 2001 From: KyrosKrane Date: Thu, 21 Jul 2016 14:09:12 -0500 Subject: [PATCH] Allow the user to toggle the startup announcement with a slash command. --- AnnoyingPopupRemover.lua | 60 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/AnnoyingPopupRemover.lua b/AnnoyingPopupRemover.lua index 29724ee..3554d50 100644 --- a/AnnoyingPopupRemover.lua +++ b/AnnoyingPopupRemover.lua @@ -186,6 +186,8 @@ local PRINT_CONFIRMATION = true; local NO_CONFIRMATION = false; local HIDE_DIALOG = true; local SHOW_DIALOG = false; +local PRINT_STARTUP = true; +local HIDE_STARTUP = false; --######################################### @@ -207,11 +209,18 @@ function APR:HandleCommandLine(msg, editbox) -- Validate parameters. Only 1 and 2 are checked; rest are ignored. if Line[2] then - if "loot" == Line[2] or "loot" == Line[2] or "roll" == Line[2] or "void" == Line[2] or "vendor" == Line[2] then + -- Check for toggling a pop-up off or on + if "bind" == Line[2] or "loot" == Line[2] or "roll" == Line[2] or "void" == Line[2] or "vendor" == Line[2] then if "show" == Line[1] or "hide" == Line[1] then APR:TogglePopup(Line[2], Line[1]) return; end + -- Check whether to announce ourself at startup + elseif "startup" == Line[2] then + if "show" == Line[1] or "hide" == Line[1] then + APR:ToggleStartupMessage(Line[1]) + return; + end -- Undocumented command to toggle the debug state from the command line. elseif "debug" == Line[1] then if "on" == Line[2] then @@ -244,6 +253,7 @@ end -- APR:HandleCommandLine() function APR:PrintHelp() APR:ChatPrint (L["Allowed commands for"] .. " " .. L["Annoying Pop-up Remover"] .. ":"); APR:ChatPrint("/apr show |cffFFCC00OR|r hide loot |cffFFCC00OR|r roll |cffFFCC00OR|r void |cffFFCC00OR|r vendor"); -- not localized on purpose + APR:ChatPrint("/apr show |cffFFCC00OR|r hide startup"); -- not localized on purpose APR:ChatPrint("/apr status"); -- not localized on purpose APR:ChatPrint("/apr help"); -- not localized on purpose end -- APR:PrintHelp() @@ -297,7 +307,7 @@ function APR:TogglePopup(popup, state) APR:HidePopupBind(PRINT_CONFIRMATION); else -- error, bad programmer, no cookie! - DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); + APR:DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); return false end else @@ -317,7 +327,7 @@ function APR:TogglePopup(popup, state) APR:HidePopupRoll(PRINT_CONFIRMATION); else -- error, bad programmer, no cookie! - DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); + APR:DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); return false end else @@ -337,7 +347,7 @@ function APR:TogglePopup(popup, state) APR:HidePopupVoid(PRINT_CONFIRMATION); else -- error, bad programmer, no cookie! - DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); + APR:DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); return false end else @@ -357,7 +367,7 @@ function APR:TogglePopup(popup, state) APR:HidePopupVendor(PRINT_CONFIRMATION); else -- error, bad programmer, no cookie! - DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); + APR:DebugPrint("Error in APR:TogglePopup: unknown state " .. state .. " for popup type " .. popup .. " passed in."); return false end else @@ -371,7 +381,7 @@ function APR:TogglePopup(popup, state) else -- error, bad programmer, no cookie! - DebugPrint("Error in APR:TogglePopup: unknown popup type " .. popup .. " passed in."); + APR:DebugPrint("Error in APR:TogglePopup: unknown popup type " .. popup .. " passed in."); return false end end -- APR:TogglePopup() @@ -380,14 +390,29 @@ end -- APR:TogglePopup() function APR:SetDebug(mode) if mode then APR.DebugMode = true; - APR:ChatPrint ("Debug mode is now on.") + APR:ChatPrint (L["Debug mode is now on."]) else APR.DebugMode = false; - APR:ChatPrint ("Debug mode is now off.") + APR:ChatPrint (L["Debug mode is now off."]) end end -- APR:SetDebug() +function APR:ToggleStartupMessage(mode) + if "show" == mode then + APR.DB.PrintStartupMessage = PRINT_STARTUP; + APR:ChatPrint (L["Startup announcement message will printed in your chat frame at login."]) + elseif "hide" == mode then + APR.DB.PrintStartupMessage = HIDE_STARTUP; + APR:ChatPrint (L["Startup announcement message will NOT printed in your chat frame at login."]) + else + -- error, bad programmer, no cookie! + APR:DebugPrint("Error in APR:ToggleStartupMessage: unknown mode " .. mode .. " passed in."); + return false + end +end -- APR:ToggleStartupMessage() + + --######################################### --# Dialog toggling functions --######################################### @@ -639,10 +664,12 @@ end -- APR.Events:VOID_STORAGE_DEPOSIT_UPDATE() -- On-load handler for addon initialization. function APR.Events:PLAYER_LOGIN(...) -- Announce our load. - APR:ChatPrint (L["Annoying Pop-up Remover"] .. " " .. APR.Version .. " " .. L["loaded"] .. ". For help and options, type /apr help"); + if APR.DB.PrintStartupMessage then + APR:ChatPrint (L["Annoying Pop-up Remover"] .. " " .. APR.Version .. " " .. L["loaded"] .. ". " .. L["For help and options, type /apr help"]); + end -- Force the default Void Storage frame to load so we can override it. - local isloaded, reason = LoadAddOn("Blizzard_VoidStorageUI") + local isloaded, reason = LoadAddOn("Blizzard_VoidStorageUI"); APR:DebugPrint ("Blizzard_VoidStorageUI isloaded is ", isloaded); APR:DebugPrint ("Blizzard_VoidStorageUI reason is ", reason); end -- APR.Events:PLAYER_LOGIN() @@ -654,22 +681,26 @@ function APR.Events:ADDON_LOADED(addon) -- Load the saved variables, or initialize if they don't exist yet. if APR_DB then APR:DebugPrint ("Loading existing saved var."); - if APR_DB.HideBind = nil then + if nil == APR_DB.HideBind then APR_DB.HideBind = SHOW_DIALOG; APR:DebugPrint ("HideBind initialized to false."); end; - if APR_DB.HideRoll = nil then + if nil == APR_DB.HideRoll then APR_DB.HideRoll = SHOW_DIALOG; APR:DebugPrint ("HideRoll initialized to false."); end; - if APR_DB.HideVoid = nil then + if nil == APR_DB.HideVoid then APR_DB.HideVoid = SHOW_DIALOG; APR:DebugPrint ("HideVoid initialized to false."); end; - if APR_DB.HideVendor = nil then + if nil == APR_DB.HideVendor then APR_DB.HideVendor = SHOW_DIALOG; APR:DebugPrint ("HideVendor initialized to false."); end; + if nil == APR_DB.PrintStartupMessage then + APR_DB.PrintStartupMessage = PRINT_STARTUP; + APR:DebugPrint ("PrintStartupMessage initialized to true."); + end; APR:DebugPrint ("Applying saved settings."); APR.DB = APR_DB else @@ -679,6 +710,7 @@ function APR.Events:ADDON_LOADED(addon) HideRoll = true, HideVoid = true, HideVendor = true, + PrintStartupMessage = true, } ; end -- 1.7.9.5