vanilla-wow-addons – Rev 1
?pathlinks?
-- SavedVariables: XPerlConfig, XPerlConfig_Global, XPerlConfigSavePerCharacter
local varsLoaded
local function Msg(msg)
DEFAULT_CHAT_FRAME:AddMessage("|c00FF0000X-Perl|r: "..msg)
end
local function CopyConfig()
if (not varsLoaded) then
Msg("Variables not loaded yet. Try again")
return
end
if (Perl_Config) then
if (not XPerlConfig) then
XPerlConfig = {}
end
for k,v in (Perl_Config) do
XPerlConfig[k] = v
end
if (Perl_Config.RaidPositions) then
XPerlConfig.RaidPositions = {}
for k,v in pairs(Perl_Config.RaidPositions) do
if (strsub(k, 1, 4) == "Perl") then
XPerlConfig.RaidPositions["X"..k] = v
end
end
end
if (not XPerlConfig_Global) then
XPerlConfig_Global = {}
end
XPerlConfigSavePerCharacter = Perl_Config_SavePerCharacter
if (Perl_Global_Config) then
for realm,realmData in pairs(Perl_Config_Global) do
if (not XPerlConfig_Global[realm]) then
XPerlConfig_Global[realm] = {}
end
for char,charData in pairs(realmData) do
if (not XPerlConfig_Global[realm][char]) then
XPerlConfig_Global[realm][char] = {}
end
for k,v in pairs(charData) do
XPerlConfig_Global[realm][char][k] = v
end
if (charData.RaidPositions) then
XPerlConfig_Global[realm][char].RaidPositions = {}
for k,v in pairs(charData.RaidPositions) do
if (strsub(k, 1, 4) == "Perl") then
XPerlConfig_Global[realm][char].RaidPositions["X"..k] = v
end
end
end
end
end
if (XPerlConfigSavePerCharacter and XPerl_SetMyGlobal) then
XPerl_SetMyGlobal()
end
end
XPerl_Defaults()
XPerlConfig.Copied = nil
Perl_Config.Copied = (Perl_Config.Copied or 0) + 1
XPerl_OptionActions()
Msg("Configuration copied from old X-Perl installation. You may now remove the 'Perl' addon folder")
else
Msg("There is no old X-Perl configuration to copy")
end
SlashCmdList["PERLCOPYCONFIG"] = nil
SLASH_PERLCOPYCONFIG1 = nil
DisableAddOn("Perl")
end
local function PerlOnEvent()
this:UnregisterAllEvents()
varsLoaded = true
Msg("Use the command |c0000FF00/xperlcopy|r to copy your configuration. |c00A06060This will replace ALL current X-Perl settings with the settings saved under the old folder names|r")
if (Perl_Config and Perl_Config.Copied) then
Msg(string.format("|c00FF0000Note that configuration has been copied %d time(s) before", Perl_Config.Copied))
end
SlashCmdList["PERLCOPYCONFIG"] = CopyConfig
SLASH_PERLCOPYCONFIG1 = "/xperlcopy"
end
do
local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo("Perl")
if (name and enabled) then
local Frame = CreateFrame("Frame", "Perl_Config_Copy")
if (Frame) then
Frame:SetScript("OnEvent", PerlOnEvent)
Frame:RegisterEvent("PLAYER_ENTERING_WORLD")
end
end
end