No; I just haven't used AceEvent in years, since I realized it didn't actually do anything the normal event API didn't do, and just added overhead for no reason.
Anyway, your understanding of the documentation is correct. Looking at the AceAddon code, it appears to no longer has any interaction with AceEvent, so you (probably) need to manually unregister events.
Of course, if you just use the normal event API, you would need to do that anyway. If you still want to use AceAddon (it is convenient for modules, etc) here is a simple way to do it:
Code:
local addon = LibStub("AceAddon-3.0"):NewAddon(CreateFrame("Frame"), "MyAddon", ...)
Now your AceAddon-3.0 object is a frame, instead of a plain table, and as such has all the normal frame methods and properties, including:
Code:
-- Replace the main functionality of AceEvent in 3 lines of code:
addon:SetScript("OnEvent", function(self, event, ...)
return self[event] and self[event](self, ...)
end)
-- Register events as usual:
addon:RegisterEvent("PLAYER_LOGIN")
addon:RegisterEvent("UNIT_AURA")
-- And define handlers as usual:
function addon:PLAYER_LOGIN()
print("You have logged in!")
end
function addon:UNIT_AURA(unit)
if unit == "player" then
print("The buffs and/or debuffs on you changed!")
end
end
This also has the advantage of not dying with obnoxious errors if you try to register an event that's already registered, or unregister one that wasn't registered, both of which are more convenient than running a bunch of checks every time you need to register/unregister events based on changing conditions (eg. user changed an option, or only listening for some events inside combat).