TBC Classic Support
karai17 opened this issue ยท 11 comments
Trying the latest release of IceHUD on the TBC Beta, IceHUD throws a number of errors and does not work. If you don't have access to the beta, I can post some error logs.
I sure do love moving targets.
Yes, logs would be helpful. I don't know whether I have access to TBC or not...is it on the Classic PTR?
If you'd like to hit me up on Discord (Karai17#3209) I could screen share and make local changes to the code
I appreciate that. I will let you know if I need it. I've applied for TBC-Classic access through WoWInterface.
You need to apply to the Beta, I gained access after a few days. There are 37 first-wave errors, many of which are the same:
Message: ...\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua:424: bad argument #2 to 'format' (string expected, got nil)
Time: Wed Apr 21 16:46:18 2021
Count: 1
Stack: ...\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua:424: bad argument #2 to 'format' (string expected, got nil)
[string "=[C]"]: in function `format'
[string "@Interface\AddOns\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua"]:424: in function `v'
[string "@Interface\AddOns\IceHUD\libs\LibDogTag-Unit-3.0\Cleanup.lua"]:42: in main chunk
Locals: (*temporary) = "HasAura(aura=%q, unit=unit) or HasAura(aura=%q, unit=unit) or HasAura(aura=%q, unit=unit)"
(*temporary) = "Stealth"
(*temporary) = nil
(*temporary) = "Prowl"
(*temporary) = "string expected, got nil"
Message: ...\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua:1078: Attempt to register unknown event "PLAYER_TALENT_UPDATE"
Time: Wed Apr 21 16:46:18 2021
Count: 1
Stack: ...\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua:1078: Attempt to register unknown event "PLAYER_TALENT_UPDATE"
[string "=[C]"]: in function `RegisterEvent'
[string "@Interface\AddOns\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"]:1078: in function `activate'
[string "@Interface\AddOns\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"]:1123: in main chunk
Locals: (*temporary) = <unnamed> {
0 = <userdata>
}
(*temporary) = "PLAYER_TALENT_UPDATE"
Message: ...dOns\IceHUD\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:77: attempt to call global 'GetNumSpecializationsForClassID' (a nil value)
Time: Wed Apr 21 16:46:18 2021
Count: 1
Stack: ...dOns\IceHUD\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:77: attempt to call global 'GetNumSpecializationsForClassID' (a nil value)
[string "@Interface\AddOns\IceHUD\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua"]:77: in main chunk
Locals: MAJOR = "LibDualSpec-1.0"
MINOR = 20
lib = <table> {
registry = <table> {
}
options = <table> {
}
upgrades = <table> {
}
currentSpec = 0
eventFrame = <unnamed> {
}
mixin = <table> {
}
}
minor = nil
registry = <table> {
}
options = <table> {
}
mixin = <table> {
}
upgrades = <table> {
}
AceDB3 = <table> {
db_registry = <table> {
}
frame = <unnamed> {
}
New = <function> defined @Interface\AddOns\IceHUD\libs\AceDB-3.0\AceDB-3.0.lua:709
}
AceDBOptions3 = <table> {
optionTables = <table> {
}
handlers = <table> {
}
GetOptionsTable = <function> defined @Interface\AddOns\IceHUD\libs\AceDBOptions-3.0\AceDBOptions-3.0.lua:442
}
AceConfigRegistry3 = <table> {
RegisterOptionsTable = <function> defined @Interface\AddOns\IceHUD\libs\AceConfig-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:315
validated = <table> {
}
tables = <table> {
}
callbacks = <table> {
}
RegisterCallback = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
GetOptionsTable = <function> defined @Interface\AddOns\IceHUD\libs\AceConfig-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:360
UnregisterCallback = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:153
IterateOptionsTables = <function> defined @Interface\AddOns\IceHUD\libs\AceConfig-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:346
NotifyChange = <function> defined @Interface\AddOns\IceHUD\libs\AceConfig-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:289
ValidateOptionsTable = <function> defined @Interface\AddOns\IceHUD\libs\AceConfig-3.0\AceConfigRegistry-3.0\AceConfigRegistry-3.0.lua:276
UnregisterAllCallbacks = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
}
_ = "Warrior"
_ = "WARRIOR"
classId = 1
(*temporary) = nil
(*temporary) = 1
(*temporary) = "attempt to call global 'GetNumSpecializationsForClassID' (a nil value)"
Message: Interface\AddOns\IceHUD\IceHUD.lua:327: CreateFrame(): Couldn't find inherited node "UIPanelButtonTemplate2"
Time: Wed Apr 21 16:46:18 2021
Count: 1
Stack: Interface\AddOns\IceHUD\IceHUD.lua:327: CreateFrame(): Couldn't find inherited node "UIPanelButtonTemplate2"
[string "=[C]"]: in function `CreateFrame'
[string "@Interface\AddOns\IceHUD\IceHUD.lua"]:327: in main chunk
Locals: (*temporary) = "BUTTON"
(*temporary) = "IceHUDOpenConfigButton"
(*temporary) = IceHUDConfigPanel {
0 = <userdata>
name = "IceHUD"
}
(*temporary) = "UIPanelButtonTemplate2"
The following error is in many places:
Message: Interface\AddOns\IceHUD\IceElement.lua:50: attempt to call method 'Register' (a nil value)
Time: Wed Apr 21 16:46:18 2021
Count: 1
Stack: Interface\AddOns\IceHUD\IceElement.lua:50: attempt to call method 'Register' (a nil value)
[string "@Interface\AddOns\IceHUD\IceElement.lua"]:50: in function `init'
[string "@Interface\AddOns\IceHUD\IceBarElement.lua"]:27: in function `init'
[string "@Interface\AddOns\IceHUD\IceUnitBar.lua"]:30: in function `init'
[string "@Interface\AddOns\IceHUD\modules\PlayerHealth.lua"]:16: in function `init'
[string "@Interface\AddOns\IceHUD\IceCore.lua"]:12: in function `new'
[string "@Interface\AddOns\IceHUD\modules\PlayerHealth.lua"]:1524: in main chunk
Locals: self = <table> {
TimeLeft = <function> defined @Interface\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua:172
scalingEnabled = false
CancelAllTimers = <function> defined @Interface\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua:160
elementName = "PlayerHealth"
UnregisterMessage = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:153
alpha = 1
ScheduleTimer = <function> defined @Interface\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua:94
ScheduleRepeatingTimer = <function> defined @Interface\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua:129
CancelTimer = <function> defined @Interface\AddOns\Details\Libs\AceTimer-3.0\AceTimer-3.0.lua:147
UnregisterAllMessages = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
UnregisterAllEvents = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:174
RegisterMessage = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
SendMessage = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:59
UnregisterEvent = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:153
RegisterEvent = <function> defined @Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:90
}
name = "PlayerHealth"
skipRegister = nil
(*temporary) = nil
(*temporary) = <table> {
WowClassic = false
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:367
Enable = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:294
RegisterChatCommand = <function> defined @Interface\AddOns\IceHUD\libs\AceConsole-3.0\AceConsole-3.0.lua:85
EnableModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:332
modules = <table> {
}
GetModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:210
IterateEmbeds = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:442
CurrTagVersion = 3
defaultModuleLibraries = <table> {
}
UnregisterChatCommand = <function> defined @Interface\AddOns\IceHUD\libs\AceConsole-3.0\AceConsole-3.0.lua:111
Printf = <function> defined @Interface\AddOns\IceHUD\libs\AceConsole-3.0\AceConsole-3.0.lua:69
WowVer = 20501
SetDefaultModulePrototype = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:409
debugging = false
name = "IceHUD"
IsEnabled = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:451
orderedModules = <table> {
}
DisableModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:350
GetArgs = <function> defined @Interface\AddOns\IceHUD\libs\AceConsole-3.0\AceConsole-3.0.lua:144
Print = <function> defined @Interface\AddOns\IceHUD\libs\AceConsole-3.0\AceConsole-3.0.lua:54
NotifyOptionsChange = <function> defined @Interface\AddOns\IceHUD\IceHUD.lua:255
IsModule = <function> defined @Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.
Message: Interface\AddOns\IceHUD\IceHUD.lua:197: attempt to call method 'SetDebugging' (a nil value)
Time: Wed Apr 21 16:46:18 2021
Count: 1
Stack: Interface\AddOns\IceHUD\IceHUD.lua:197: attempt to call method 'SetDebugging' (a nil value)
[string "@Interface\AddOns\IceHUD\IceHUD.lua"]:197: in function <Interface\AddOns\IceHUD\IceHUD.lua:196>
[string "=[C]"]: ?
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:70: in function <...ce\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:498: in function `InitializeAddon'
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:623: in function <...ce\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:615>
Locals: <none>
Message: Interface\AddOns\IceHUD\IceHUD.lua:263: attempt to index field 'IceCore' (a nil value)
Time: Wed Apr 21 16:46:20 2021
Count: 1
Stack: Interface\AddOns\IceHUD\IceHUD.lua:263: attempt to index field 'IceCore' (a nil value)
[string "@Interface\AddOns\IceHUD\IceHUD.lua"]:263: in function <Interface\AddOns\IceHUD\IceHUD.lua:261>
[string "=[C]"]: ?
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:70: in function <...ce\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:527: in function `EnableAddon'
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:630: in function <...ce\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:615>
Locals: <none>
Message: ...\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua:424: bad argument #2 to 'format' (string expected, got nil)
This is a LibDogTag-Unit-3.0 issue which can be logged here: https://github.com/parnic/LibDogTag-Unit-3.0. This is already trying to handle the Shadowmeld ability having a different ID in Classic, but it looks like it has yet another ID in TBC, which is just lovely.
Message: ...\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua:1078: Attempt to register unknown event "PLAYER_TALENT_UPDATE"
Message: ...dOns\IceHUD\libs\LibDualSpec-1.0\LibDualSpec-1.0.lua:77: attempt to call global 'GetNumSpecializationsForClassID' (a nil value)
These are LibRangeCheck and LibDualSpec issues, respectively. Hopefully those authors will update for TBC-Classic. ๐ค
Message: Interface\AddOns\IceHUD\IceHUD.lua:327: CreateFrame(): Couldn't find inherited node "UIPanelButtonTemplate2"
This is definitely an IceHUD issue. It looks like WOW_PROJECT_ID
was changed from WOW_PROJECT_CLASSIC
to WOW_PROJECT_BURNING_CRUSADE_CLASSIC
which addons will have to be updated for. Unfortunately IceHUD has a lot of handling for WOW_PROJECT_CLASSIC
, so it's going to be a bit of a whack-a-mole problem.
I will probably need access to TBC-Classic to fix these.
Still waiting on my beta key. I'd welcome contributions to help fix it. :)
The LibDogTag errors should already be fixed.
Just installed IceHUD 1.13.4 on the beta client and I am still getting one LibDogTag and LibRangeCheck error each. On top of those are 34 other errors, almost exclusively that "Register" error in the above posts~
Message: ...\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua:424: bad argument #2 to 'format' (string expected, got nil)
Time: Wed May 5 08:38:24 2021
Count: 1
Stack: ...\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua:424: bad argument #2 to 'format' (string expected, got nil)
[string "=[C]"]: in function `format'
[string "@Interface\AddOns\IceHUD\libs\LibDogTag-Unit-3.0\Categories\Auras.lua"]:424: in function `v'
[string "@Interface\AddOns\IceHUD\libs\LibDogTag-Unit-3.0\Cleanup.lua"]:42: in main chunk
Locals: (*temporary) = "HasAura(aura=%q, unit=unit) or HasAura(aura=%q, unit=unit) or HasAura(aura=%q, unit=unit)"
(*temporary) = "Stealth"
(*temporary) = nil
(*temporary) = "Prowl"
(*temporary) = "string expected, got nil"
Message: ...\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua:1076: Attempt to register unknown event "PLAYER_TALENT_UPDATE"
Time: Wed May 5 08:38:24 2021
Count: 1
Stack: ...\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua:1076: Attempt to register unknown event "PLAYER_TALENT_UPDATE"
[string "=[C]"]: in function `RegisterEvent'
[string "@Interface\AddOns\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"]:1076: in function `activate'
[string "@Interface\AddOns\IceHUD\libs\LibRangeCheck-2.0\LibRangeCheck-2.0.lua"]:1121: in main chunk
Locals: (*temporary) = <unnamed> {
0 = <userdata>
}
(*temporary) = "PLAYER_TALENT_UPDATE"
IceHUD.lua:328:
blizOptionsPanel.button = CreateFrame("BUTTON", "IceHUDOpenConfigButton", blizOptionsPanel, (IceHUD.WowVer >= 50000 or IceHUD.WowClassic or IceHUD.WowClassicBC) and "UIPanelButtonTemplate" or "UIPanelButtonTemplate2")
the above line fixed all of the IceHUD errors, leaving only the aforementioned two + the following LibAce issue:
Message: ...\common\Wildpants\libs\AceEvent-3.0\AceEvent-3.0.lua:33: Attempt to register unknown event "PARTY_MEMBERS_CHANGED"
Time: Wed May 5 08:56:07 2021
Count: 1
Stack: ...\common\Wildpants\libs\AceEvent-3.0\AceEvent-3.0.lua:33: Attempt to register unknown event "PARTY_MEMBERS_CHANGED"
[string "=[C]"]: in function `RegisterEvent'
[string "@Interface\AddOns\Bagnon\common\Wildpants\libs\AceEvent-3.0\AceEvent-3.0.lua"]:33: in function `OnUsed'
[string "@Interface\AddOns\Bagnon\common\Wildpants\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua"]:142: in function `RegisterEvent'
[string "@Interface\AddOns\IceHUD\modules\PlayerHealth.lua"]:87: in function `Enable'
[string "@Interface\AddOns\IceHUD\IceCore.lua"]:201: in function `Enable'
[string "@Interface\AddOns\IceHUD\IceHUD.lua"]:270: in function <Interface\AddOns\IceHUD\IceHUD.lua:262>
[string "=[C]"]: ?
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:70: in function <...ce\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:65>
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:527: in function `EnableAddon'
[string "@Interface\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua"]:630: in function <...ce\AddOns\Details\Libs\AceAddon-3.0\AceAddon-3.0.lua:615>
Locals: <none>
That being said, there are many places in the code where IceHUD.WowClassic
needs to be updated to IceHUD.WowClassic or IceHUD.WowClassicBC
and i am not familiar enough with the codebase to have intuition on which ones should be updated and which ones should not~
First round of compatibility changes is in the latest alpha (1.13.5-alpha1). I have only tested it very lightly, and then only with a Rogue. Please open new issues for specific problems going forward as I'm certain there are many.
LibRangeCheck, LibDogTag, etc. is outside the purview of this mod.