Advertisement
khanggaroo

Untitled

Oct 10th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.92 KB | None | 0 0
  1. --[[--------------------------------------------------------------------
  2.     Credits to Phanx for this aura filter.
  3.     (Phanx < addons@phanx.net >)
  4. --]]--------------------------------------------------------------------
  5.  
  6. local _, ns = ...
  7.  
  8. --[[ Default Aura Filter ]]
  9. local BaseAuras = {
  10.     -- Useless
  11.     [63501] = 3, -- Argent Crusade Champion's Pennant
  12.     [60023] = 3, -- Scourge Banner Aura (Boneguard Commander in Icecrown)
  13.     [63406] = 3, -- Darnassus Champion's Pennant
  14.     [63405] = 3, -- Darnassus Valiant's Pennant
  15.     [63423] = 3, -- Exodar Champion's Pennant
  16.     [63422] = 3, -- Exodar Valiant's Pennant
  17.     [63396] = 3, -- Gnomeregan Champion's Pennant
  18.     [63395] = 3, -- Gnomeregan Valiant's Pennant
  19.     [63427] = 3, -- Ironforge Champion's Pennant
  20.     [63426] = 3, -- Ironforge Valiant's Pennant
  21.     [63433] = 3, -- Orgrimmar Champion's Pennant
  22.     [63432] = 3, -- Orgrimmar Valiant's Pennant
  23.     [63399] = 3, -- Sen'jin Champion's Pennant
  24.     [63398] = 3, -- Sen'jin Valiant's Pennant
  25.     [63403] = 3, -- Silvermoon Champion's Pennant
  26.     [63402] = 3, -- Silvermoon Valiant's Pennant
  27.     [62594] = 3, -- Stormwind Champion's Pennant
  28.     [62596] = 3, -- Stormwind Valiant's Pennant
  29.     [63436] = 3, -- Thunder Bluff Champion's Pennant
  30.     [63435] = 3, -- Thunder Bluff Valiant's Pennant
  31.     [63430] = 3, -- Undercity Champion's Pennant
  32.     [63429] = 3, -- Undercity Valiant's Pennant
  33. }
  34.  
  35. do
  36.     local l = ns.AuraList
  37.     for _, list in pairs({l.Stun, l.CC, l.Silence, l.Taunt}) do
  38.         for i = 1, #list do
  39.             BaseAuras[list[i]] = 0
  40.         end
  41.     end
  42. end
  43.  
  44. ------------------------------------------------------------------------
  45.  
  46. local genFilter, arenaFilter, bossFilter = {}, {}, {}
  47. local auraFilters = {genFilter, arenaFilter, bossFilter}
  48.  
  49. function oUFAbu:UpdateAuraLists()
  50.     --wipe em
  51.     for _,list in ipairs(auraFilters) do
  52.         wipe(list)
  53.     end
  54.     -- General Filter - These don't show in the aura editor
  55.     for aura, filter in pairs(BaseAuras) do
  56.         genFilter[aura] = filter
  57.     end
  58.     for aura, filter in pairs(oUFAbu:GetAuraSettings()['general']) do
  59.         genFilter[aura] = filter
  60.     end
  61.     --  Arena Filter
  62.     for aura, filter in pairs(oUFAbu:GetAuraSettings()['arena']) do
  63.         arenaFilter[aura] = filter
  64.     end
  65.     -- Boss Filter
  66.     for aura, filter in pairs(oUFAbu:GetAuraSettings()['boss']) do
  67.         bossFilter[aura] = filter
  68.     end
  69.    
  70.     for _, obj in pairs(oUF.objects) do
  71.         if obj.Auras then
  72.             obj.Auras:ForceUpdate()
  73.         end
  74.         if obj.Buffs then
  75.             obj.Buffs:ForceUpdate()
  76.         end
  77.         if obj.Debuffs then
  78.             obj.Debuffs:ForceUpdate()
  79.         end
  80.     end
  81. end
  82.  
  83. --[[--------------------------------------------------------------------
  84. Filters:
  85.     General (both): On Players:Show all
  86.     'Blacklist'         0    = Show All (override default)
  87.                         1    = Show only mine
  88.                         2    = Hide on friendly
  89.                         3    = Hide all
  90.                     On NPC's:  Show only mine
  91.                         0    = Show Always ( Even when not Mine )
  92.                         1    = Show only mine - no effect.
  93.                         2    = Hide on friendly
  94.                         3    = Hide Mine
  95.  
  96.     Arena (buff):   true = whitelisted
  97.     'Whitelist'
  98.  
  99.     Boss (debuff):  0    = Whitelisted
  100.     'Whitelist'     1    = Only show own
  101. --]]-------------------------------------------------------------------
  102.  
  103. local UnitCanAttack, UnitPlayerControlled = UnitCanAttack, UnitPlayerControlled
  104.  
  105. local isPlayer = { player = true, pet = true, vehicle = true }
  106.  
  107. local filters = {
  108.     [0] = function(self, unit, caster) return true end,--
  109.     [1] = function(self, unit, caster) return isPlayer[caster] end,--
  110.     [2] = function(self, unit, caster) return UnitCanAttack("player", unit) end,
  111.     [3] = function(self, unit, caster) return false end,                       
  112. }
  113.  
  114. ns.CustomAuraFilters = {
  115.     pet = function(self, unit, iconFrame, name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, unknown, nameplateShowAll, timeMod, value1, value2, value3)
  116.         return (caster and isPlayer[caster]) and (not genFilter[spellId] == 3)
  117.     end,
  118.     target = function(self, unit, iconFrame, name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, unknown, nameplateShowAll, timeMod, value1, value2, value3)
  119.         local v = genFilter[spellId]
  120.         if v and filters[v] then                    -- [[ In Filters ]]--
  121.             return filters[v](self, unit, caster)
  122.         elseif UnitPlayerControlled(unit) then      -- [[   Player   ]]--
  123.             ---if UnitCanAttack("player", unit) then    -- [[   Hostile  ]]--
  124.             --- return true
  125.             ---else                                     -- [[  Friendly  ]]--
  126.             --- return (nameplateShowPersonal) or (canApplyAura)
  127.             ---end
  128.             return true
  129.         else                                        -- [[   NPC      ]]--
  130.             -- Always show BUFFS, Show boss debuffs, aura cast by the unit, or auras cast by the player's vehicle.
  131.             return (iconFrame.filter == "HELPFUL") or (isBossDebuff) or nameplateShowAll or (isPlayer[caster]) or (caster == unit)
  132.         end
  133.     end,
  134.     party = function(self, unit, iconFrame, name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, unknown, nameplateShowAll, timeMod, value1, value2, value3)
  135.         local v = genFilter[spellId]
  136.         if v and filters[v] then
  137.             return filters[v](self, unit, caster)
  138.         elseif (iconFrame.filter == "HELPFUL") then -- BUFFS
  139.             return (nameplateShowPersonal and isPlayer[caster]) or isBossDebuff or nameplateShowAll
  140.         else
  141.             return true
  142.         end
  143.     end,
  144.     arena = function(self, unit, iconFrame, name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, unknown, nameplateShowAll, timeMod, value1, value2, value3)
  145.         return arenaFilter[spellId]
  146.     end,
  147.     boss = function(self, unit, iconFrame, name, rank, icon, count, dispelType, duration, expires, caster, isStealable, nameplateShowPersonal, spellID, canApplyAura, isBossDebuff, unknown, nameplateShowAll, timeMod, value1, value2, value3)
  148.         local v = bossFilter[spellId]
  149.         if v == 1 then
  150.             return isPlayer[caster]
  151.         elseif v == 0 then
  152.             return true
  153.         else
  154.             return isBossDebuff
  155.         end
  156.     end,
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement