You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

252 lines
6.4 KiB

4 years ago
local E, L, V, P, G = unpack(ElvUI)
5 years ago
local DT = E:GetModule('DataTexts')
local AB = E:GetModule('ActionBars')
local _G = _G
4 years ago
local type, pairs, select, tonumber = type, pairs, select, tonumber
local lower, wipe, next, print = strlower, wipe, next, print
5 years ago
local EnableAddOn = EnableAddOn
local GetAddOnInfo = GetAddOnInfo
local GetNumAddOns = GetNumAddOns
local DisableAddOn = DisableAddOn
local ReloadUI = ReloadUI
local SetCVar = SetCVar
-- GLOBALS: ElvUIGrid, ElvDB
function E:Grid(msg)
msg = msg and tonumber(msg)
if type(msg) == 'number' and (msg <= 256 and msg >= 4) then
E.db.gridSize = msg
E:Grid_Show()
elseif ElvUIGrid and ElvUIGrid:IsShown() then
E:Grid_Hide()
else
E:Grid_Show()
end
end
3 years ago
local AddOns = {
ElvUI = true,
ElvUI_Options = true,
ElvUI_Libraries = true,
3 years ago
ElvUI_CPU = true -- debug tool located at https://github.com/Resike/ElvUI_CPU
}
5 years ago
function E:LuaError(msg)
local switch = lower(msg)
if switch == 'on' or switch == '1' then
for i=1, GetNumAddOns() do
local name = GetAddOnInfo(i)
3 years ago
if not AddOns[name] and E:IsAddOnEnabled(name) then
5 years ago
DisableAddOn(name, E.myname)
4 years ago
ElvDB.DisabledAddOns[name] = i
5 years ago
end
end
SetCVar('scriptErrors', 1)
ReloadUI()
elseif switch == 'off' or switch == '0' then
if switch == 'off' then
4 years ago
SetCVar('scriptProfile', 0)
5 years ago
SetCVar('scriptErrors', 0)
E:Print('Lua errors off.')
4 years ago
if E:IsAddOnEnabled('ElvUI_CPU') then
DisableAddOn('ElvUI_CPU')
end
5 years ago
end
4 years ago
if next(ElvDB.DisabledAddOns) then
for name in pairs(ElvDB.DisabledAddOns) do
5 years ago
EnableAddOn(name, E.myname)
end
4 years ago
wipe(ElvDB.DisabledAddOns)
5 years ago
ReloadUI()
end
else
4 years ago
E:Print('/edebug on - /edebug off')
5 years ago
end
end
local function OnCallback(command)
_G.MacroEditBox:GetScript('OnEvent')(_G.MacroEditBox, 'EXECUTE_CHAT_LINE', command)
end
function E:DelayScriptCall(msg)
local secs, command = msg:match('^(%S+)%s+(.*)$')
secs = tonumber(secs)
if not secs or (#command == 0) then
self:Print('usage: /in <seconds> <command>')
self:Print('example: /in 1.5 /say hi')
else
E:Delay(secs, OnCallback, command)
end
end
3 years ago
function E:DisplayCommands()
5 years ago
print(L["EHELP_COMMANDS"])
end
local BLIZZARD_ADDONS = {
'Blizzard_AchievementUI',
'Blizzard_AdventureMap',
'Blizzard_AlliedRacesUI',
'Blizzard_AnimaDiversionUI',
'Blizzard_APIDocumentation',
'Blizzard_APIDocumentationGenerated',
5 years ago
'Blizzard_ArchaeologyUI',
'Blizzard_ArdenwealdGardening',
'Blizzard_ArtifactUI',
'Blizzard_AuctionHouseShared',
5 years ago
'Blizzard_AuctionHouseUI',
'Blizzard_AuthChallengeUI',
'Blizzard_AzeriteEssenceUI',
'Blizzard_AzeriteRespecUI',
'Blizzard_AzeriteUI',
'Blizzard_BarbershopUI',
'Blizzard_BattlefieldMap',
3 years ago
'Blizzard_BehavioralMessaging',
5 years ago
'Blizzard_BlackMarketUI',
'Blizzard_BoostTutorial',
'Blizzard_Calendar',
'Blizzard_ChallengesUI',
'Blizzard_Channels',
'Blizzard_CharacterCreate',
'Blizzard_CharacterCustomize',
'Blizzard_ChromieTimeUI',
'Blizzard_ClassTalentUI',
5 years ago
'Blizzard_ClassTrial',
3 years ago
'Blizzard_ClickBindingUI',
5 years ago
'Blizzard_ClientSavedVariables',
'Blizzard_Collections',
'Blizzard_CombatLog',
'Blizzard_CombatText',
'Blizzard_Commentator',
'Blizzard_Communities',
'Blizzard_CompactRaidFrames',
'Blizzard_Console',
'Blizzard_Contribution',
'Blizzard_CovenantCallings',
'Blizzard_CovenantPreviewUI',
'Blizzard_CovenantRenown',
'Blizzard_CovenantSanctum',
'Blizzard_CovenantToasts',
'Blizzard_CUFProfiles',
5 years ago
'Blizzard_DeathRecap',
'Blizzard_DebugTools',
'Blizzard_Deprecated',
'Blizzard_EncounterJournal',
'Blizzard_EventTrace',
'Blizzard_ExpansionLandingPage',
5 years ago
'Blizzard_FlightMap',
'Blizzard_FrameEffects',
'Blizzard_GarrisonTemplates',
'Blizzard_GarrisonUI',
'Blizzard_GenericTraitUI',
'Blizzard_GMChatUI',
5 years ago
'Blizzard_GuildBankUI',
'Blizzard_GuildControlUI',
'Blizzard_GuildUI',
'Blizzard_HybridMinimap',
'Blizzard_InspectUI',
'Blizzard_IslandsPartyPoseUI',
'Blizzard_IslandsQueueUI',
'Blizzard_ItemInteractionUI',
'Blizzard_ItemSocketingUI',
'Blizzard_ItemUpgradeUI',
'Blizzard_Kiosk',
'Blizzard_LandingSoulbinds',
'Blizzard_MacroUI',
'Blizzard_MajorFactions',
5 years ago
'Blizzard_MapCanvas',
'Blizzard_MawBuffs',
'Blizzard_MoneyReceipt',
'Blizzard_MovePad',
'Blizzard_NamePlates',
'Blizzard_NewPlayerExperience',
'Blizzard_NewPlayerExperienceGuide',
'Blizzard_ObjectiveTracker',
'Blizzard_ObliterumUI',
'Blizzard_OrderHallUI',
'Blizzard_PartyPoseUI',
'Blizzard_PetBattleUI',
'Blizzard_PlayerChoice',
'Blizzard_Professions',
'Blizzard_ProfessionsCrafterOrders',
'Blizzard_ProfessionsCustomerOrders',
'Blizzard_ProfessionsTemplates',
5 years ago
'Blizzard_PTRFeedback',
'Blizzard_PTRFeedbackGlue',
'Blizzard_PVPMatch',
'Blizzard_PVPUI',
'Blizzard_QuestNavigation',
'Blizzard_RaidUI',
'Blizzard_RuneforgeUI',
'Blizzard_ScrappingMachineUI',
'Blizzard_SecureTransferUI',
'Blizzard_SharedMapDataProviders',
'Blizzard_SharedTalentUI',
5 years ago
'Blizzard_SocialUI',
'Blizzard_Soulbinds',
'Blizzard_StoreUI',
'Blizzard_SubscriptionInterstitialUI',
'Blizzard_TalentUI',
'Blizzard_TimeManager',
'Blizzard_TokenUI',
'Blizzard_TorghastLevelPicker',
'Blizzard_TrainerUI',
'Blizzard_TutorialManager',
'Blizzard_Tutorials',
4 years ago
'Blizzard_UIFrameManager',
5 years ago
'Blizzard_UIWidgets',
'Blizzard_VoidStorageUI',
'Blizzard_WarfrontsPartyPoseUI',
'Blizzard_WeeklyRewards',
'Blizzard_WorldMap',
'Blizzard_WowTokenUI'
}
function E:EnableBlizzardAddOns()
for _, addon in pairs(BLIZZARD_ADDONS) do
local reason = select(5, GetAddOnInfo(addon))
if reason == 'DISABLED' then
EnableAddOn(addon)
E:Print('The following addon was re-enabled:', addon)
end
end
end
function E:DBConvertProfile()
E.db.dbConverted = nil
E:DBConversions()
ReloadUI()
end
function E:LoadCommands()
4 years ago
if E.private.actionbar.enable then
self:RegisterChatCommand('kb', AB.ActivateBindMode)
end
5 years ago
self:RegisterChatCommand('in', 'DelayScriptCall')
self:RegisterChatCommand('ec', 'ToggleOptions')
self:RegisterChatCommand('elvui', 'ToggleOptions')
5 years ago
self:RegisterChatCommand('bgstats', DT.ToggleBattleStats)
4 years ago
5 years ago
self:RegisterChatCommand('moveui', 'ToggleMoveMode')
self:RegisterChatCommand('resetui', 'ResetUI')
4 years ago
self:RegisterChatCommand('emove', 'ToggleMoveMode')
self:RegisterChatCommand('ereset', 'ResetUI')
self:RegisterChatCommand('edebug', 'LuaError')
3 years ago
self:RegisterChatCommand('ehelp', 'DisplayCommands')
self:RegisterChatCommand('ecommands', 'DisplayCommands')
4 years ago
self:RegisterChatCommand('eblizzard', 'EnableBlizzardAddOns')
self:RegisterChatCommand('estatus', 'ShowStatusReport')
5 years ago
self:RegisterChatCommand('efixdb', 'DBConvertProfile')
4 years ago
self:RegisterChatCommand('egrid', 'Grid')
5 years ago
end