vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
--[[
        Nurfed_PlayerFrame.lua
        GypsyVersion++2004.11.13++

        Moves the player frame to the bottom
        left corner of the screen.
        Adds health, mana, and experience
        text, as well as hit point percentage
        and rested experience bonus to the right
        and below the default player frame.
        Adds graphical framework to accomodate
        the textual displays.
        Moves the right click player window
        to be viewable with the new player frame
        placement.
]]

-- ** DEFAULT SETTINGS ** --

-- Color player health by default
Nurfed_DefaultColorPlayerHealth = 1;
-- Color player mana by default
Nurfed_DefaultColorPlayerMana = 1;
-- Color player name on attack by default
Nurfed_DefaultColorPlayerName = 1;
-- Color player health bar by default
Nurfed_DefaultColorPlayerHealthBar = 1;

-- ** PLAYER FRAME FUNCTIONS ** --

function Nurfed_PlayerFrameOnLoad ()
        -- Health and mana registrations
        this:RegisterEvent("UNIT_HEALTH");
        this:RegisterEvent("UNIT_MANA");
        this:RegisterEvent("UNIT_RAGE");
        this:RegisterEvent("UNIT_FOCUS");
        this:RegisterEvent("UNIT_ENERGY");
        -- If a druid shapeshifts, the bar changes from rage/mana/energy/etc
        this:RegisterEvent("UPDATE_SHAPESHIFT_FORMS");
        -- Experience registrations
        this:RegisterEvent("PLAYER_XP_UPDATE");
        this:RegisterEvent("UPDATE_EXHAUSTION");
        this:RegisterEvent("PLAYER_LEVEL_UP");
        -- Register for variable loading to run our configuration registrations
        this:RegisterEvent("PLAYER_ENTERING_WORLD");
        this:RegisterEvent("VARIABLES_LOADED");
        -- Combat events for coloring the player name
        this:RegisterEvent("PLAYER_ENTER_COMBAT");
        this:RegisterEvent("PLAYER_LEAVE_COMBAT");
end

function Nurfed_PlayerFrameOnEvent (event)
        if ( event == "PLAYER_ENTERING_WORLD" ) then
                -- We need to do an initial display of  all our values when the player first logs in.
                Nurfed_ShowPlayerHealth();
                Nurfed_ShowPlayerHealthPercent();
                Nurfed_ShowPlayerMana();
                Nurfed_ShowPlayerExp();
                return;
        end
        -- Added unit exp handles to update the player displayed experience numbers.
        if(event == "PLAYER_XP_UPDATE" or event == "UPDATE_EXHAUSTION" or event == "PLAYER_LEVEL_UP") then
                Nurfed_ShowPlayerExp();
                return;
        end
        -- Added unit_health and unit_mana (ish) event handlers.  Anytime either of these values change, we need to update.
        if( event == "UNIT_HEALTH" ) then
                Nurfed_ShowPlayerHealth();
                Nurfed_ShowPlayerHealthPercent();
                return;
        end
        -- Also keep in mind, "mana" is really mana, energy, focus, or rage, so we need to watch all of those.
        if( event == "UNIT_MANA" or event == "UNIT_RAGE" or event == "UNIT_FOCUS" or event == "UNIT_ENERGY" or event == "UPDATE_SHAPESHIFT_FORMS") then
                Nurfed_ShowPlayerMana();
                return;
        end
        -- Color the player name text red when entering combat
        if (event == "PLAYER_ENTER_COMBAT") then
                Nurfed_UpdateAttackState();
                return;
        end
        -- Reset player name text
        if (event == "PLAYER_LEAVE_COMBAT") then
                Nurfed_UpdateAttackState();
                return;
        end
        -- When variables load, run our options setup
        if (event == "VARIABLES_LOADED") then
                -- Check to see if the player frame is a standalone addon or if the GypsyMod shell is available
                if (Nurfed_SHELL == 1) then
                        -- Set defaults if there is no saved value
                        if (Nurfed_RetrieveSaved("ColorPlayerHealth") == nil) then
                                Nurfed_ColorPlayerHealth = Nurfed_DefaultColorPlayerHealth;
                        else
                                Nurfed_ColorPlayerHealth = Nurfed_RetrieveSaved("ColorPlayerHealth");
                        end
                        if (Nurfed_RetrieveSaved("ColorPlayerMana") == nil) then
                                Nurfed_ColorPlayerMana = Nurfed_DefaultColorPlayerMana;
                        else
                                Nurfed_ColorPlayerMana = Nurfed_RetrieveSaved("ColorPlayerMana");
                        end
                        if (Nurfed_RetrieveSaved("ColorPlayerName") == nil) then
                                Nurfed_ColorPlayerName = Nurfed_DefaultColorPlayerName;
                        else
                                Nurfed_ColorPlayerName = Nurfed_RetrieveSaved("ColorPlayerName");
                        end
                        if (Nurfed_RetrieveSaved("ColorPlayerHealthBar") == nil) then
                                Nurfed_ColorPlayerHealthBar = Nurfed_DefaultColorPlayerHealthBar;
                        else
                                Nurfed_ColorPlayerHealthBar = Nurfed_RetrieveSaved("ColorPlayerHealthBar");
                        end
                        --Register with GypsyMod saving
                        Nurfed_RegisterOption(210, "header", nil, nil, nil, Nurfed_TEXT_UNITBARS_PLAYERHEADERLABEL, Nurfed_TEXT_UNITBARS_PLAYERHEADERTOOLTIP);
                        Nurfed_RegisterOption(211, "check", Nurfed_ColorPlayerHealth, "ColorPlayerHealth", Nurfed_ShowPlayerHealthPercent, Nurfed_TEXT_UNITBARS_COLORPLAYERTEXTLABEL, Nurfed_TEXT_UNITBARS_COLORPLAYERTEXTTOOLTIP);
                        Nurfed_RegisterOption(212, "check", Nurfed_ColorPlayerMana, "ColorPlayerMana", Nurfed_ShowPlayerMana, Nurfed_TEXT_UNITBARS_COLORPLAYERMANATEXTLABEL, Nurfed_TEXT_UNITBARS_COLORPLAYERMANATEXTTOOLTIP);
                        Nurfed_RegisterOption(213, "check", Nurfed_ColorPlayerName, "ColorPlayerName", nil, Nurfed_TEXT_UNITBARS_COLORNAMELABEL, Nurfed_TEXT_UNITBARS_COLORNAMETOOLTIP);
                        Nurfed_RegisterOption(214, "check", Nurfed_ColorPlayerHealthBar, "ColorPlayerHealthBar", Nurfed_ShowPlayerHealthPercent, Nurfed_TEXT_UNITBARS_COLORPLAYERBARLABEL, Nurfed_TEXT_UNITBARS_COLORPLAYERBARTOOLTIP);
                else
                        -- If our toggles aren't saved, default to on
                        if (Nurfed_ColorPlayerHealth == nil) then
                                Nurfed_ColorPlayerHealth = Nurfed_DefaultColorPlayerHealth;
                        end
                        if (Nurfed_ColorPlayerMana == nil) then
                                Nurfed_ColorPlayerMana = Nurfed_DefaultColorPlayerMana;
                        end
                        if (Nurfed_ColorPlayerName == nil) then
                                Nurfed_ColorPlayerName = Nurfed_DefaultColorPlayerName;
                        end
                        if (Nurfed_ColorPlayerHealthBar == nil) then
                                Nurfed_ColorPlayerHealthBar = Nurfed_DefaultColorPlayerHealthBar;
                        end
                        -- Save manually for standalone options
                        --RegisterForSave("Nurfed_ColorPlayerHealth");
                        --RegisterForSave("Nurfed_ColorPlayerMana");
                        --RegisterForSave("Nurfed_ColorPlayerName");
                        --RegisterForSave("Nurfed_ColorPlayerHealthBar");
                        -- Register slash commands
                        SlashCmdList["Nurfed_COLORPLAYERHEALTH"] = Nurfed_ColorPlayerHealthSlashHandler;
                        SLASH_Nurfed_COLORPLAYERHEALTH1 = "/unitbarcolorplayerhealth";
                        SLASH_Nurfed_COLORPLAYERHEALTH2 = "/ubcolorplayerhealth";
                        SlashCmdList["Nurfed_COLORPLAYERMANA"] = Nurfed_ColorPlayerManaSlashHandlers;
                        SLASH_Nurfed_COLORPLAYERMANA1 = "/unitbarcolorplayermana";
                        SLASH_Nurfed_COLORPLAYERMANA2 = "/ubcolorplayermana";
                        SlashCmdList["Nurfed_COLORPLAYERNAME"] = Nurfed_ColorPlayerNameSlashHandlers;
                        SLASH_Nurfed_COLORPLAYERNAME1 = "/unitbarcolorplayername";
                        SLASH_Nurfed_COLORPLAYERNAME2 = "/ubcolorplayername";
                        SlashCmdList["Nurfed_COLORPLAYERHEALTHBAR"] = Nurfed_ColorPlayerHealthBarSlashHandlers;
                        SLASH_Nurfed_COLORPLAYERHEALTHBAR1 = "/unitbarcolorplayerhealthbar";
                        SLASH_Nurfed_COLORPLAYERHEALTHBAR2 = "/ubcolorplayerhealthbar";
                end
                return;
        end
end

-- Update player name depending on attack state
function Nurfed_UpdateAttackState ()
        if (Nurfed_RetrieveOption ~= nil) then
                if (Nurfed_RetrieveOption(213) ~= nil) then
                        Nurfed_ColorPlayerName = Nurfed_RetrieveOption(213)[Nurfed_VALUE];
                end
        end
        if (Nurfed_ColorPlayerName == 1) then
                local playerFrame = getglobal("PlayerFrame");
                if (playerFrame.inCombat and playerFrame.OnHateList or playerFrame.inCombat) then
                        PlayerName:SetTextColor(1, 0, 0);
                else
                        PlayerName:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                end
        end
end

-- ** EXPERIENCE BAR FUNCTIONS ** --

function Nurfed_PlayerFrameExpBarOnLoad ()
        -- Experience bar registrations
        this:RegisterEvent("PLAYER_XP_UPDATE");
        this:RegisterEvent("PLAYER_LEVEL_UP");
        this:RegisterEvent("PLAYER_ENTERING_WORLD");
        -- Can not be any higher, should not be lower
        this:SetFrameLevel(0);
end

function Nurfed_PlayerFrameExpBarOnEvent (event)
        -- Setup our experience bar when the player logs in, when experience changes, or when the player levels up
        if (event == "PLAYER_XP_UPDATE" or event == "PLAYER_LEVEL_UP" or event == "PLAYER_ENTERING_WORLD") then
                local currXP = UnitXP("player");
                local nextXP = UnitXPMax("player");
                this:SetMinMaxValues(min(0, currXP), nextXP);
                this:SetValue(currXP);
                return;
        end
end

-- ** CLICK CATCH FUNCTIONS ** --

-- Function to register for clicks for the click catcher when it loads
function Nurfed_PlayerFrameClickCatchOnLoad ()
        this:RegisterForClicks("LeftButtonUp", "RightButtonUp");
end

-- Function pulled from PlayerFrame.lua to handle clicks in our AddOn
function Nurfed_PlayerFrameClickCatch(button)
        if ( SpellIsTargeting() and button == "RightButton" ) then
                SpellStopTargeting();
                return;
        end
        if ( button == "LeftButton" ) then
                if ( SpellIsTargeting() ) then
                        SpellTargetUnit("player");
                elseif ( CursorHasItem() ) then
                        AutoEquipCursorItem();
                else
                        TargetUnit("player");
                end
        else
                -- Right click menu needs to be moved
ToggleDropDownMenu(1, nil, PlayerFrameDropDown, "PlayerFrame", 106, 27);
--              UnitPopup_ShowMenu(Nurfed_PlayerFrame, "SELF", "player");
--              UnitPopup:ClearAllPoints();
DropDownList1:ClearAllPoints();
                -- Check for inverted frame status and position the menu accordingly
                if (Nurfed_InvertUnitFrames == 1) then
                        DropDownList1:SetPoint("BOTTOMLEFT", "PlayerFrame", "TOPLEFT", 20, -10);
                else
                        DropDownList1:SetPoint("TOPLEFT", "PlayerFrame", "BOTTOMLEFT", 20, 10);
                end
        end
end

-- ** TEXT DISPLAY FUNCTIONS ** --

function Nurfed_ShowPlayerHealth()
        -- This gets the whole status text "Health xxxx / yyyy" - we need to parse it to remove the "Health" part
--[[    local text = PlayerFrameHealthBarText:GetText();
        if( text == nil ) then
                Nurfed_PlayerHealthText:SetText("Failure #1");
        else
                -- It always says "Health " first, so just remove the first 7 characters off the string
                local health = strsub(text, 7);
                if(health == nil) then
                        Nurfed_PlayerHealthText:SetText("Failure #2");
                else
                        Nurfed_PlayerHealthText:SetText(health);
                end
        end]]
        if (UnitHealth("player") and UnitHealthMax("player")) then
                Nurfed_PlayerHealthText:SetText(UnitHealth("player").." / "..UnitHealthMax("player"));
        end
end

function Nurfed_ShowPlayerHealthPercent()
        -- This gets the whole status text "Health xxxx / yyyy" - we need to parse it to remove the "Health" part
--[[    local text = PlayerFrameHealthBarText:GetText();
        if( text == nil ) then
                Nurfed_PlayerHealthPercent:SetText("Failure #1");
        else
                -- It always says "Health " first, so just remove the first 7 characters off the string
                local health = strsub(text, 7);
                -- We now have "617 / 1234".  We need to parse that to 2 variables:  cur = "617" and total = "1234"
                local find = strfind(health, "/");
                if( find == nil ) then
                        Nurfed_PlayerHealthPercent:SetText(health);
                else
                        local cur = strsub(health, 0, strlen(health)-find);
                        if( cur == nil) then
                                Nurfed_PlayerHealthPercent:SetText("Failure #2b");
                        else
                                local total = strsub(health, strlen(cur)+2);
                                if(strfind(total, "/") ~= nil) then
                                        total = strsub(total, 2);
                                end

                                if ( total == nil ) then
                                        Nurfed_PlayerHealthPercent:SetText("Failure #2c");
                                else
                                        if( tonumber(cur) == 0 or tonumber(cur) == nil ) then
                                                -- This can happen if you are dead
                                                Nurfed_PlayerHealthPercent:SetText("0%");
                                                return;
                                        end
                                        if(tonumber(total) == 0 or tonumber(total) == nil) then
                                                -- This REALLY should be impossible
                                                Nurfed_PlayerHealthPercent:SetText("Failure #2d");
                                                return;
                                        end
                                        local percent = (tonumber(cur) / tonumber(total)) * 100;
                                        Nurfed_PlayerHealthPercent:SetText(ceil(percent) .. "%");
                                        
                                        if (Nurfed_RetrieveOption ~= nil) then
                                                if (Nurfed_RetrieveOption(211) ~= nil) then
                                                        Nurfed_ColorPlayerHealth = Nurfed_RetrieveOption(211)[Nurfed_VALUE];
                                                end     
                                                if (Nurfed_RetrieveOption(214) ~= nil) then
                                                        Nurfed_ColorPlayerHealthBar = Nurfed_RetrieveOption(214)[Nurfed_VALUE];
                                                end
                                        end
                                        if (Nurfed_ColorPlayerHealth == 1) then
                                                if ((percent <= 100) and (percent > 75)) then
                                                        Nurfed_PlayerHealthPercent:SetTextColor(0, 1, 0);
                                                        Nurfed_PlayerHealthText:SetTextColor(0, 1, 0);
                                                elseif ((percent <= 75) and (percent > 50)) then
                                                        Nurfed_PlayerHealthPercent:SetTextColor(1, 1, 0);
                                                        Nurfed_PlayerHealthText:SetTextColor(1, 1, 0);
                                                elseif ((percent <= 50) and (percent > 25)) then
                                                        Nurfed_PlayerHealthPercent:SetTextColor(1, 0.5, 0);
                                                        Nurfed_PlayerHealthText:SetTextColor(1, 0.5, 0);
                                                else
                                                        Nurfed_PlayerHealthPercent:SetTextColor(1, 0, 0);
                                                        Nurfed_PlayerHealthText:SetTextColor(1, 0, 0);
                                                end
                                        else
                                                Nurfed_PlayerHealthPercent:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                                                Nurfed_PlayerHealthText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                                        end
                                        if (Nurfed_ColorPlayerHealthBar == 1) then
                                                if ((percent <= 100) and (percent > 75)) then
                                                        PlayerFrameHealthBar:SetStatusBarColor(0, 1, 0);
                                                elseif ((percent <= 75) and (percent > 50)) then
                                                        PlayerFrameHealthBar:SetStatusBarColor(1, 1, 0);
                                                elseif ((percent <= 50) and (percent > 25)) then
                                                        PlayerFrameHealthBar:SetStatusBarColor(1, 0.5, 0);
                                                else
                                                        PlayerFrameHealthBar:SetStatusBarColor(1, 0, 0);
                                                end
                                        else
                                                PlayerFrameHealthBar:SetStatusBarColor(0, 1, 0);
                                        end
                                end
                        end
                end
        end]]
        if (UnitHealth("player") and UnitHealthMax("player")) then
                local health = UnitHealth("player");
                local max = UnitHealthMax("player");
                local percent = (health/max) * 100;
                
                Nurfed_PlayerHealthPercent:SetText(ceil(percent).."%");
                
                if (Nurfed_RetrieveOption ~= nil) then
                        if (Nurfed_RetrieveOption(211) ~= nil) then
                                Nurfed_ColorPlayerHealth = Nurfed_RetrieveOption(211)[Nurfed_VALUE];
                        end
                        if (Nurfed_RetrieveOption(214) ~= nil) then
                                Nurfed_ColorPlayerHealthBar = Nurfed_RetrieveOption(214)[Nurfed_VALUE];
                        end
                end
                if (Nurfed_ColorPlayerHealth == 1) then
                        if ((percent <= 100) and (percent > 75)) then
                                Nurfed_PlayerHealthPercent:SetTextColor(0, 1, 0);
                                Nurfed_PlayerHealthText:SetTextColor(0, 1, 0);
                        elseif ((percent <= 75) and (percent > 50)) then
                                Nurfed_PlayerHealthPercent:SetTextColor(1, 1, 0);
                                Nurfed_PlayerHealthText:SetTextColor(1, 1, 0);
                        elseif ((percent <= 50) and (percent > 25)) then
                                Nurfed_PlayerHealthPercent:SetTextColor(1, 0.5, 0);
                                Nurfed_PlayerHealthText:SetTextColor(1, 0.5, 0);
                        else
                                Nurfed_PlayerHealthPercent:SetTextColor(1, 0, 0);
                                Nurfed_PlayerHealthText:SetTextColor(1, 0, 0);
                        end
                else
                        Nurfed_PlayerHealthPercent:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                        Nurfed_PlayerHealthText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                end
                if (Nurfed_ColorPlayerHealthBar == 1) then
                        if ((percent <= 100) and (percent > 75)) then
                                PlayerFrameHealthBar:SetStatusBarColor(0, 1, 0);
                        elseif ((percent <= 75) and (percent > 50)) then
                                PlayerFrameHealthBar:SetStatusBarColor(1, 1, 0);
                        elseif ((percent <= 50) and (percent > 25)) then
                                PlayerFrameHealthBar:SetStatusBarColor(1, 0.5, 0);
                        else
                                PlayerFrameHealthBar:SetStatusBarColor(1, 0, 0);
                        end
                else
                        PlayerFrameHealthBar:SetStatusBarColor(0, 1, 0);
                end
        end
end

function Nurfed_ShowPlayerMana()
        -- This gets the whole status text "Mana xxxx / yyyy" - we need to parse it to remove the "Mana " part
--[[    local text = PlayerFrameManaBarText:GetText();
        if( text == nil ) then
                Nurfed_PlayerManaText:SetText("Failure #1");
        else
                -- Determine mana type and set a globally accessible variable
                if (strfind(text, "Rage")) then
                        Nurfed_PlayerManaType = "Rage";
                elseif (strfind(text, "Energy")) then
                        Nurfed_PlayerManaType = "Energy";
                else
                        Nurfed_PlayerManaType = "Mana";
                end
                -- Initialize local mana text variable
                local mana = nil;
                -- Remove the first 5 or 7 characters, depending on mana type
                if (Nurfed_PlayerManaType == "Energy") then
                        mana = strsub(text, 7);
                else
                        mana = strsub(text, 5);
                end
                -- Make sure mana contains text, then color our text accordingly
                if(mana == nil) then
                        Nurfed_PlayerManaText:SetText("Failure #2");
                else
                        Nurfed_PlayerManaText:SetText(mana);
                        
                        if (Nurfed_RetrieveOption ~= nil) then
                                if (Nurfed_RetrieveOption(212) ~= nil) then
                                        Nurfed_ColorPlayerMana = Nurfed_RetrieveOption(212)[Nurfed_VALUE];
                                end
                        end
                        if (Nurfed_ColorPlayerMana == 1) then
                                if (Nurfed_PlayerManaType == "Rage") then
                                        Nurfed_PlayerManaText:SetTextColor(1, 0.50, 0.50);
                                elseif (Nurfed_PlayerManaType == "Energy") then
                                        Nurfed_PlayerManaText:SetTextColor(1, 1, 0);
                                else
                                        Nurfed_PlayerManaText:SetTextColor(0.75, 0.75, 1);
                                end
                        else
                                Nurfed_PlayerManaText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                        end
                end
        end]]
        if (UnitMana("player") and UnitManaMax("player") and UnitPowerType("player")) then
                Nurfed_PlayerManaText:SetText(UnitMana("player").." / "..UnitManaMax("player"));
                local type = UnitPowerType("player");
                if (Nurfed_RetrieveOption ~= nil) then
                        if (Nurfed_RetrieveOption(212) ~= nil) then
                                Nurfed_ColorPlayerMana = Nurfed_RetrieveOption(212)[Nurfed_VALUE];
                        end
                end
                if (Nurfed_ColorPlayerMana == 1) then
                        if (type == 0) then
                                Nurfed_PlayerManaText:SetTextColor(0.75, 0.75, 1);
                        elseif (type == 1) then
                                Nurfed_PlayerManaText:SetTextColor(1, 0.50, 0.50);
                        elseif (type == 3) then
                                Nurfed_PlayerManaText:SetTextColor(1, 1, 0);
                        end
                else
                        Nurfed_PlayerManaText:SetTextColor(NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b);
                end
        end             
end

function Nurfed_ShowPlayerExp()
        local currXP = UnitXP("player");
        local nextXP = UnitXPMax("player");
        local restXP = GetXPExhaustion();

        if(restXP == nil) then
                local str = format("%s / %s", currXP, nextXP);
                Nurfed_ExpAmount:SetText(str);
        else
                -- Divide the rested # in half because
                -- (a) that's the exp you really end up getting
                -- (b) it isn't such an absurdly huge number taking up a lot of space on the UI.

                local str = format("%s / %s (+%s)", currXP, nextXP, (tonumber(restXP) / 2));
                Nurfed_ExpAmount:SetText(str);
        end
end

-- ** SLASH HANDLER FUNCTIONS ** --

function Nurfed_ColorPlayerHealthSlashHandler (msg)
        msg = string.lower(msg);
        if (msg == "yes" or msg == "1" or msg == "true") then
                Nurfed_ColorPlayerHealth = 1;
                DEFAULT_CHAT_FRAME:AddMessage("Setting player health display text to color according to health percentage.", 1, 1, 1);
        elseif (msg == "no" or msg == "0" or msg == "false") then
                Nurfed_ColorPlayerHealth = 0;
                DEFAULT_CHAT_FRAME:AddMessage("Setting player health display text color to default.", 1, 1, 1);
        elseif (msg == "default" or msg == "reset" or msg == "revert") then
                Nurfed_ColorPlayerHealth = Nurfed_DefaultColorPlayerHealth;
                DEFAULT_CHAT_FRAME:AddMessage("Reverting player health color state to default.", 1, 1, 1);
        elseif (msg == "help") then
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayerhealth /ubcolorplayerhealth", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player health.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player health.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        elseif (msg == "") then
                if (Nurfed_ColorPlayerHealth == 1) then 
                        Nurfed_ColorPlayerHealth = 0;
                        DEFAULT_CHAT_FRAME:AddMessage("Setting player health display text color to default.", 1, 1, 1);
                else 
                        Nurfed_ColorPlayerHealth = 1; 
                        DEFAULT_CHAT_FRAME:AddMessage("Setting player health display text to color according to health percentage.", 1, 1, 1);
                end
        else
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayerhealth /ubcolorplayerhealth", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player health.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player health.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        end
end

function Nurfed_ColorPlayerManaSlashHanlder (msg)
        msg = string.lower(msg);
        if (msg == "yes" or msg == "1" or msg == "true") then
                Nurfed_ColorPlayerMana = 1;
                DEFAULT_CHAT_FRAME:AddMessage("Setting player mana display text to color according to mana type.", 1, 1, 1);
        elseif (msg == "no" or msg == "0" or msg == "false") then
                Nurfed_ColorPlayerMana = 0;
                DEFAULT_CHAT_FRAME:AddMessage("Setting player mana display text color to default.", 1, 1, 1);
        elseif (msg == "default" or msg == "reset" or msg == "revert") then
                Nurfed_ColorPlayerMana = Nurfed_DefaultColorPlayerMana;
                DEFAULT_CHAT_FRAME:AddMessage("Reverting player mana text display state to default.", 1, 1, 1);
        elseif (msg == "help") then
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayermana /ubcolorplayermana", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player mana.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player mana.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        elseif (msg == "") then
                if (Nurfed_ColorPlayerMana == 1) then 
                        Nurfed_ColorPlayerMana = 0;
                        DEFAULT_CHAT_FRAME:AddMessage("Setting player mana display text color to default.", 1, 1, 1);
                else 
                        Nurfed_ColorPlayerMana = 1; 
                        DEFAULT_CHAT_FRAME:AddMessage("Setting player mana display text to color according to mana type.", 1, 1, 1);
                end
        else
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayermana /ubcolorplayermana", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player mana.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player mana.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        end
end

function Nurfed_ColorPlayerNameSlashHanlder (msg)
        msg = string.lower(msg);
        if (msg == "yes" or msg == "1" or msg == "true") then
                Nurfed_ColorPlayerName = 1;
                DEFAULT_CHAT_FRAME:AddMessage("Setting player name text to color red when attack is on.", 1, 1, 1);
        elseif (msg == "no" or msg == "0" or msg == "false") then
                Nurfed_ColorPlayerName = 0;
                DEFAULT_CHAT_FRAME:AddMessage("Setting player name text to stay default.", 1, 1, 1);
        elseif (msg == "default" or msg == "reset" or msg == "revert") then
                Nurfed_ColorPlayerName = Nurfed_DefaultColorPlayerName;
                DEFAULT_CHAT_FRAME:AddMessage("Reverting player name text display state to default.", 1, 1, 1);
        elseif (msg == "help") then
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayername /ubcolorplayername", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player name on attack.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player name on attack.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        elseif (msg == "") then
                if (Nurfed_ColorPlayerName == 1) then 
                        Nurfed_ColorPlayerName = 0;
                        DEFAULT_CHAT_FRAME:AddMessage("Setting player name text to stay default.", 1, 1, 1);
                else 
                        Nurfed_ColorPlayerName = 1; 
                        DEFAULT_CHAT_FRAME:AddMessage("Setting player name text to color red when attack is on.", 1, 1, 1);
                end
        else
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayername /ubcolorplayername", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player name on attack.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player name on attack.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        end
end

function Nurfed_ColorPlayerHealthBarSlashHanlder (msg)
        msg = string.lower(msg);
        if (msg == "yes" or msg == "1" or msg == "true") then
                Nurfed_ColorPlayerHealthBar = 1;
                DEFAULT_CHAT_FRAME:AddMessage("Coloring player health bar progressively.", 1, 1, 1);
        elseif (msg == "no" or msg == "0" or msg == "false") then
                Nurfed_ColorPlayerHealthBar = 0;
                DEFAULT_CHAT_FRAME:AddMessage("Coloring player health bar normally.", 1, 1, 1);
        elseif (msg == "default" or msg == "reset" or msg == "revert") then
                Nurfed_ColorPlayerHealthBar = Nurfed_DefaultColorPlayerHealthBar;
                DEFAULT_CHAT_FRAME:AddMessage("Reverting player health bar option state to default.", 1, 1, 1);
        elseif (msg == "help") then
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayerhealthbar /ubcolorplayerhealthbar", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player health bar progressively.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player health bar progressively.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        elseif (msg == "") then
                if (Nurfed_ColorPlayerHealthBar == 1) then 
                        Nurfed_ColorPlayerHealthBar = 0;
                        DEFAULT_CHAT_FRAME:AddMessage("Coloring player health bar normally.", 1, 1, 1);
                else 
                        Nurfed_ColorPlayerHealthBar = 1; 
                        DEFAULT_CHAT_FRAME:AddMessage("Coloring player health bar progressively.", 1, 1, 1);
                end
        else
                DEFAULT_CHAT_FRAME:AddMessage("Valid parameters for: /unitbarcolorplayerhealthbar /ubcolorplayerhealthbar", 1, 0.89, 0.01);
                DEFAULT_CHAT_FRAME:AddMessage("   help - This listing.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   yes, true, or 1 - Color player health bar progressively.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   no, false, or 0 - Do not color player health bar progressively.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   default, reset, or revert - Revert to default state.", 1, 1, 1);
                DEFAULT_CHAT_FRAME:AddMessage("   blank - Toggle based on current state.", 1, 1, 1);
        end
end

Generated by GNU Enscript 1.6.5.90.