Files
wow-weakauras/Complete Projects/Fivver Stuff/Spellbook cooldowns and talent cooldowns/Spellbook Scan.lua

87 lines
3.6 KiB
Lua

--PLAYER_SPELLBOOK_UPDATE PLAYER_SPELLBOOK_EXCLUSION_ADD PLAYER_SPELLBOOK_EXCLUSION_REMOVE PLAYER_SPELLBOOK_EXCLUSION_LIST COOLDOWN_MANAGER_SWITCH_SCAN_MODES PLAYER_SPELLBOOK_WHITELIST_ADD PLAYER_SPELLBOOK_WHITELIST_REMOVE PLAYER_SPELLBOOK_WHITELIST_LIST
function(e, msg)
if not aura_env.mode then aura_env.mode = 1 end
if e == "COOLDOWN_MANAGER_SWITCH_SCAN_MODES" then
if aura_env.mode == 0 then
aura_env.mode = 1
print(aura_env.mode)
else
aura_env.mode = 0
print(aura_env.mode)
end
elseif e == "PLAYER_SPELLBOOK_UPDATE" then
if not WeakAurasSaved.CustomTrash then WeakAurasSaved.CustomTrash = {} end
if not WeakAurasSaved.CustomTrash.SpellExclusion then WeakAurasSaved.CustomTrash.SpellExclusion = {} end
if not WeakAurasSaved.CustomTrash.SpellWhitelist then WeakAurasSaved.CustomTrash.SpellWhitelist = {
["Fortifying Brew"] = 1,
["Life Cocoon"] = 1,
["Revival"] = 1,
["Paralysis"] = 1,
} end
aura_env.spells = {}
if aura_env.mode == 0 then
local index = 1
while GetSpellBookItemName(index, "spell") do
local name = GetSpellInfo(index, "spell")
local id = select(7, GetSpellInfo(index, "spell"))
if IsPlayerSpell(id) == true and GetSpellBaseCooldown(id) > 10000 and (not (WeakAurasSaved.CustomTrash.SpellExclusion[name] or WeakAurasSaved.CustomTrash.SpellExclusion[id])) then
aura_env.spells[name] = id
end
index = index + 1
end
else
for k,v in pairs(WeakAurasSaved.CustomTrash.SpellWhitelist) do
local name = GetSpellInfo(k)
local id = select(7, GetSpellInfo(k))
if id and IsPlayerSpell(id) == true then
aura_env.spells[name] = id
end
end
end
WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS")
elseif e == "PLAYER_SPELLBOOK_EXCLUSION_ADD" then
if GetSpellInfo(msg) then
if not WeakAurasSaved.CustomTrash.SpellExclusion[msg] then WeakAurasSaved.CustomTrash.SpellExclusion[msg] = 1 end
print("Spell <", msg, "> added")
else
print("Spell <", msg, "> is invalid")
end
WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE")
WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS")
elseif e == "PLAYER_SPELLBOOK_EXCLUSION_REMOVE" then
if GetSpellInfo(msg) then
if WeakAurasSaved.CustomTrash.SpellExclusion[msg] then WeakAurasSaved.CustomTrash.SpellExclusion[msg] = nil else print("Spell <", msg, "> is not excluded"); return end
print("Spell <", msg, "> removed")
else
print("Spell <", msg, "> is invalid")
end
WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE")
WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS")
elseif e == "PLAYER_SPELLBOOK_EXCLUSION_LIST" then
for k,v in pairs(WeakAurasSaved.CustomTrash.SpellExclusion) do
print(k,v)
end
elseif e == "PLAYER_SPELLBOOK_WHITELIST_ADD" then
if GetSpellInfo(msg) then
if not WeakAurasSaved.CustomTrash.SpellWhitelist[msg] then WeakAurasSaved.CustomTrash.SpellWhitelist[msg] = 1 end
print("Spell <", msg, "> added")
else
print("Spell <", msg, "> is invalid")
end
WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE")
WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS")
elseif e == "PLAYER_SPELLBOOK_WHITELIST_REMOVE" then
if GetSpellInfo(msg) then
if WeakAurasSaved.CustomTrash.SpellWhitelist[msg] then WeakAurasSaved.CustomTrash.SpellWhitelist[msg] = nil else print("Spell <", msg, "> is not excluded"); return end
print("Spell <", msg, "> removed")
else
print("Spell <", msg, "> is invalid")
end
WeakAuras.ScanEvents("PLAYER_SPELLBOOK_UPDATE")
WeakAuras.ScanEvents("RESET_COOLDOWN_MANAGER_SPELLS")
elseif e == "PLAYER_SPELLBOOK_WHITELIST_LIST" then
for k,v in pairs(WeakAurasSaved.CustomTrash.SpellWhitelist) do
print(k,v)
end
end
end