vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
local simpleSelfCastOriginalUseAction;
local splashString = "Simple Self Cast by Zugreg.\nUse |cffffff00/ssc help|r to display a command list.";
local helpString = "/ssc - Toggles self casting.\n/ssc help - Displays this message.\n/ssc enable - Enables self casting.\n/ssc disable - Disables self casting.\n/ssc nosplash - Prevents the splash message from being displayed.\n/ssc splash - Displays the splash message at each startup.";

function SimpleSelfCast_OnLoad()
        this:RegisterEvent("VARIABLES_LOADED");
end

function SimpleSelfCast_OnEvent(event)
        if event == "VARIABLES_LOADED" then
                SlashCmdList["SIMPLESELFCAST"] = SimpleSelfCast_Command;
                SLASH_SIMPLESELFCAST1 = "/ssc";
                SLASH_SIMPLESELFCAST2 = "/simpleselfcast";
                if simpleSelfCastActive == nil then
                        simpleSelfCastActive = true;
                end
                if simpleSelfCastSplash == nil then
                        simpleSelfCastSplash = true;
                end
                if simpleSelfCastSplash then
                        SSCPrint(splashString);
                end
                if simpleSelfCastActive then
                        SimpleSelfCast_Enable();
                end
        end
end

function SimpleSelfCast_Command(arg)
        if arg == "enable" then
                SimpleSelfCast_Enable();
        elseif arg == "disable" then
                SimpleSelfCast_Disable();
        elseif arg == "help" then
                SSCPrint(helpString);
        elseif arg == "nosplash" then
                SSCPrint("Splash message on starup will not be displayd.");
                simpleSelfCastSplash = false;
        elseif arg == "splash" then
                SSCPrint("Splash message on starup will be displayd.");
                simpleSelfCastSplash = true;
        else
                if simpleSelfCastActive then
                        SimpleSelfCast_Disable();
                else
                        SimpleSelfCast_Enable();
                end
        end
end

function SimpleSelfCast_Enable()
        SSCPrint("Simple Self Cast enabled.");
        if simpleSelfCastOriginalUseAction == nil then
                simpleSelfCastOriginalUseAction = UseAction;
                UseAction = SimpleSelfCast_UseAction;
                simpleSelfCastActive = true;
        end
end

function SimpleSelfCast_Disable()
        SSCPrint("Simple Self Cast disabled.");
        if simpleSelfCastOriginalUseAction ~= nil then
                UseAction = simpleSelfCastOriginalUseAction;
                simpleSelfCastOriginalUseAction = nil;
                simpleSelfCastActive = false;
        end

end

function SimpleSelfCast_UseAction(id, type, self)
        if simpleSelfCastOriginalUseAction then
                simpleSelfCastOriginalUseAction(id, type, self);
                if( SpellIsTargeting() ) then
                        if (UnitIsFriend("player","target")) then
                                SpellTargetUnit("target");
                        else
                                SpellTargetUnit("player");
                        end
                end
        end
end

function SSCPrint(string)
        if Print ~= nil then
                Print(string);
        elseif DEFAULT_CHAT_FRAME then
                DEFAULT_CHAT_FRAME:AddMessage(string);
        end
end

Generated by GNU Enscript 1.6.5.90.