1.14.0 support (private server)
kalypto89 opened this issue · 19 comments
Hello;
I know this version is for classic wotlk but is it possible to enable support for 1.14.0 version?
Currently there is no highlight on the action buttons for target (for either buffs on friendly or debuff on enemy).
the addon only works for your own buffs on yourself
If you can't support for this version, could you please advise the code lines to alter?
I'm not anywhere near a developer or skill, but I understand that my request is quite particular so maybe it's something I can do on my own otherwise.
Niether Vanilla nor Classic provide debuff durations – in the case of Classic by deliberate decision from the developers to take them out of the code. So the expirationTime field in the UnitAura return is always empty.
I think most of the addons that support timers are using the UnitAura wrapper from LibClassicDurations.
If you install that you can probably put something like this at the top of Controller.lua:
local LCD = LibStub("LibClassicDurations", true)
and then replace
local UnitAura = UnitAura
with
local UnitAura = LCD and LCD.UnitAuraWrapper or UnitAura
If I have time to test it I might put that into the core code, but you'd still have to install LibClassicDurations separately I'm not going to embed it as I can't keep it up-to-date.
ill try it out and let you know. right now i can tell you for sure that weakauras for example populates the debuff duration on target. thanks for the tip, ill keep u updated!
- edit
- Update:
- installed libclassicdurations
- added the code as you suggested and it works!
- you are a genius!
Ha, well the fact it works is proof at least one of your other addons is using LibClassicDurations, because it needs a bit of a tweak to work without one.
local LCD = LibStub("LibClassicDurations", true)
if LCD then LCD:Register("LiteButtonAuras") end
I also had to modify the LiteButtonAuras.toc to add LibClassicDurations to the OptionalDeps line
Out of interest, one of the other return values from UnitAura is "isCastByPlayer" (field 13). I wonder if it's filled out in Hermes Proxy which would be a way around the "PLAYER" filter. I suspect not but if you feel like trying the DoT test again and running
/dump UnitAura('target', 1, 'HARMFUL')
I'm curious if [13] has anything in it.
Edit: probably not, internet seems to say almost none of the fields were there in 1.12.
Your first screenshot "my friendly buff on target" is not something that LBA does, so it's expected that it doesn't show. LBA only shows friendly buffs on player, other friendly units are better handled by unit frame addons.
The second one should work. As far as I can tell it works for me. See screenshot below of a level 2 warlock I made on WoW Classic (Edit) Season of Mastery showing Immolate highlighting on my bar according to the debuff on my target.
What's different between what I've done and what you're doing? Does it work with the default actionbars? Do the spell names and the buff names not match for these spells? Do you have any other suggestion on how I can test it when I don't play classic (and aren't going to spend hundreds of hours leveling)?
Re-tested on regular (not Season of Mastery) realm. Same result, seems to be working for me.
hey, thank you for the reply and for looking into this.
I mentioned this in the title but maybe I wasn't specific; I think this works for me on both SoM and classic era; however the version im working on right now is 1.14.0 pls see screenshot. this is used via hermes proxy to be able to play 1.14.0 classic client emulated on a vanilla server 1.12.
I was wondering if you are able to test for this? Or again maybe advise some code that I could have changed.
Sorry I know this is very specific, but your add-on is a huge QoL improvement especially for playing warlock
Ah, I see!
My best guess is that this is probably a bug in Hermes Proxy.
The UnitAura() API call to fetch buffs and debuffs didn't exist in WoW 1.12 (didn't come in until 3.0.2 I think), also there were spell ranks in the UnitBuff() and UnitBuff() return values which were removed at the start of BfA retail and also aren't there in the Classic client.
So Hermes Proxy must be doing something to handle these differences. Maybe not 100% right.
First thing to check would be to see if the aura query is working. Put up one DoT on a target and do:
/dump UnitAura('target', 1, 'HARMFUL PLAYER')
and see if it prints the debuff. Most obvious problem would be that nothing comes up because they aren't handling 'HARMFUL PLAYER' properly'. If it shows nothing you probably should log that as a bug with Hermes Proxy on github. You can also test if
/dump UnitDebuff('target', 1, 'PLAYER')
works instead.
What it should show is 15 values as per https://wowpedia.fandom.com/wiki/API_UnitAura
If it shows a different number of values that would be interesting too, or if the [2] value is a small number or 0 or missing indicating that they have left the spell rank in their incorrectly.
Hey, I noticed that the debuff is also not showing on NeatPlates. Not sure if you are familliar with this add-on but the add-on shows your debuffs above the enemy target nameplates so maybe it is quering the same code as your addon?
So its not showing the debuff please see below:
But another addon, called Nameplate Auras will show the debuff, but only if the aura name is manually loaded as show in this screenshot.
Not sure this information helps you but I was thinking that maybe the source where NameplateAuras is querying would help in determining where the error comes from/or what could be changed in neatplates / litebuttons to help detect and display the debuff?
Also strange that it only works in nameplateaura when the spell is manually loaded in the addon interface but not before.
Reading the response to the HermesProxy issue, it seems like the 1.12 private server has no way to determine which buffs are cast by you at all.
You can go through Controller.lua in the LBA code and remove the PLAYER and RAID from all of the ForEachAura calls (should be 5 places). Then you can see the auras, but they will display if anyone cast them not just you. That appears to be the only thing possible in the 1.12 server – what LBA relies on to work just isn't there.
Sorry, looks like you're plain out of luck and it's just not possible to do in 1.12.
Most welcome. I've never known anything about private servers before so it was an interesting thing to look at.