mirror of
https://github.com/Bluewhale1337/ElvUIModernized.git
synced 2026-07-27 08:24:44 +00:00
144 lines
4.0 KiB
Lua
144 lines
4.0 KiB
Lua
local E, L, V, P, G = unpack(ElvUI); --Import: Engine, Locales, PrivateDB, ProfileDB, GlobalDB
|
|
|
|
--Cache global variables
|
|
--Lua functions
|
|
local _G = _G
|
|
local tonumber, type = tonumber, type
|
|
local format, len, lower, match = string.format, string.len, string.lower, string.match
|
|
--WoW API / Variables
|
|
local UIFrameFadeOut, UIFrameFadeIn = UIFrameFadeOut, UIFrameFadeIn
|
|
local EnableAddOn, DisableAddOn, DisableAllAddOns = EnableAddOn, DisableAddOn, DisableAllAddOns
|
|
local SetCVar = SetCVar
|
|
local ReloadUI = ReloadUI
|
|
local GetAddOnInfo = GetAddOnInfo
|
|
|
|
function E:EnableAddon(addon)
|
|
local _, _, _, _, _, reason, _ = GetAddOnInfo(addon)
|
|
if reason ~= "MISSING" then
|
|
EnableAddOn(addon)
|
|
ReloadUI()
|
|
else
|
|
E:Print(format("Addon '%s' not found.", addon))
|
|
end
|
|
end
|
|
|
|
function E:DisableAddon(addon)
|
|
local _, _, _, _, _, reason, _ = GetAddOnInfo(addon)
|
|
if reason ~= "MISSING" then
|
|
DisableAddOn(addon)
|
|
ReloadUI()
|
|
else
|
|
E:Print(format("Addon '%s' not found.", addon))
|
|
end
|
|
end
|
|
|
|
function FarmMode()
|
|
if E.private.general.minimap.enable ~= true then return end
|
|
|
|
if Minimap:IsShown() then
|
|
UIFrameFadeOut(Minimap, 0.3)
|
|
UIFrameFadeIn(FarmModeMap, 0.3)
|
|
Minimap.fadeInfo.finishedFunc = function() Minimap:Hide() _G.MinimapZoomIn:Click() _G.MinimapZoomOut:Click() Minimap:SetAlpha(1) end
|
|
FarmModeMap.enabled = true
|
|
else
|
|
UIFrameFadeOut(FarmModeMap, 0.3)
|
|
UIFrameFadeIn(Minimap, 0.3)
|
|
FarmModeMap.fadeInfo.finishedFunc = function() FarmModeMap:Hide() _G.MinimapZoomIn:Click() _G.MinimapZoomOut:Click() Minimap:SetAlpha(1) end
|
|
FarmModeMap.enabled = false
|
|
end
|
|
end
|
|
|
|
function E:FarmMode(msg)
|
|
if E.private.general.minimap.enable ~= true then return end
|
|
if msg and type(tonumber(msg)) == "number" and tonumber(msg) <= 500 and tonumber(msg) >= 20 then
|
|
E.db.farmSize = tonumber(msg)
|
|
E:Size(FarmModeMap, tonumber(msg))
|
|
end
|
|
|
|
FarmMode()
|
|
end
|
|
|
|
function E:Grid(msg)
|
|
if msg and type(tonumber(msg)) == "number" and tonumber(msg) <= 256 and tonumber(msg) >= 4 then
|
|
E.db.gridSize = msg
|
|
E:Grid_Show()
|
|
else
|
|
if EGrid then
|
|
E:Grid_Hide()
|
|
else
|
|
E:Grid_Show()
|
|
end
|
|
end
|
|
end
|
|
|
|
function E:LuaError(msg)
|
|
msg = lower(msg)
|
|
if msg == "on" then
|
|
DisableAllAddOns()
|
|
EnableAddOn("ElvUI")
|
|
EnableAddOn("ElvUI_Config")
|
|
SetCVar("ShowErrors", "1")
|
|
ReloadUI()
|
|
elseif msg == "off" then
|
|
SetCVar("ShowErrors", "0")
|
|
E:Print("Lua errors off.")
|
|
else
|
|
E:Print("/luaerror on - /luaerror off")
|
|
end
|
|
end
|
|
|
|
function E:BGStats()
|
|
local DT = E:GetModule("DataTexts")
|
|
DT.ForceHideBGStats = nil
|
|
DT:LoadDataTexts()
|
|
|
|
E:Print(L["Battleground datatexts will now show again if you are inside a battleground."])
|
|
end
|
|
|
|
-- Set up a private editbox to handle macro execution
|
|
local editbox = CreateFrame("Editbox", "MacroEditBox")
|
|
local line
|
|
editbox:RegisterEvent("EXECUTE_CHAT_LINE")
|
|
editbox:SetScript("OnEvent", function(self, event)
|
|
if event == "EXECUTE_CHAT_LINE" then
|
|
local defaulteditbox = pcall(ChatFrameEditBox)
|
|
self:SetText(line)
|
|
ChatEdit_SendText(self)
|
|
end
|
|
end
|
|
)
|
|
editbox:Hide()
|
|
|
|
local function OnCallback()
|
|
MacroEditBox:GetScript("OnEvent")(MacroEditBox, "EXECUTE_CHAT_LINE")
|
|
end
|
|
|
|
function E:DelayScriptCall(msg)
|
|
local secs, command = match(msg, "^(%S+)%s+(.*)$")
|
|
line = command
|
|
secs = tonumber(secs)
|
|
if (not secs) or (len(command) == 0) then
|
|
self:Print("usage: /in <seconds> <command>")
|
|
self:Print("example: /in 1.5 /say hi")
|
|
else
|
|
E:ScheduleTimer(OnCallback, secs)
|
|
end
|
|
end
|
|
|
|
function E:LoadCommands()
|
|
self:RegisterChatCommand("in", "DelayScriptCall")
|
|
self:RegisterChatCommand("ec", "ToggleConfig")
|
|
self:RegisterChatCommand("elvui", "ToggleConfig")
|
|
self:RegisterChatCommand("bgstats", "BGStats")
|
|
self:RegisterChatCommand("luaerror", "LuaError")
|
|
self:RegisterChatCommand("egrid", "Grid")
|
|
self:RegisterChatCommand("moveui", "ToggleConfigMode")
|
|
self:RegisterChatCommand("resetui", "ResetUI")
|
|
self:RegisterChatCommand("enable", "EnableAddon")
|
|
self:RegisterChatCommand("disable", "DisableAddon")
|
|
self:RegisterChatCommand("farmmode", "FarmMode")
|
|
|
|
if E:GetModule("ActionBars") and E.private.actionbar.enable then
|
|
self:RegisterChatCommand("kb", E:GetModule("ActionBars").ActivateBindMode)
|
|
end
|
|
end |