Mercurial > wow > devian
comparison Devian.lua @ 79:94abbdec03fa v2.1.80
- Fixed AceConsole message mangling
author | Nenue |
---|---|
date | Wed, 06 Jul 2016 18:48:20 -0400 |
parents | d11b67d25aee |
children | c85459c5bb16 |
comparison
equal
deleted
inserted
replaced
78:55ddf3655cb3 | 79:94abbdec03fa |
---|---|
1 --- Devian - Devian.lua | 1 --- Devian - Devian.lua |
2 -- @file-author@ | 2 -- @file-author@ |
3 -- @project-revision@ @project-hash@ | 3 -- @project-revision@ @project-hash@ |
4 -- @file-revision@ @file-hash@ | 4 -- @file-revision@ @file-hash@ |
5 | 5 |
6 --GLOBALS: Devian, DevCon, DevianLoadMessage | 6 --GLOBALS: Devian, DevCon, DevianLoadMessage, DEVIAN_WORKSPACE |
7 | |
7 local ADDON, D = ... | 8 local ADDON, D = ... |
9 local MAJOR, MINOR = 'Devian-2.0', 'r@project-revision@' | |
10 local D = LibStub("AceAddon-3.0"):NewAddon(D, "Devian", "AceConsole-3.0", "AceEvent-3.0") | |
11 local L = D.L | |
12 Devian = D | |
8 local sub, GetTime, print, _G = string.sub, GetTime, print, _G | 13 local sub, GetTime, print, _G = string.sub, GetTime, print, _G |
9 local format, setmetatable, getprinthandler, setprinthandler = string.format, setmetatable, getprinthandler, setprinthandler | 14 local format, setmetatable, getprinthandler, setprinthandler = string.format, setmetatable, getprinthandler, setprinthandler |
10 local tinsert, tremove = tinsert, tremove | 15 local tinsert, tremove, rawset = tinsert, tremove, rawset |
11 local currentProfile | 16 local currentProfile |
12 local playerName = UnitName("player") | 17 local playerName = UnitName("player") |
13 local playerRealm = playerName .. '-' .. GetRealmName() | 18 local playerRealm = playerName .. '-' .. GetRealmName() |
14 local num_dock_tabs = 0 | 19 local num_dock_tabs = 0 |
15 local in_workspace = false | 20 DEVIAN_WORKSPACE = false |
21 | |
22 | |
23 DevianLoadMessage = setmetatable({}, { | |
24 __call = function(t, msg) | |
25 rawset(t, #t+1, msg) | |
26 end, | |
27 __index = function(t) | |
28 return #t | |
29 end | |
30 }) | |
31 | |
16 --@debug@ | 32 --@debug@ |
17 D.debugmode = true | 33 D.debugmode = true |
18 --@end-debug@ | 34 --@end-debug@ |
19 D.print = function(...) | 35 D.print = function(...) |
20 if currentProfile and not currentProfile.workspace then | 36 if currentProfile and not currentProfile.workspace then |
27 return function() end | 43 return function() end |
28 end | 44 end |
29 end | 45 end |
30 local print = D.print | 46 local print = D.print |
31 | 47 |
32 setmetatable(D, { | |
33 __call = function(t,k) | |
34 if not k then | |
35 return t.in_workspace | |
36 end | |
37 | |
38 return function(value) | |
39 if value then | |
40 D[k] = value | |
41 end | |
42 return D[k] | |
43 end | |
44 end | |
45 }) | |
46 D.L = setmetatable({}, { | 48 D.L = setmetatable({}, { |
47 __index= function(t,k) | 49 __index= function(t,k) |
48 return k | 50 return k |
49 end, | 51 end, |
50 __call = function(t,k,...) | 52 __call = function(t,k,...) |
51 return format((t[k] or k) , ...) | 53 return format((t[k] or k) , ...) |
52 end | 54 end |
53 }) | 55 }) |
54 | |
55 local MAJOR, MINOR = 'Devian-2.0', 'r@project-revision@' | |
56 local D = LibStub("AceAddon-3.0"):NewAddon(D, "Devian", "AceConsole-3.0", "AceEvent-3.0") | |
57 local L = D.L | |
58 _G.Devian = D | |
59 _G.DevianLoadMessage = {} | |
60 D:SetDefaultModuleState(false) | 56 D:SetDefaultModuleState(false) |
61 D.oldprint = getprinthandler() | 57 D.oldprint = getprinthandler() |
62 if not _G.oldprint then _G.oldprint = D.oldprint end | 58 if not _G.oldprint then _G.oldprint = D.oldprint end |
63 | 59 |
64 local pairs, tostring, tonumber, ipairs, type = pairs, tostring, tonumber, ipairs, type | 60 local pairs, tostring, tonumber, ipairs, type = pairs, tostring, tonumber, ipairs, type |
193 | 189 |
194 D.currentProfile = db.profiles[id] | 190 D.currentProfile = db.profiles[id] |
195 currentProfile = D.currentProfile | 191 currentProfile = D.currentProfile |
196 currentProfile.char[playerRealm] = currentProfile.char[playerRealm] or {} | 192 currentProfile.char[playerRealm] = currentProfile.char[playerRealm] or {} |
197 if currentProfile.workspace then | 193 if currentProfile.workspace then |
194 DEVIAN_WORKSPACE = true | |
198 setprinthandler(D.Message) | 195 setprinthandler(D.Message) |
199 else | 196 else |
197 DEVIAN_WORKSPACE = false | |
200 print = function() end | 198 print = function() end |
201 end | 199 end |
202 | 200 |
203 D.unlisted = currentProfile.unlisted | 201 D.unlisted = currentProfile.unlisted |
204 D.channels = currentProfile.channels | 202 D.channels = currentProfile.channels |