-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEZOAddonsUtility.lua
More file actions
135 lines (115 loc) · 3.59 KB
/
Copy pathEZOAddonsUtility.lua
File metadata and controls
135 lines (115 loc) · 3.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
EZOAddonsUtility = EZOAddonsUtility or {}
local EZOAU = EZOAddonsUtility
local ADDON_NAME = "EZOAddonsUtility"
local LANGUAGE_AUTO = "auto"
local function SafeChat(message)
if LibChatMessage then
LibChatMessage(ADDON_NAME, "EZO"):Print(tostring(message))
else
d(tostring(message))
end
end
EZOAU.Print = SafeChat
local function GetDefaultClientLanguage()
if type(GetCVar) == "function" then
local language = zo_strlower(tostring(GetCVar("Language.2") or ""))
local prefix = language:sub(1, 2)
if prefix == "es" then return "es" end
if prefix == "en" then return "en" end
end
return "en"
end
function EZOAU.GetDefaultLanguage()
return LANGUAGE_AUTO
end
function EZOAU.GetClientLanguage()
return GetDefaultClientLanguage()
end
function EZOAU.GetEffectiveLanguage(language)
language = tostring(language or LANGUAGE_AUTO)
if language == "es" or language == "en" then
return language
end
return GetDefaultClientLanguage()
end
function EZOAU.IsForcedLanguage(language)
language = tostring(language or LANGUAGE_AUTO)
return language == "es" or language == "en"
end
function EZOAU:Initialize()
local world = GetWorldName()
local defaults = {
general = {
language = LANGUAGE_AUTO,
},
window = {
x = nil,
y = nil,
filter = "all",
},
}
self.sv = ZO_SavedVars:NewAccountWide("EZOAddonsUtility_Saved", 1, world, defaults)
if EZOAU_Lang and EZOAU_Lang.Apply then
EZOAU_Lang.Apply(self.sv.general.language or LANGUAGE_AUTO)
end
if EZOAddonsUtility_Menu and EZOAddonsUtility_Menu.Init then
EZOAddonsUtility_Menu.Init()
end
if EZOAddonsUtility_Window and EZOAddonsUtility_Window.Init then
EZOAddonsUtility_Window.Init()
end
if self.RegisterSlashCommands then
self:RegisterSlashCommands()
end
SafeChat(GetString(EZOAU_MSG_INIT))
end
local function ShowHelp()
SafeChat(zo_strformat(GetString(EZOAU_CMD_BANNER), EZOAU.ADDON_VERSION))
SafeChat(GetString(EZOAU_CMD_HELP_OPEN))
SafeChat(GetString(EZOAU_CMD_HELP_STATUS))
SafeChat(GetString(EZOAU_CMD_HELP_HELP))
end
local function PrintStatus()
local stats = EZOAddonsUtility_Scanner and EZOAddonsUtility_Scanner.GetStats and EZOAddonsUtility_Scanner.GetStats()
if not stats then
SafeChat(GetString(EZOAU_MSG_SCANNER_UNAVAILABLE))
return
end
SafeChat(zo_strformat(
GetString(EZOAU_CMD_STATUS),
stats.total or 0,
stats.loaded or 0,
stats.notLoaded or 0,
stats.libraries or 0
))
end
local function SlashHandler(args)
local command = zo_strlower(zo_strtrim(tostring(args or "")))
if command == "" or command == "open" then
if EZOAddonsUtility_Window and EZOAddonsUtility_Window.Toggle then
EZOAddonsUtility_Window.Toggle()
else
SafeChat(GetString(EZOAU_MSG_WINDOW_UNAVAILABLE))
end
return
end
if command == "status" then
PrintStatus()
return
end
if command == "help" or command == "?" then
ShowHelp()
return
end
ShowHelp()
end
function EZOAU:RegisterSlashCommands()
SLASH_COMMANDS["/ezou"] = SlashHandler
SLASH_COMMANDS["/ezoaddonsutility"] = SlashHandler
SafeChat(GetString(EZOAU_CMD_REGISTERED))
end
EVENT_MANAGER:RegisterForEvent(ADDON_NAME, EVENT_ADD_ON_LOADED, function(_, name)
if name ~= ADDON_NAME then return end
EVENT_MANAGER:UnregisterForEvent(ADDON_NAME, EVENT_ADD_ON_LOADED)
EZOAddonsUtility:Initialize()
end)