-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCore.lua
More file actions
84 lines (65 loc) · 1.94 KB
/
Copy pathCore.lua
File metadata and controls
84 lines (65 loc) · 1.94 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
local ADDON_NAME, Addon = ...
local RED = "|cffff2020"
local GOLD = "|cffffff00"
local BRAND = "|cffbe1c1c"
function Addon.Print(message)
print(BRAND .. "[CalmChat] " .. tostring(message) .. "|r")
end
function Addon.PrintError(message)
print(RED .. "[CalmChat] " .. tostring(message) .. "|r")
end
function Addon.PrintWarning(message)
print(GOLD .. "[CalmChat] " .. tostring(message) .. "|r")
end
function Addon.GetConfig()
return Addon.DB.Get() or Addon.DB.Initialize()
end
local function ResolveSuccessMessage(options)
local defaultMessage = "Chat setup successful."
if type(options) ~= "table" then
return defaultMessage
end
if options.successMessage == false then
return nil
end
if options.successMessage == nil then
return defaultMessage
end
return tostring(options.successMessage)
end
local function SetupChatInternal(options)
local plan = Addon.PresetBuilder.Build()
local ok, err = Addon.ChatApply.Execute(plan)
if ok then
Addon.DB.SetInitializedPresetVersion(Addon.PRESET_VERSION)
local successMessage = ResolveSuccessMessage(options)
if successMessage and successMessage ~= "" then
Addon.Print(successMessage)
end
return true
end
Addon.PrintError(err or "Chat setup failed.")
return false
end
function Addon.SetupChat()
return SetupChatInternal(nil)
end
function Addon.SetupChatWithOptions(options)
return SetupChatInternal(options)
end
function Addon.ApplyDefaults()
Addon.DB.ResetToDefaults()
end
function Addon.ShouldAutoInitializePreset()
return Addon.DB.GetInitializedPresetVersion() < Addon.PRESET_VERSION
end
function Addon.InitializePresetIfNeeded(options)
if not Addon.ShouldAutoInitializePreset() then
return true, false
end
local ok = Addon.SetupChatWithOptions(options)
return ok, ok
end
function Addon.OpenSettings()
return Addon.SettingsUI.Open()
end