vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 -- SavedVariables: XPerlConfig, XPerlConfig_Global, XPerlConfigSavePerCharacter
2  
3 local varsLoaded
4  
5 local function Msg(msg)
6 DEFAULT_CHAT_FRAME:AddMessage("|c00FF0000X-Perl|r: "..msg)
7 end
8  
9 local function CopyConfig()
10  
11 if (not varsLoaded) then
12 Msg("Variables not loaded yet. Try again")
13 return
14 end
15  
16 if (Perl_Config) then
17 if (not XPerlConfig) then
18 XPerlConfig = {}
19 end
20 for k,v in (Perl_Config) do
21 XPerlConfig[k] = v
22 end
23 if (Perl_Config.RaidPositions) then
24 XPerlConfig.RaidPositions = {}
25 for k,v in pairs(Perl_Config.RaidPositions) do
26 if (strsub(k, 1, 4) == "Perl") then
27 XPerlConfig.RaidPositions["X"..k] = v
28 end
29 end
30 end
31  
32 if (not XPerlConfig_Global) then
33 XPerlConfig_Global = {}
34 end
35 XPerlConfigSavePerCharacter = Perl_Config_SavePerCharacter
36 if (Perl_Global_Config) then
37 for realm,realmData in pairs(Perl_Config_Global) do
38 if (not XPerlConfig_Global[realm]) then
39 XPerlConfig_Global[realm] = {}
40 end
41 for char,charData in pairs(realmData) do
42 if (not XPerlConfig_Global[realm][char]) then
43 XPerlConfig_Global[realm][char] = {}
44 end
45  
46 for k,v in pairs(charData) do
47 XPerlConfig_Global[realm][char][k] = v
48 end
49  
50 if (charData.RaidPositions) then
51 XPerlConfig_Global[realm][char].RaidPositions = {}
52 for k,v in pairs(charData.RaidPositions) do
53 if (strsub(k, 1, 4) == "Perl") then
54 XPerlConfig_Global[realm][char].RaidPositions["X"..k] = v
55 end
56 end
57 end
58 end
59 end
60 if (XPerlConfigSavePerCharacter and XPerl_SetMyGlobal) then
61 XPerl_SetMyGlobal()
62 end
63 end
64  
65 XPerl_Defaults()
66  
67 XPerlConfig.Copied = nil
68 Perl_Config.Copied = (Perl_Config.Copied or 0) + 1
69  
70 XPerl_OptionActions()
71  
72 Msg("Configuration copied from old X-Perl installation. You may now remove the 'Perl' addon folder")
73 else
74 Msg("There is no old X-Perl configuration to copy")
75 end
76  
77 SlashCmdList["PERLCOPYCONFIG"] = nil
78 SLASH_PERLCOPYCONFIG1 = nil
79  
80 DisableAddOn("Perl")
81 end
82  
83 local function PerlOnEvent()
84 this:UnregisterAllEvents()
85  
86 varsLoaded = true
87  
88 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")
89  
90 if (Perl_Config and Perl_Config.Copied) then
91 Msg(string.format("|c00FF0000Note that configuration has been copied %d time(s) before", Perl_Config.Copied))
92 end
93  
94 SlashCmdList["PERLCOPYCONFIG"] = CopyConfig
95 SLASH_PERLCOPYCONFIG1 = "/xperlcopy"
96 end
97  
98 do
99 local name, title, notes, enabled, loadable, reason, security = GetAddOnInfo("Perl")
100 if (name and enabled) then
101 local Frame = CreateFrame("Frame", "Perl_Config_Copy")
102 if (Frame) then
103 Frame:SetScript("OnEvent", PerlOnEvent)
104 Frame:RegisterEvent("PLAYER_ENTERING_WORLD")
105 end
106 end
107 end