Thread Tools Display Modes
Prev Previous Post   Next Post Next
10/13/18, 06:15 AM   #1
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,578
[implemented] addon manager improvements

It has been asked a few times already and I'd really like to see some improvements to the addon manager. It would be great if it could answer the following few questions about an addon.

Where was the addon loaded from?
I believe the best way to answer this question would be a function to return the path to the manifest file for an addon. Right now the only way to know if an addon was installed in the correct path is to use debug.traceback to find the file it was called from, but abusing debug functions for features is never a good idea.
In addition a function that allows to open the folder where all addons reside - with an optional manifest path to directly open go to an addon - in explorer/finder would also be great, seeing as many users struggle to find their addon folder.

Which version does the addon specify?
Addon authors have specified a version string via "##Version <string>" in the addon manifest since forever and the minion addon manager also uses that information to determine which version of an addon is installed, but there is still no way to retrieve this string ingame so it can be shown to the user. There is also no way to get the "##AddOnVersion <integer>" ingame. Both would be a great to know when troubleshooting addon issues, since more often than not, an addon bug report happens just because of an incorrectly installed addon. LibAddonMenu for example currently requires that the addon author manually puts this same version string into the Lua code a second time. If we could just use the string from the manifest, this would reduce potential confusion when an author forgets to update one or the other.

What is the status of each file specified in the manifest?
This last one is more for addon authors to debug during development. Many times when I create a new file and reload the UI and nothing happens, I am left wondering if I just misspelled or forgot the file in the manifest, or if the game loaded it but there is some other problem. Knowing which files have been detected in the manifest and if they could be loaded or are missing would be very helpful in these cases (e.g. "loaded", "error", "missing"). It could also help with cleaning up the manifest after restructuring an addon - e.g. AwesomeGuildStore has more than 300 files. Knowing which ones are specified in the manifest, but missing in the file system would make this a lot easier for me.

Is an addon a library?
Votan did a great job separating the list based on the names of addons, but it would make a lot of sense if the game itself could do this on its own. Let authors put a "##Library" in the manifest and move the entry to a second tab/list. Maybe also add a copy of dependency entries directly to the extended addon information, so users can enable missing dependencies without having to scroll around.

Which game version was the addon tested with?
The much discussed "allow outdated addons" checkbox is still a big pain for both authors and users. Instead of force-disabling all addons, it would be much more elegant to do an automated smoke test during the first login after a major game update. Just load the ui, check which addons throw errors, disable them, reload (don't store saved variables during this) - until all errors and/or addons are gone. In the addon list you'd then show the text "last tested with <game version>" for working addons that have an older api version and "this addon is outdated" if it produced errors and was disabled due to them. No need for the checkbox anymore.
 
 

ESOUI » Developer Discussions » Wish List » [implemented] addon manager improvements


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off