vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1  
2 -- Class Setup
3 AceCommands = AceChatCmd:new(ACE_COMMANDS, ACE_CMD_OPTIONS)
4  
5  
6 --[[--------------------------------------------------------------------------
7 Ace Information
8 -----------------------------------------------------------------------------]]
9  
10 function AceCommands:DisplayInfo()
11 local mem = gcinfo()
12  
13 self:report(ACE_INFO_HEADER, {
14 {text=ACE_INFO_PROFILE_LOADED, val=ace.db.profileName},
15 {text=ACE_TEXT_MEM_USAGE, val=format("%.3f", mem/1024)},
16 {text=ACE_TEXT_TOTAL_ADDONS, val=GetNumAddOns()},
17 {text=ACE_TEXT_TOTAL_LOADED, val=ace.addons.numLoaded, indent=1},
18 {text=ACE_TEXT_ACE_ADDONS_LOADED, val=ace.addons.numAceAddons, indent=1},
19 {text=ACE_TEXT_ACE_REGISTERED, val=ace.addons.numAceApps, indent=2},
20 {text=ACE_TEXT_OTHERS_LOADED, val=ace.addons.numLoaded-ace.addons.numAceAddons, indent=1},
21 {text=ACE_TEXT_NOT_LOADED, val=GetNumAddOns()-ace.addons.numLoaded, indent=1}
22 })
23 end
24  
25  
26 --[[--------------------------------------------------------------------------
27 Enable/Disable Addons
28 -----------------------------------------------------------------------------]]
29  
30 function AceCommands:EnableAddon(addon)
31 if( strlower(addon) == ACE_TEXT_ALL ) then
32 EnableAllAddOns()
33 self:msg(ACE_CMD_ADDON_ENABLED_ALL)
34 elseif( ace.addons.list[strlower(addon)] ) then
35 EnableAddOn(addon)
36 self:msg(ACE_CMD_ADDON_ENABLED, addon)
37 else
38 self:msg(ACE_CMD_ADDON_NOTFOUND, addon)
39 end
40 end
41  
42 function AceCommands:DisableAddon(addon)
43 if( strlower(addon) == ACE_TEXT_ALL ) then
44 DisableAllAddOns()
45 EnableAddOn("ace") -- Ace should be disabled separately
46 self:msg(ACE_CMD_ADDON_DISABLED_ALL)
47 elseif( ace.addons.list[strlower(addon)] ) then
48 DisableAddOn(addon)
49 self:msg(ACE_CMD_ADDON_DISABLED, ace.addons.list[strlower(addon)].name)
50 else
51 self:msg(ACE_CMD_ADDON_NOTFOUND, addon)
52 end
53 end
54  
55  
56 --[[--------------------------------------------------------------------------
57 Addon Lists
58 -----------------------------------------------------------------------------]]
59  
60 function AceCommands:ListAddons(opt)
61 ace:print(format(ACE_CMD_RESULT, ACE_CMD_OPT_LIST_ADDONS, ""))
62 if( (opt or "") == "" ) then
63 for _, addon in ace.sort(ace.GetTableKeys(ace.addons.list)) do
64 self:DisplayAddon(ace.addons.list[addon], addon == "ace")
65 end
66 else
67 local _, addon = ace.TableFindKeyCaseless(ace.addons.list, opt)
68 if( addon ) then
69 self:DisplayAddon(addon, strlower(opt) == "ace", TRUE)
70 else
71 ace:print(format(ACE_CMD_ADDON_NOTFOUND, opt))
72 end
73 end
74 end
75  
76 function AceCommands:DisplayAddon(addon, isAce, showNotLoaded)
77 if( isAce ) then
78 self:DisplayAceAddon(addon, Ace)
79 elseif( addon.apps and addon.ace ) then
80 if( getn(addon.apps) > 1 ) then
81 ace:print(" - "..addon.title)
82 for _, app in addon.apps do
83 self:DisplayAceAddon(addon, app, " "..app.name)
84 end
85 else
86 self:DisplayAceAddon(addon, addon.apps[1])
87 end
88 elseif( addon.loaded or showNotLoaded ) then
89 ace:print(" - ", addon.title)
90 end
91 end
92  
93 function AceCommands:DisplayAceAddon(addon, app, prefix)
94 ace:print(prefix or " - "..addon.title,
95 ((app.cmd and app.cmd.commands)
96 and " "..format(ACE_ADDON_CHAT_COMMAND, app.cmd.commands[1])
97 or "") or "",
98 (app.disabled and " "..ACE_ADDON_STANDBY) or "",
99 app.aceMismatch and " "..ACE_VERSION_MISMATCH
100 )
101 end
102  
103 function AceCommands:ListAddonsAce()
104 ace:print(format(ACE_CMD_RESULT, ACE_CMD_OPT_LIST_ADDONS, ""))
105 for _, addon in ace.sort(ace.GetTableKeys(ace.addons.list)) do
106 if( ace.addons.list[addon].ace or (addon == "ace") ) then
107 self:DisplayAddon(ace.addons.list[addon], addon == "ace")
108 end
109 end
110 end
111  
112 function AceCommands:ListAddonsOther()
113 ace:print(format(ACE_CMD_RESULT, ACE_CMD_OPT_LIST_ADDONS, ""))
114 for _, addon in ace.sort(ace.GetTableKeys(ace.addons.list)) do
115 if( (not ace.addons.list[addon].ace) and (addon ~= "ace") ) then
116 self:DisplayAddon(ace.addons.list[addon])
117 end
118 end
119 end
120  
121 function AceCommands:ListAddonsLoadable()
122 ace:print(format(ACE_CMD_RESULT, ACE_CMD_OPT_LIST_ADDONS, ""))
123 for i = 1, GetNumAddOns() do
124 local name, _, _, _, loadable = GetAddOnInfo(i)
125 if( loadable and (not IsAddOnLoaded(i)) ) then
126 ace:print(" - ", name)
127 end
128 end
129 end
130  
131  
132 --[[--------------------------------------------------------------------------
133 Addon Loading
134 -----------------------------------------------------------------------------]]
135  
136 function AceCommands:LoadAddon(addon)
137 if( IsAddOnLoaded(addon) ) then
138 self:result(format(ACE_CMD_OPT_LOAD_IS_LOADED, addon))
139 return
140 end
141  
142 local loaded, reason = LoadAddOn(addon)
143 if( loaded ) then
144 self:result(format(ACE_CMD_OPT_LOAD_LOADED, GetAddOnInfo(addon)))
145 else
146 self:result(format(ACE_CMD_OPT_LOAD_ERROR, addon, strlower(reason)))
147 end
148 end
149  
150 function AceCommands:LoadAddonAuto(addon)
151 ace.db:SetLoadOnStart(addon, TRUE)
152 self:LoadAddon(addon)
153 end
154  
155 function AceCommands:LoadAddonOff(addon)
156 if( ace.db:GetLoadOnStart(addon) ) then
157 ace.db:SetLoadOnStart(addon, FALSE)
158 self:result(format(ACE_CMD_OPT_AUTO_OFF_MSG, addon))
159 end
160 end
161  
162  
163 --[[--------------------------------------------------------------------------
164 Configurations
165 -----------------------------------------------------------------------------]]
166  
167 function AceCommands:ChangeLoadMsgAddon()
168 ace.db:SetOpt("loadMsg", "addon")
169 self:status(ACE_TEXT_LOADMSG, "addon", ACE_MAP_LOADMSG)
170 end
171  
172 function AceCommands:ChangeLoadMsgNone()
173 ace.db:SetOpt("loadMsg", "none")
174 self:status(ACE_TEXT_LOADMSG, "none", ACE_MAP_LOADMSG)
175 end
176  
177 function AceCommands:ChangeLoadMsgSum()
178 ace.db:SetOpt("loadMsg")
179 self:status(ACE_TEXT_LOADMSG, 0, ACE_MAP_LOADMSG)
180 end
181  
182  
183 --[[--------------------------------------------------------------------------
184 Profile Options
185 -----------------------------------------------------------------------------]]
186  
187 function AceCommands:ProfileInfo()
188 local profile = ace.db:GetProfile(ace.db.profileName)
189  
190  
191 end
192  
193 function AceCommands:SetProfile(profile, key, msg)
194 if( (key or "") ~= "" ) then
195 if( strlower(key) == ACE_CMD_PROFILE_ALL ) then
196 for _, addon in ace.registry:get() do
197 if( addon.db and (not ace.db:GetAddonProfile(profile, addon, profile)) ) then
198 ace.db:SetAddonProfile(profile, addon, profile)
199 end
200 end
201 self:result(format(ACE_CMD_PROFILE_ALL_ADDED, profile))
202 msg = nil
203 else
204 local _, addon = ace.TableFindKeyCaseless(ace.registry:get(), key)
205 if( not addon ) then
206 self:result(format(ACE_CMD_ADDON_NOTFOUND, key))
207 return
208 end
209 if( not addon.db ) then
210 self:result(format(ACE_CMD_PROFILE_NO_PROFILE, addon.name))
211 return
212 end
213 ace.db:SetAddonProfile(profile, addon, profile)
214 self:result(format(ACE_CMD_PROFILE_ADDON_ADDED, addon.name, profile))
215 msg = nil
216 end
217 end
218  
219 -- Load the profile last so that any individual addons added to it will be set to
220 -- the correct path.
221 self:LoadProfile(profile, msg)
222 end
223  
224 function AceCommands:LoadProfile(profile, msg)
225 if( ace.db:GetProfile(profile) ) then
226 ace.db:LoadProfile(profile)
227 else
228 ace.db:SaveProfile(profile, ace.db:NewProfile())
229 ace.db:LoadProfile(profile)
230 end
231 if( msg ) then self:result(msg) end
232 end
233  
234 function AceCommands:UseProfileChar(opt)
235 local _, _, addon, import = strfind(opt, "(%S*)%s?(.*)")
236 self:SetProfile(ace.char.id, addon, format(ACE_PROFILE_LOADED_CHAR, ace.char.id))
237 end
238  
239 function AceCommands:UseProfileClass(addon)
240 self:SetProfile(ace.char.class, addon,
241 format(ACE_PROFILE_LOADED_CLASS, ace.char.class, ace.char.id)
242 )
243 end
244  
245 function AceCommands:UseProfileDefault()
246 ace.db:LoadProfile(ACE_PROFILE_DEFAULT)
247 self:result(format(ACE_PROFILE_LOADED_DEFAULT, ace.char.id))
248 end
249  
250  
251 ace.cmd = AceCommands
252 ace.cmd.app = ace
253