Carbonite Maps

Carbonite Maps

6M Downloads

Will not load since latest master updates

radicaled06 opened this issue ยท 10 comments

commented

Since the master updates roughly 3 hours ago, carbonite is completely broken and will not load at all. #

Error Code:
Date: 2017-08-18 21:21:54
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Carbonite\Carbonite.lua line 878:
Usage: RegisterEvent("eventname", "methodname"): 'methodname' - method 'CHANNEL_ROSTER_UPDATE' not found on self.
Debug:
[C]: ?
[C]: ?
...ags\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:138: RegisterEvent()
Carbonite\Carbonite.lua:878: InitEvents()
Carbonite\Carbonite.lua:778: SetupEverything()
Carbonite\Carbonite.lua:1246: NXOnUpdate()
[string ":OnUpdate"]:1:
[string "
:OnUpdate"]:1

commented

Update:

Through some trial and error it does seem to be a conflict with my WeakAuras addon. I'm not sure how to fix this?

commented

"CHANNEL_ROSTER_UPDATE", Com.OnChannel_roster_update,

It's not a conflict with anything, the error is clear as day. Addon is trying to register the event CHANNEL_ROSTER_UPDATE with the function Com.OnChannel_roster_update which doesn't exist, so naturally, AceEvent tries to fall back to finding a function called CHANNEL_ROSTER_UPDATE which also doesn't exist.

TLDR it's a valid error the authors need to resolve instead of upgrading and then downgrading their ace libraries over and over again.

commented

My fault. Fixed.

commented

@IrcDirk You re-upgraded the libraries, you didn't fix the source of the error which I highlighted. If you don't require the event anymore, that line can simply be removed.

commented

It's fixed now, surprised an entirely missing function took 4-5 years to finally produce an error in the code

As for ace libraries.. we shouldn't ever be using alpha code in a public/stable release, no matter what other addons decide to do so.

commented

Well that's strange, after I first posted I did some trial and error and disabled my other addons one-by-one until I found the issue. After disabling WA it worked perfectly fine.

Thanks for the fix, though!

commented

@mikepauer It's actually really simple. AceEvent embeds the function "RegisterEvent" in your addon. However, for whatever unknown reason, you guys create your own version of "RegisterEvent" here:

function Nx.Window:RegisterEvent (event, handler)

This overwrites the AceEvent version, and prevents the error from showing up.

The reason addons with newer versions of AceEvent (such as WeakAuras) revealed this is as follows: When the newer AceEvent loads, it loops through all the addons that embed it, and overwrites the "RegisterEvent" function with the AceEvent one.

Before AceEvent update:
You embed AceEvent.
You overwrite AceEvent's "RegisterEvent" so the error never shows.

After AceEvent update:
You embed AceEvent.
You overwrite AceEvent's "RegisterEvent"
An upgrade happens, and overwrites your version of "RegisterEvent" back to AceEvent's version of it, allowing errors to show once again.

You should probably investigate why you have a function called RegisterEvent when you are embedding AceEvent.

commented

The use if RegisterEvent in said fashion goes back before Carbonite used any Ace libs and is exactly as used during MoP release. Was not changed when the addon was moded with the release of WoD.

So either we could change to AceEvent or stay and drop AceEvent from libs..

commented

Either drop AceEvent and handle events yourself or remove your own RegisterEvent function.

Otherwise this issue will happen again next time there's an AceEvent update.

commented

Converting to AceEvent.. originally I was going to drop it, but almost all of Carbonite is already using it. It's only Quests and Maps that were not... the other Modules I had already converted to using it when I split everything into modular.