vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:

function SW_SlashCommand(msg)
        if msg == nil then return; end
        
        local _,_, c, v = string.find(msg, "([^ ]+) (.+)");
        if c == nil then
                c = string.gsub(msg, " ", "");
        end
        if c == "" then
                SW_PrintHelp();
                return;
        end
        
        local cmd = nil;
        for k,v in pairs(SW_SlashCommands) do
                if v["c"] == c then
                        cmd = v;
                        break;
                end
        end
        if cmd == nil then
                SW_printStr(SW_CONSOLE_NOCMD .. c);
                SW_printStr(SW_CONSOLE_HELP ..SW_RootSlashes[1].." "..SW_SlashCommands["help"]["c"]);
                return;
        end
        
        if cmd["aC"] > 0 then
                if v == nil or string.gsub(v, " ", "") == "" then
                        SW_printStr(cmd["u"]);
                        return;
                end
                cmd["f"](v);
        else
                cmd["f"]();
        end
end
function SW_ResetAllWindows()
        SW_BarFrame1:SetPoint("TOPLEFT",UIParent, "CENTER", -50, 50); 
        SW_BarFrame1:Show();
        SW_TextWindow:SetPoint("TOPLEFT", UIParent, "CENTER");
        SW_GeneralSettings:SetPoint("TOPLEFT",UIParent, "CENTER", 20, -20);
        SW_GeneralSettings:Show();
        SW_BarReportFrame:SetPoint("TOPLEFT",UIParent, "CENTER", 40, -40);
        SW_BarReportFrame:Show();
        SW_BarSyncFrame:SetPoint("TOPLEFT",UIParent, "CENTER", 60, -60);
        SW_BarSyncFrame:Show();
        SW_BarSettingsFrameV2:SetPoint("TOPLEFT",UIParent, "CENTER");
        SW_FrameConsole:SetPoint("TOPLEFT",UIParent, "CENTER");
        
end
function SW_ToggleConsole()
        local frame = getglobal("SW_FrameConsole")
        if(  frame:IsVisible() ) then
                frame:Hide();
        else
                frame:Show();
        end
end
function SW_ToggleBarFrame()
        local frame = getglobal("SW_BarFrame1")
        if(  frame:IsVisible() ) then
                SW_Settings["SHOWMAIN"] = nil;
                frame:Hide();
        else
                SW_Settings["SHOWMAIN"] = true;
                frame:Show();
        end
end
function SW_ToggleLocks()
        if SW_Settings["BFLocked"] then
                SW_LockFrames();
        else
                SW_LockFrames(true);
        end
end
function SW_ToggleGeneralSettings()
        local frame = getglobal("SW_GeneralSettings")
        if(  frame:IsVisible() ) then
                frame:Hide();
        else
                frame:Show();
        end
end
function SW_DumpVar(cmdString)
        local varName = string.gsub(cmdString, " ", "")
        local g = getfenv();
        
        if g[varName] == nil then
                SW_printStr(varName..SW_CONSOLE_NIL_TRAILER);
                return;
        else
                if type(g[varName]) == "table" then
                        SW_DumpTable(g[varName]);
                else
                        SW_printStr(g[varName]);
                end
        end
        
end
function SW_ResetInfo()
        SW_S_Details = {};
        SW_S_Healed = {};
        SW_S_SpellInfo = {};
        SW_S_ManaUsage = {};
        SW_S_LastManaSent = {0,0,0};
        SW_CombatTime = 0;
        SW_DPS_Dmg =0;
        
        -- 1.5 the new pet systems needs a SW_RebuildFriendList
        SW_PetInfo = {};
        SW_PetInfo["OWNER_PET"] = {};
        SW_PetInfo["PET_OWNER"] = {};
        SW_RebuildFriendList();
        
        --1.5.3 the Raid per second info
        SW_RPS = SW_C_RPS:new();
        
        SW_Sync_MsgTrack = {};
end

function SW_PostCheck(target)
        local id;
        if SW_Settings["SYNARP"] then
                return true;
        end
        if UnitInRaid("player") then
                if IsRaidLeader() or IsRaidOfficer() then
                        return true;
                else
                        if target == "RAID" then
                                return false;
                        else
                                return true;
                        end
                end
        --[[ hmm i think this is to restrictive
        elseif UnitInParty("player") then
                if IsPartyLeader() then
                        return true;
                else
                        if target == "PARTY" then
                                return false;
                        else
                                return true;
                        end
                end
        --]]
        else
                return true;
        end
end

function SW_ResetCheck()
        local id;
        
        if SW_Settings["SYNCLastChan"] == nil then
                StaticPopup_Show("SW_Reset");
                return;
        else
                -- are we still in this channel?
                id, _ = GetChannelName(SW_Settings["SYNCLastChan"]); 
                if id == 0 then
                        StaticPopup_Show("SW_Reset");
                        return;
                else
                        --here we are in a active syncchan 
                        if UnitInRaid("player") then
                                if IsRaidLeader() or IsRaidOfficer() then
                                        StaticPopup_Show("SW_ResetSync");
                                else
                                        StaticPopup_Show("SW_ResetFailInfo");
                                end
                        else
                                if IsPartyLeader() then
                                        StaticPopup_Show("SW_ResetSync");
                                else
                                        StaticPopup_Show("SW_ResetFailInfo");
                                end
                        end
                end
        end
end
function SW_RebuildFriendList()
        if  GetNumRaidMembers() > 0 then
                SW_Make_Friends("RAID");
        elseif GetNumPartyMembers() > 0 then
                SW_Make_Friends("GROUP");
        else
                SW_Make_Friends();
        end
end

function SW_PrintHelp()
        local con = getglobal("SW_FrameConsole");
        
        if con ~= nil and con:IsVisible() then
                con = getglobal("SW_FrameConsole_Text1_MsgFrame");
        else
                con = DEFAULT_CHAT_FRAME;
        end
        if con ~= nil then
                for k,v in pairs(SW_SlashCommands) do   
                        if v["c"] ~= nil then
                                if v["si"] ==nil then
                                        con:AddMessage("|cc0c0ff00"..v["c"]..":");
                                else
                                        con:AddMessage("|cc0c0ff00"..v["c"]..":"..NORMAL_FONT_COLOR_CODE.."  "..v["si"]);
                                end
                                if v["u"] ~= nil then
                                        con:AddMessage(NORMAL_FONT_COLOR_CODE.."     "..v["u"]);
                                end
                        end
                end
        end
end
function SW_ManualSyncJoin(chanName)
        if tonumber(chanName) then
                StaticPopup_Show("SW_InvalidChan");
                return;
        end
        SW_SyncChanID = 0;
        SW_SyncQueue:Clear();
        if SW_Settings["SYNCLastChan"] ~= nil then
                LeaveChannelByName(SW_Settings["SYNCLastChan"]);
                SW_Settings["SYNCLastChan"] = nil;
        end
        SW_SyncJoin(chanName); 
end

function SW_KickPlayer(who)
        if UnitInRaid("player") and not (IsRaidLeader() or IsRaidOfficer()) then
                return;
        end
        SW_SendSyncKick(who);
        
end
function SW_InitResetVote()
        if SW_SyncChanID ~= 0 and SW_Settings["SYNCLastChan"] ~= nil then
                SW_ResetVote();
        end
end
function SW_VersionCheck()
        SW_SyncSendRSV();
        local swc = getglobal("SW_FrameConsole");
        if not swc:IsVisible() then
                swc:Show();
        end
end
function SW_GetSkillUsage(cmdString)
        SW_SyncSendRSU(cmdString);
        local swc = getglobal("SW_FrameConsole");
        if not swc:IsVisible() then
                swc:Show();
        end
end

Generated by GNU Enscript 1.6.5.90.