BuffEnough isn't broken for me, although it is fairly out of date. I'm currently working on a replacement. It's still a work in progress and nothing will be ready for testing for a bit. Stay tuned.
Do you have "load out of date add-ons" checked? BuffEnough definitely still works. Energized is coming along well. I'm hoping to have something up to test within a week or so.
It's working fine here, too. I'm looking forward to Energized, but I'm still using BuffEnough without any problems. Are you getting any error messages in BugSack?
Energized has now been released. Energized offers all the features of BuffEnough, and many more, while using significantly fewer resources. It is also much more configurable than BuffEnough. Enjoy!
I'm probably not going to make an official thread here for Energized; I typically prefer to centralize comments on the add-on page directly.
BuffEnough is maintained again, just as a FYI. I'm not sure what the resource usage is (never tested, but never noticed an issue). That said, the goal of BE is to not require much configuration - it should figure things out itself. I think it's in a pretty good shape now.
On the PTR, BuffEnough is currently causing a fatal error during the load screen. I got rid of all my addons except BE and still had the same issue. Turning off BE stopped the fatal errors on load.
This application has encountered a critical error:
Fatal exception!
Program: C:\Program Files (x86)\World of Warcraft Public Test\Wow.exe
Exception: 0xC0000094 (INT_DIVIDE_BY_ZERO) at 0023:01658DB3
I've recently reviewed some addons for performance, since I've started seeing noticeable slowdowns in 25-man raiding and while BuffEnough is not the biggest eater, it still shows some noticeable numbers in profiler because it binds to UNIT_AURA and COMBAT_LOG_EVENT_UNFILTERED that can easily be called over hundred times per second in big fight.
Upon review of code, my main question is: why the hell it is so OO-heavy? All functions are methods on addon's global objects and almost all state variables are properties of the same object. Global object is singleton so all of those are much better represented with simple "local", completely eliminating property lookups and OO call overheads.
I also suspect there many other addons like this, they just aren't noticeable because they are not using such often generated events. Really, there should be some article about where not to use OO.
If current maintainer is interested, I can submit minimal patch that would cut down OO in those two most intensive parts of code.
BTW, if I'm not mistaken, it seems I also found where it generates garbage. :RenderTooltip is ultimately called on every UNIT_AURA event to prepare new tooltip text, that in raid can easily happen several dozens of time per second. Every generation uses number of throw-away strings. Since you only actually need tooltip text when mouseovering BE window, :RenderTooltip must only set a flag that tooltip needs update and actual recalculation should only happen when you enter monitoring window.
I've gone ahead and cleared up some things. Didn't touch tooltip part yet though. If anybody wants to test or author wants to merge, you can get it over there: BuffEnough v1.2.124s.zip (obsolete - see below).
Since version 128 is nothing but TOC change, I've ported previous speed-ups over, added some new ones, cut down creation of garbage, fixed hunter happiness reference and made warlock DI checks work even solo (because you should have it on your pet). Here it is: BuffEnough v1.2.128s.zip.
Also getting an LUA Error when right clicking the Frame:
[PHP]Message: Interface\AddOns\BuffEnough\BuffEnough.lua:797: attempt to index local 'data' (a boolean value)
Time: 04/28/11 13:38:46
Count: 1
Stack: [C]: ?
Interface\AddOns\BuffEnough\BuffEnough.lua:797: in function `PrintResults'
Interface\AddOns\BuffEnough\BuffEnough.lua:139: in function `OnClick'
Interface\AddOns\BuffEnough\Frame.lua:53: in function <Interface\AddOns\BuffEnough\Frame.lua:49>
Fixed. Try this: BuffEnough v1.2.128s2.zip(obsolete, see below)
In addition to fixing issues mentioned above and small assorted speed-ups, this version introduces one very noticeable: for any buff BE didn't know internally as spell buff, it tried to to scan buff's tooltip to determine if it is flask or elixir (even for hardcoded elixir buffs because of reversed priority). Tooltip scanning is generally a slow operation and this version makes it faster by only scanning buffs cast by player himself and that have >30 min duration. I plan to make next version scan every unknown buff only once and remember if it is flask elixir or not.
I've made some extensive, but much needed changes/fixes to BuffEnough for Priests. I'll run down what's been done, and then post the relevant changes to the spells.lua and priest.lua.
1. Added Chakra. It's *technically* a little bugged, because if you have the "Chakra" buff, but not a state, it'll still show you as fully buffed. This isn't really a concern, since as soon as you cast a heal, you will trigger a Chakra state. Chakra: Serenity/Sanctuary/Chastise all count as being "BuffEnough". Note: This only triggers if your Holy Spec.
2. BuffEnough seems to think that Inner Will is not a viable buff. This has been rectified. If you have Inner Will, instead of Inner Fire, You are now BuffEnough!
3. Vampiric Embrace. Not sure why this is missing, it seems to be a talent all Shadow Priests pick up. This will only be checked if your in your Shadow Spec.
I'm asking that these be merged. The Chakra is extremely needed if you have a T11 4pc bonus. I could have just checked if the bonus is up, but you should really always be in a Chakra state regardless, because in the long run, it's a Buff, and without it, you will do significantly less heals. Same with Vampiric Embrace. I don't know how to check to see if you've learned the talent, but it's simple to ignore it in the settings. However, if you add it as an expected buff, it checks even if your in a Holy/Disc spec.
Changes:
Spells.lua (main directory for those that want to change these manually), Start on the line where it says "-- Priests". Replace everything until "-- Shamans" with:
For Priest.lua (Inside the Classes Folder), Here's my whole file, since there were changes in a few spots:
--[[ ---------------------------------------------------------------------------
BuffEnough: personal buff monitor.
BuffEnough is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
BuffEnough is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with BuffEnough. If not, see <http://www.gnu.org/licenses/>.
----------------------------------------------------------------------------- ]]
if select(2, UnitClass("player")) ~= "PRIEST" then return end
local L = LibStub("AceLocale-3.0"):GetLocale("BuffEnough")
local Priest = BuffEnough:GetOrCreateModule("Player")
--[[ ---------------------------------------------------------------------------
Check class buffs
----------------------------------------------------------------------------- ]]
function Priest:CheckClassBuffs()
if BuffEnough.debug then BuffEnough:debug("Checking priest buffs") end
BuffEnough:TrackItem(L["Buffs"], BuffEnough.spells["Inner Fire/Will"], false, true, false, nil, nil, true)
local isHolySpec = GetPrimaryTalentTree() == 2
if isHolySpec then
BuffEnough:TrackItem(L["Buffs"], BuffEnough.spells["Chakra"], false, true, false, nil, nil, true)
end
local isShadowSpec = GetPrimaryTalentTree() == 3
if isShadowSpec then
BuffEnough:TrackItem(L["Buffs"], BuffEnough.spells["Shadowform"], false, true, false, nil, nil, true)
BuffEnough:TrackItem(L["Buffs"], BuffEnough.spells["Vampiric Embrace"], false, true, false, nil, nil, true)
end
end
Hope this helps anyone. If needed for people unwilling to do this themselves, I can package up my directory for people, if the Dev doesn't package in these changes. Also, if there's anyone that needs anything added/fixed and the Dev can't get to it, send me a PM and I can try to fix it (might be a trial/error that I have to mail you the code if I don't have a toon to test with).
http://www.wowace.com/addons/energized/
It's working fine here, too. I'm looking forward to Energized, but I'm still using BuffEnough without any problems. Are you getting any error messages in BugSack?
I'm probably not going to make an official thread here for Energized; I typically prefer to centralize comments on the add-on page directly.
This application has encountered a critical error:
Fatal exception!
Program: C:\Program Files (x86)\World of Warcraft Public Test\Wow.exe
Exception: 0xC0000094 (INT_DIVIDE_BY_ZERO) at 0023:01658DB3
Upon review of code, my main question is: why the hell it is so OO-heavy? All functions are methods on addon's global objects and almost all state variables are properties of the same object. Global object is singleton so all of those are much better represented with simple "local", completely eliminating property lookups and OO call overheads.
I also suspect there many other addons like this, they just aren't noticeable because they are not using such often generated events. Really, there should be some article about where not to use OO.
If current maintainer is interested, I can submit minimal patch that would cut down OO in those two most intensive parts of code.
BuffEnough v1.2.124s.zip(obsolete - see below).If I add Custom Buff Detection, your Version doesn't recognize the Buff, it still says missing (Blood Presence DK)
here the "Wtf File" Content.
[PHP]
BuffEnoughDB = {
["profileKeys"] = {
["Agriope - Gorgonnash"] = "Default",
},
["profiles"] = {
["Default"] = {
["relativepoint"] = "CENTER",
["height"] = 50.00000068387239,
["positionx"] = 0,
["relativeto"] = "CENTER",
["positiony"] = 0,
["width"] = 100.0000626427113,
["custom"] = {
["Buffs"] = {
["Blood Presence"] = "Expected",
},
},
},
},
}
[/PHP]
Also getting an LUA Error when right clicking the Frame:
[PHP]Message: Interface\AddOns\BuffEnough\BuffEnough.lua:797: attempt to index local 'data' (a boolean value)
Time: 04/28/11 13:38:46
Count: 1
Stack: [C]: ?
Interface\AddOns\BuffEnough\BuffEnough.lua:797: in function `PrintResults'
Interface\AddOns\BuffEnough\BuffEnough.lua:139: in function `OnClick'
Interface\AddOns\BuffEnough\Frame.lua:53: in function <Interface\AddOns\BuffEnough\Frame.lua:49>
Locals: [/PHP]
It's a clean installation.
Greetings
BuffEnough v1.2.128s2.zip(obsolete, see below)In addition to fixing issues mentioned above and small assorted speed-ups, this version introduces one very noticeable: for any buff BE didn't know internally as spell buff, it tried to to scan buff's tooltip to determine if it is flask or elixir (even for hardcoded elixir buffs because of reversed priority). Tooltip scanning is generally a slow operation and this version makes it faster by only scanning buffs cast by player himself and that have >30 min duration. I plan to make next version scan every unknown buff only once and remember if it is flask elixir or not.
http://code.google.com/p/rowaasr13-wow-speedup/downloads/detail?name=BuffEnough%20v1.2.128s3.zip
1. Added Chakra. It's *technically* a little bugged, because if you have the "Chakra" buff, but not a state, it'll still show you as fully buffed. This isn't really a concern, since as soon as you cast a heal, you will trigger a Chakra state. Chakra: Serenity/Sanctuary/Chastise all count as being "BuffEnough". Note: This only triggers if your Holy Spec.
2. BuffEnough seems to think that Inner Will is not a viable buff. This has been rectified. If you have Inner Will, instead of Inner Fire, You are now BuffEnough!
3. Vampiric Embrace. Not sure why this is missing, it seems to be a talent all Shadow Priests pick up. This will only be checked if your in your Shadow Spec.
I'm asking that these be merged. The Chakra is extremely needed if you have a T11 4pc bonus. I could have just checked if the bonus is up, but you should really always be in a Chakra state regardless, because in the long run, it's a Buff, and without it, you will do significantly less heals. Same with Vampiric Embrace. I don't know how to check to see if you've learned the talent, but it's simple to ignore it in the settings. However, if you add it as an expected buff, it checks even if your in a Holy/Disc spec.
Changes:
Spells.lua (main directory for those that want to change these manually), Start on the line where it says "-- Priests". Replace everything until "-- Shamans" with:
For Priest.lua (Inside the Classes Folder), Here's my whole file, since there were changes in a few spots:
Hope this helps anyone. If needed for people unwilling to do this themselves, I can package up my directory for people, if the Dev doesn't package in these changes. Also, if there's anyone that needs anything added/fixed and the Dev can't get to it, send me a PM and I can try to fix it (might be a trial/error that I have to mail you the code if I don't have a toon to test with).
-Todd
Fatherjanus US-Greymane