Quantcast
Download
(45 Kb)
Download
Updated: 05/21/18 02:36 AM
Pictures
File Info
Compatibility:
Summerset (4.0)
Dragon Bones (3.3)
Updated:05/21/18 02:36 AM
Created:02/14/14 10:28 PM
Monthly downloads:15,838
Total downloads:136,593
Favorites:375
MD5:
LibAddonMenu  Popular! (More than 5000 hits)
Version: 2.0 r26
by: sirinsidiator, Seerah
Since I (sirinsidiator) have taken over development of LAM-2.0 I decided it will be in the best interest of everyone to make future development a group effort.
With the consent of Seerah I have put LAM-2.0 under The Artistic License 2.0 and created a github project in order to make collaborations possible.
I also want to thank everyone who participated in planning and realizing upcoming changes, especially votan, merlight and Garkin.

If you came here because a message in chat told you so,
then you are using an outdated addon that relies on an older version of LAM-2.0 which might not be compatible with ESO update 6.
But no need to panic. There are a few things you can do in order to get it to work again:
  1. Update your addons. Maybe the author already fixed the problem.
  2. Try to find out which addon uses the outdated version and ask for help in the comment section.
  3. Ask for help in our comment section.
  4. Replace LibAddonMenu-2.0 in all your addons with the newest version.

LibAddonMenu-2.0 is now released!
Your addons will continue to work under LAM-1.0, however that version of the library will no longer be receiving updates, and you will not receive any benefits of LAM-2.0.

** NOTE: If you are using a version of LAM-2.0 earlier than r17, please update your copy of the lib in the addon. This will avoid problems with loading future versions of LAM.**


LibAddonMenu-2.0 is a library to aid addon authors in creating a configuration GUI for their addons which is located in the game's Settings menu. It supports the ability to have all of a user's addon options located in the same panel.

You may see ZAM_Stats for an example of usage.


HOW TO USE:

--Including the library with your addon--
You may either embed the library and LibStub in your addon and load the files from your addon manifest, or have the library installed like any other normal addon.

If your addon embeds the library, you may place this line in your manifest file, just in case the user also has a standalone version installed.
Code:
## OptionalDependsOn: LibAddonMenu-2.0
If you are depending on the library being installed separately and are not embedding it, then you must include this line in your text file.
Code:
## DependsOn: LibAddonMenu-2.0
Either way you choose, LibStub will ensure that only one copy of the library (the newest revision) is loaded into memory.

When embedding the libary, remove the internal LibAddonMenu-2.0 folder from the main library download. I usually place my libraries in a sub-folder called "libs", but you may put them wherever you like in your addon directory. This is how I would then list the files in my manifest. (LAM2's widget controls are broken out into their own files to keep their code clean - this is why there is so many. Good thing you only have to copy-paste this once!)

Code:
libs\LibAddonMenu-2.0\LibAddonMenu-2.0.lua
libs\LibAddonMenu-2.0\controls\panel.lua
libs\LibAddonMenu-2.0\controls\submenu.lua
libs\LibAddonMenu-2.0\controls\button.lua
libs\LibAddonMenu-2.0\controls\checkbox.lua
libs\LibAddonMenu-2.0\controls\colorpicker.lua
libs\LibAddonMenu-2.0\controls\custom.lua
libs\LibAddonMenu-2.0\controls\description.lua
libs\LibAddonMenu-2.0\controls\dropdown.lua
libs\LibAddonMenu-2.0\controls\editbox.lua
libs\LibAddonMenu-2.0\controls\header.lua
libs\LibAddonMenu-2.0\controls\slider.lua
libs\LibAddonMenu-2.0\controls\texture.lua
libs\LibAddonMenu-2.0\controls\iconpicker.lua
libs\LibAddonMenu-2.0\controls\divider.lua
(Don't forget to also embed LibStub and have it listed to load prior to LibAddonMenu!)


--Getting the library from LibStub (required)--
Lua Code:
  1. local LAM = LibStub:GetLibrary("LibAddonMenu-2.0")
  2. --OR--
  3. local LAM = LibStub("LibAddonMenu-2.0")
  4.      --returns a reference to the library table


Please see the LAM-2.0 wiki on github for guides and docs, as well as a list of differences between LAM-1.0 and LAM-2.0

Details on LAM2 data tables
2.0 r26
- fixed error when loading LAM on an unsupported locale
- added Korean translation (thanks p.walker)
- added Brazilian translation (thanks mlsevero)

2.0 r25
- fixed tooltips not working for entries in scrollable dropdown controls (#78, thanks kyoma)
- fixed standalone LAM not loading as expected when LAM is bundled with the manifest included (#81)
- fixed slashcommands not opening the correct panel on first attempt after UI load (#79)
- fixed an error when opening the addon settings menu after Clockwork City update (#80, thanks Gandalf)

2.0 r24
- added scrollable property for dropdown controls (#71, #75, thanks kyoma)
- added Italian translation (#70, thanks JohnnyKing94)
- added Polish translation (#73, #74, thanks EmiruTegryfon)
- updated Spanish translation (thanks TERAB1T)
- updated Russian translation (thanks Morganlefai and Kwisatz)
- fixed debug code not accepting functions for widget names (#72, thanks kyoma)

2.0 r23
- added Chinese translation (#64, thanks bssthu)
- added tooltips for dropdown menu entries (#42)
- added support for separate values for dropdown menu entries (#65)
- added keybind for reset to defaults button (#68)
- added requireReload property for input controls (#47)
- fixed support for nested submenus (#61, thanks Baertram)
- fixed alpha and height not working on divider control (#69)

2.0 r22
- fixed mouse exit events for sliders and textures (#52, thanks silvereyes333)
- fixed decimal input on sliders (#54)
- fixed icon picker not retaining color when disabled is toggled (#58)
- fixed slider accepting mouse wheel input while being disabled (#60)
- added support for nested submenus (#53)
- added new divider widget (#56, thanks silvereyes333)
- added new function "UpdateWarning" to controls which allows to refresh the warning text (#55, thanks silvereyes333)
- added new property "website" to panels which will render a button in the panel to open the specified addon URL (#57)
- updated localization (#59, thanks everyone who helped with it)

2.0 r21
- fixed panel creation starting more than once when switching between different addon panels quickly (#40)
- fixed LAM.util getting wiped with each version load causing errors for many players (#44)
- fixed disabled controls not having the correct label color in some cases (#41)
- fixed controls not updating their own disabled state when their value changes (#51)
- added Japanese translation (thanks k0ta0uchi) (#45)
- added isDangerous flag for button controls (#50)
- when set to true it changes the text color of the button to red and opens a dialog which shows the label and the warning text before running the callback
- added new options for sliders and fixed some bugs (#49)
- autoSelect (boolean): when set to true it makes the input field select all text when it gains focus
- inputLocation (string): setting it to "right" will move the input field to the right side of the slider and make it slightly bigger. For aesthetic reasons this should only be used in custom panels and not in the addon menu
- clampInput (boolean): true by default and if set to false it allows the input values of the slider to exceed the min and max value
- for other internal code changes take a look at the git history

2.0 r20
- fixed empty panels not firing LAM-PanelControlsCreated (#32)
- removed height constraint of 2500 from submenus (#34)
- added two new callbacks LAM-PanelOpened and LAM-PanelClosed. Both pass the panel as their sole argument (#27)
- 'default' can now be a function in addition to a static value (#23)
- all labels (name, tooltip, warning, etc.) can now be a string id or function in addition to a static string (#22)
- updated LibStub to r4

2.0 r19
- made icon picker choicesTooltips array optional
- added support for custom panel objects without a GetWidth method (partially fixes #26)
- fixed controls not refreshing correctly when they are initialized with a boolean "false" on the disabled property (#35, thanks Randactyl)
- removed height constraint on the description control (#36, thanks KuroiLight)
- added "isExtraWide" property to editboxes, allowing them to utilize more space (#37, thanks KuroiLight)
- added "decimals" property to sliders to allow rounding values to x decimals (#38, implements #21, thanks KuroiLight)
- added mousewheel support for sliders (#39, implements #30, thanks KuroiLight)

2.0 r18
- major overhaul of the addon menu style (thanks votan & merlight)
- NOTE: the menu is now a bit wider than before, if you created custom elements you might need to update them accordingly
- added search box to addon list (thanks votan & merlight)
- new icon picker widget
- removed micro freeze when opening a menu with many options for the first time
- changed tooltip property to accept functions that return a string (thanks Ayantir)
- changed the label on the defaults button and menu to avoid a grammar mistake in the french localization (thanks Ayantir)
- updated LibStub to r3 (support for '.' in minor version string, e.g. "17.5")

2.0 r17
- updated for changes in 100011
- fixed OpenToPanel function
- fixed possible error with combobox names
- half width control no longer have a fixed height and instead scale automatically now
- changed controls to no longer use top level windows
- fixed problems with the loading order and added warning if an old version gets initialized first
A big thank you to everyone who helped making these changes, especially votan, merlight and Garkin!

2.0 r16
- updated for changes in 100010
- thanks to Garkin for alerting me of changes needed and for testing on the test server
- Spanish support added, translation provided by Luisen75 for their Spanish project

2.0 r14
- fixed bug where the LAM-RefreshPanel callback was being registered with CALLBACK_MANAGER multiple times
- fixed highlighting of entries in the game Settings menu (Addon Settings now properly highlights and other entries go back to normal)

2.0 r13
- one last bug ran out from anunder the dresser - I smashed it hopefully!

2.0 r12
- fix one bug another shows up...

2.0 r11
- don't overwrite widgets list if table already exists (in case an external lib or addon registers a new widget type)
- headers, descriptions, submenus and custom widgets now have the ability to update their text when the panel and other controls refresh (simply change the name/text in the controlData table)
- custom controls now have the ability to refresh with other controls and your panel - there is a new optional field in the data table called refreshFunc (when the panel refreshes, this function will be called)

2.0 r10
- fixed display of warning icon for dropdown controls
- update LibStub.lua

2.0 r9
- added Russian locale support for RuESO project
- fixed anchoring issue with addon list (addon names are now properly in the scroll frame, so the few of you with tons installed should have no issue any longer)
- added ability to close submenus from the bottom of the submenu (there is a small strip along the bottom of the submenu that is clickable)
- edited each control to better support custom-created UIs via LAM and the parent passed through to the create functions

2.0 r8
- changed border texture around panel and addon list
- expanded maximum size of submenus from 1500 to 2500

2.0 r7
- shortened game menu entry for French and German localizations (so the text doesn't get cut off)
- fixed checkbox label coloring bug (when a checkbox that is set to "off" is re-enabled by another setting)
- fixed multi-line editbox bug (where text didn't display)
- added mousewheel scrolling for multi-line editboxes

2.0 r6
- added "LAM-PanelControlsCreated" callback when you panel has been shown for the first time and your controls have now been created
- fixed duplicate Addon Settings panels when you have a newer version of LAM overwriting an older version
- finished localizing stuff that wasn't localized yet
- added "sort" field to dropdown control

2.0 r5
- fix RefreshPanel function so that all controls now update
- add RefreshPanel call to ForceDefaults function

2.0 r4
- fix for me being an idiot. Sorry guys ><

2.0 r3
- fixed checkboxes making a sound when just refreshing
- fixed error when the lib is loaded standalone, but no addons are registered with it
- fixed error when LAM updates itself to a newer version (won't try to create two of the same frame)

2.0 r2
- LAM-2.0 is now released! See http://www.esoui.com/portal.php?&id=5&pageid=10 for a list of differences between LAM1 and LAM2, as well as a guide for usage and the library's docs

-----------------
1.0 r8
- updated APIVersion to 100004
- changed submenu so scroll bar doesn't overlap contents
- submenu should hopefully no longer occasionally show up behind the options panel

1.0 r7
- the defaults button now properly hides for each panel (Note: the keybind still works, I can't seem to get rid of that, but at least the prompt is hidden now)
- LAM now supports sub menus! See the description page for docs on usage

1.0 r6
- copy/paste fail when changing the name of an arg. Description titles will no longer hide from you.

1.0 r5
- exposed the widgets created via return

1.0 r4
-new widget: Description

1.0 r3
-fixed error with color picker in new patch

1.0 r2
-fixed bug when more than one addon panel is created
Archived Files (24)
File Name
Version
Size
Uploader
Date
2.0 r25
45kB
sirinsidiator
09/29/17 12:28 PM
2.0 r24
45kB
sirinsidiator
07/14/17 01:00 PM
2.0 r23
42kB
sirinsidiator
10/30/16 10:00 AM
2.0 r22
39kB
sirinsidiator
08/06/16 07:42 AM
2.0 r21
38kB
sirinsidiator
07/17/16 11:04 AM
2.0 r20
41kB
sirinsidiator
03/26/16 10:45 AM
2.0 r19
37kB
sirinsidiator
02/24/16 12:24 PM
2.0 r18
36kB
sirinsidiator
06/14/15 01:12 PM
2.0 r17
30kB
sirinsidiator
02/22/15 11:09 AM
2.0 r16
27kB
Seerah
11/02/14 02:03 PM
2.0 r14
26kB
Seerah
07/27/14 10:17 PM
2.0 r13
26kB
Seerah
07/20/14 09:35 PM
2.0 r12
26kB
Seerah
07/20/14 07:55 PM
2.0 r11
26kB
Seerah
07/19/14 02:49 PM
2.0 r10
25kB
Seerah
07/13/14 09:18 PM
2.0 r9
25kB
Seerah
07/05/14 06:55 PM
2.0 r8
25kB
Seerah
06/22/14 09:47 PM
2.0 r7
25kB
Seerah
06/15/14 05:17 PM
2.0 r6
25kB
Seerah
06/13/14 11:28 PM
2.0 r5
25kB
Seerah
06/12/14 10:32 PM
2.0 r4
25kB
Seerah
06/11/14 08:56 PM
2.0 r3
25kB
Seerah
06/11/14 07:49 PM
2.0 r2
24kB
Seerah
06/10/14 10:06 PM
1.0 r8
6kB
Seerah
05/24/14 10:01 PM


Post A Reply Comment Options
Unread 02/08/19, 09:36 AM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1177
File comments: 704
Uploads: 28
Originally Posted by Rhyono
Will the next version no longer rely on LibStub? Many addons are only requiring LibStub for LAM usage at this point.
Changing LAM to no longer use LibStub would require every addon that depends on it to be changed, since it would no longer be accessed via LibStub("LibAddonMenu-2.0"). Not something I'll do on such short notice and without thinking about it very hard first.
__________________
>siri.exe MyAddon
Does your addon work? [y/n] n
There is a typo in there.
Report comment to moderator  
Reply With Quote
Unread 02/08/19, 09:23 AM  
Rhyono
AddOn Author - Click to view AddOns

Forum posts: 447
File comments: 836
Uploads: 18
Will the next version no longer rely on LibStub? Many addons are only requiring LibStub for LAM usage at this point.
Report comment to moderator  
Reply With Quote
Unread 02/06/19, 05:09 PM  
Drakanwulf
 
Drakanwulf's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 45
Uploads: 3
Originally Posted by Baertram
Correct, AddOnVersion > ApiVersion as AddOnVersion can be different with the same api. If the game should check both in combination you need to report this probably to ZOs.

I'd say: The AddOnVersion alone is enough as you'll update it with, or w/o an ApiVersion.

For the apiversion: just enable this annoying checkbox and all is OK. Addons will work if they work.
AddOnVersion will be checked to load the newest files.
If some files are not up 2 date: too bad, but happens. Addons still work.

Originally Posted by Drakanwulf
Originally Posted by sirinsidiator
What you describe is not a bug in the game. When you have duplicate addons in your folder and change ANYTHING in ANY file that is loaded by the game, you need to increment the AddOnVersion. Otherwise you have two different versions of the addon code with the same version number. The APIVersion is not a tie breaker - it is completely unrelated to the addon version. In your case the game simply cannot tell which one is version it should load, so it picks the one it sees last. If you wanted it to pick the one you adjusted, you'd have to change the AddOnVersion to at least 27.

Aside from that, LAM is not outdated. It works as fine as it did 3 game updates ago and I see no reason to update it without having any real changes in the code, just so you don't have to check a checkbox that everyone is already checking. You are literally the only one to complain about this in the past few years, so it is very obviously not an issue for the playerbase. In WOW the same checkbox existed for more than 10 years and it is also not an issue. They even describe in their wikis and addon guides that you have to make sure that the "Allow outdated addons" checkbox is checked. Maybe something we should do for ESO too.

That said, since there is a merge for a new feature pending, I will do an update for Wrathstone which will of course also include the new APIVersion.
First, the Combat Metrics add-on is not one of my add-ons.
Second, LAM-2.0 is not one of my add-ons.
Ergo, I cannot change either one of these add-ons in the ESOUI add-ons database because I am not its author. All I can do is to report their inconsistencies.

Third, I say it is a bug because I corrected the APIVersion: values in the standalone LAM-2.0 r26 add-on for NA Live but the game still refused to load ANY copy of LAM-2.0, embedded or otherwise, from any other add-on after it had found and marked r26 as bad and OOD. Not even the standalone r26 which had the correct APIVersion: values in its manifest.

The refusal to load any LAM-2.0 indicates to me, that the current game code is probably comparing AddOnVersion: values BEFORE it checks for valid APIVersion: values; therefore, the game cannot replace a bad OOD setting with a good setting whenever an add-on's AddOnVersion: values are equal (r26). This bug then prevents a standalone add-on from overriding the APIVersion: values for its embedded and OOD cousins which significantly complicates the add-on loading process. Unless, of course, you choose to turn on the OOD checkbox which turns choosing add-ons by AddOnVersion: value into a randomized crap-shoot.

Last, thanks for updating LAM-2.0. It is appreciated despite our different opinions about game bugs.
Thanks for your reply, Baertram. While you said the same things, the way you said them helped me see that using the OOD checkbox and the AddOnVersion: directive as workarounds to force the game to load an add-on version as the preferred add-on and to ignore other add-on versions, stand alone or embedded, should work and should work consistently.

My only quibble with this solution is that it would work reliably only for my add-ons and may or may not work for anyone else's add-ons depending on how often their authors update manifests. OTOH, if ZOS opts to change their APIVersion versus AddOnVersion testing logic, the issue becomes moot and we users have to change only the APIVersion values in our manifests.

I am going to take your suggestion and submit the two forum discussions (your Combat Reticle and this one) to ZOS in a Developers Forum /bug report along with specific repair suggestions for the oversight. My report will probably get rejected but I will have the satisfaction of knowing that I tried despite the "windmills" placed along the way.
__________________
Drakanwulf, the dire wolf that hunts dragons!
Report comment to moderator  
Reply With Quote
Unread 02/05/19, 05:36 PM  
Baertram
 
Baertram's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1915
File comments: 2090
Uploads: 52
Correct, AddOnVersion > ApiVersion as AddOnVersion can be different with the same api. If the game should check both in combination you need to report this probably to ZOs.

I'd say: The AddOnVersion alone is enough as you'll update it with, or w/o an ApiVersion.

For the apiversion: just enable this annoying checkbox and all is OK. Addons will work if they work.
AddOnVersion will be checked to load the newest files.
If some files are not up 2 date: too bad, but happens. Addons still work.

Originally Posted by Drakanwulf
Originally Posted by sirinsidiator
What you describe is not a bug in the game. When you have duplicate addons in your folder and change ANYTHING in ANY file that is loaded by the game, you need to increment the AddOnVersion. Otherwise you have two different versions of the addon code with the same version number. The APIVersion is not a tie breaker - it is completely unrelated to the addon version. In your case the game simply cannot tell which one is version it should load, so it picks the one it sees last. If you wanted it to pick the one you adjusted, you'd have to change the AddOnVersion to at least 27.

Aside from that, LAM is not outdated. It works as fine as it did 3 game updates ago and I see no reason to update it without having any real changes in the code, just so you don't have to check a checkbox that everyone is already checking. You are literally the only one to complain about this in the past few years, so it is very obviously not an issue for the playerbase. In WOW the same checkbox existed for more than 10 years and it is also not an issue. They even describe in their wikis and addon guides that you have to make sure that the "Allow outdated addons" checkbox is checked. Maybe something we should do for ESO too.

That said, since there is a merge for a new feature pending, I will do an update for Wrathstone which will of course also include the new APIVersion.
First, the Combat Metrics add-on is not one of my add-ons.
Second, LAM-2.0 is not one of my add-ons.
Ergo, I cannot change either one of these add-ons in the ESOUI add-ons database because I am not its author. All I can do is to report their inconsistencies.

Third, I say it is a bug because I corrected the APIVersion: values in the standalone LAM-2.0 r26 add-on for NA Live but the game still refused to load ANY copy of LAM-2.0, embedded or otherwise, from any other add-on after it had found and marked r26 as bad and OOD. Not even the standalone r26 which had the correct APIVersion: values in its manifest.

The refusal to load any LAM-2.0 indicates to me, that the current game code is probably comparing AddOnVersion: values BEFORE it checks for valid APIVersion: values; therefore, the game cannot replace a bad OOD setting with a good setting whenever an add-on's AddOnVersion: values are equal (r26). This bug then prevents a standalone add-on from overriding the APIVersion: values for its embedded and OOD cousins which significantly complicates the add-on loading process. Unless, of course, you choose to turn on the OOD checkbox which turns choosing add-ons by AddOnVersion: value into a randomized crap-shoot.

Last, thanks for updating LAM-2.0. It is appreciated despite our different opinions about game bugs.
Last edited by Baertram : 02/06/19 at 03:36 PM.
Report comment to moderator  
Reply With Quote
Unread 02/05/19, 05:28 PM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1177
File comments: 704
Uploads: 28
It is neither an inconsistency nor a bug. This is the intended behavior.

I repeat once again: The manifest file too is part of what the AddOnVersion is describing. When you change the manifest, you have to increment the version, otherwise you have two variations of the "code" with the same version number. The APIVersion directive in the manifest is not related to the AddOnVersion, even when both contain "version" in their name. They are completely different things with different purposes and different code checking them for different reasons.

Activating the OOD checkbox doesn't do anything more than disabling the check for the APIVersion directive. It is like when you manually replace the APIVersion in the manifest with the current one and follows the same set of rules. There is no "randomized crap-shoot" or anything of the likes happening. It just doesn't seem like you are trying to understand these rules and instead rather post walls of text with incorrect information everywhere.

And with that I kindly ask you to stop pestering me and others about it. It is honestly becoming very annoying.
__________________
>siri.exe MyAddon
Does your addon work? [y/n] n
There is a typo in there.
Report comment to moderator  
Reply With Quote
Unread 02/05/19, 04:04 PM  
Drakanwulf
 
Drakanwulf's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 45
Uploads: 3
Originally Posted by sirinsidiator
What you describe is not a bug in the game. When you have duplicate addons in your folder and change ANYTHING in ANY file that is loaded by the game, you need to increment the AddOnVersion. Otherwise you have two different versions of the addon code with the same version number. The APIVersion is not a tie breaker - it is completely unrelated to the addon version. In your case the game simply cannot tell which one is version it should load, so it picks the one it sees last. If you wanted it to pick the one you adjusted, you'd have to change the AddOnVersion to at least 27.

Aside from that, LAM is not outdated. It works as fine as it did 3 game updates ago and I see no reason to update it without having any real changes in the code, just so you don't have to check a checkbox that everyone is already checking. You are literally the only one to complain about this in the past few years, so it is very obviously not an issue for the playerbase. In WOW the same checkbox existed for more than 10 years and it is also not an issue. They even describe in their wikis and addon guides that you have to make sure that the "Allow outdated addons" checkbox is checked. Maybe something we should do for ESO too.

That said, since there is a merge for a new feature pending, I will do an update for Wrathstone which will of course also include the new APIVersion.
First, the Combat Metrics add-on is not one of my add-ons.
Second, LAM-2.0 is not one of my add-ons.
Ergo, I cannot change either one of these add-ons in the ESOUI add-ons database because I am not its author. All I can do is to report their inconsistencies.

Third, I say it is a bug because I corrected the APIVersion: values in the standalone LAM-2.0 r26 add-on for NA Live but the game still refused to load ANY copy of LAM-2.0, embedded or otherwise, from any other add-on after it had found and marked r26 as bad and OOD. Not even the standalone r26 which had the correct APIVersion: values in its manifest.

The refusal to load any LAM-2.0 indicates to me, that the current game code is probably comparing AddOnVersion: values BEFORE it checks for valid APIVersion: values; therefore, the game cannot replace a bad OOD setting with a good setting whenever an add-on's AddOnVersion: values are equal (r26). This bug then prevents a standalone add-on from overriding the APIVersion: values for its embedded and OOD cousins which significantly complicates the add-on loading process. Unless, of course, you choose to turn on the OOD checkbox which turns choosing add-ons by AddOnVersion: value into a randomized crap-shoot.

Last, thanks for updating LAM-2.0. It is appreciated despite our different opinions about game bugs.
__________________
Drakanwulf, the dire wolf that hunts dragons!
Report comment to moderator  
Reply With Quote
Unread 02/05/19, 06:13 AM  
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view AddOns

Forum posts: 1177
File comments: 704
Uploads: 28
What you describe is not a bug in the game. When you have duplicate addons in your folder and change ANYTHING in ANY file that is loaded by the game, you need to increment the AddOnVersion. Otherwise you have two different versions of the addon code with the same version number. The APIVersion is not a tie breaker - it is completely unrelated to the addon version. In your case the game simply cannot tell which one is version it should load, so it picks the one it sees last. If you wanted it to pick the one you adjusted, you'd have to change the AddOnVersion to at least 27.

Aside from that, LAM is not outdated. It works as fine as it did 3 game updates ago and I see no reason to update it without having any real changes in the code, just so you don't have to check a checkbox that everyone is already checking. You are literally the only one to complain about this in the past few years, so it is very obviously not an issue for the playerbase. In WOW the same checkbox existed for more than 10 years and it is also not an issue. They even describe in their wikis and addon guides that you have to make sure that the "Allow outdated addons" checkbox is checked. Maybe something we should do for ESO too.

That said, since there is a merge for a new feature pending, I will do an update for Wrathstone which will of course also include the new APIVersion.
__________________
>siri.exe MyAddon
Does your addon work? [y/n] n
There is a typo in there.
Report comment to moderator  
Reply With Quote
Unread 02/04/19, 10:40 PM  
Drakanwulf
 
Drakanwulf's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 45
Uploads: 3
Re: LAM-2.0 r26 Packaging is woefully out-of-date!

Further research has revealed a sneaky game bug having to do with the interaction between the APIVersion: and AddOnVersion: directives. I found it by accident while trying to determine why LAM-2.0 still would not load correctly after I had made the necessary packaging changes to the manifest.txt file to bring its APIVersion: and file loading directives up to standalone and 100025 standards. The changes are:

Code:
## APIVersion: 100025 100026
## Title: LibAddonMenu-2.0
## Version: 2.0 r26
## AddOnVersion: 26
## Author: Seerah, sirinsidiator, et al.
## Contributors: votan, merlight, Garkin, Randactyl, KuroiLight, silvereyes333, Baertram, kyoma
## Description: A library to aid in the creation of option panels.
## DependsOn: LibStub
##
## This Add-on is not created by, affiliated with or sponsored by ZeniMax Media Inc. or its affiliates. 
## The Elder Scrolls® and related logos are registered trademarks or trademarks of ZeniMax Media Inc. in the United States and/or other countries. 
## All rights reserved
##
## You can read the full terms at https://account.elderscrollsonline.com/add-on-terms

LibAddonMenu-2.0\LibAddonMenu-2.0.lua

LibAddonMenu-2.0\controls\panel.lua
LibAddonMenu-2.0\controls\submenu.lua
LibAddonMenu-2.0\controls\button.lua
LibAddonMenu-2.0\controls\checkbox.lua
LibAddonMenu-2.0\controls\colorpicker.lua
LibAddonMenu-2.0\controls\custom.lua
LibAddonMenu-2.0\controls\description.lua
LibAddonMenu-2.0\controls\dropdown.lua
LibAddonMenu-2.0\controls\editbox.lua
LibAddonMenu-2.0\controls\header.lua
LibAddonMenu-2.0\controls\slider.lua
LibAddonMenu-2.0\controls\texture.lua
LibAddonMenu-2.0\controls\iconpicker.lua
LibAddonMenu-2.0\controls\divider.lua
These changes should have worked in Live but they did not. Everything that depended on LAM-2.0 refused to load because the game would not load LAM-2.0; hence, dependency errors all over the place. Turns out, there is a game bug in 100025 that prevents the correct Version: of LAM-2.0 from loading. You can duplicate this problem by loading and/or activating these add-ons and libraries:

Combat Metrics
Combat Reticle (Baertram's latest modification)
LibStub r5 (standalone)
LibAddonMenu-2.0 r26 (standalone)

If you have your OOD checkbox marked, everything will work, I believe, without modifications but, as soon as you turn the OOD checkbox off, bad things should begin to happen as soon as you execute a /reloadui command. They will continue to happen even after you correct the LibStub and LAM-2.0 manifests; the game will not load LAM-2.0 no matter what you do. I found the reason why by accident when I turned my OOD checkbox on and everything loaded just fine but returned to dependency failures as soon as I turned the OOD checkbox off. And this is why...

There is an OOD LAM-2.0 folder embedded within the Combat Metrics folder that is referenced as a dependency by its manifest file. The game will not load this LAM-2.0 file because its APIVersion: is 100023; therefore, it is a bad, OOD addon but, and here is the kicker in this scenario, the AddOnVersion: in the manifest for this file says that its value is 26! Bingo! Same, latest, AddOnVersion: value for both the bad and good files.

It appears that the game will not load any successive LAM-20 files with the same AddOnVersion: value because it has already marked the first one as bad and OOD; not even when the files have a corrected APIVersion: value (100025) in their manifests! The wiki says that the game randomly picks one of an add-on set whenever multiple copies (AddOnVersion: value) exist. I expect this is what happened here but I am guessing.

You can prove this for yourselves by deleting the LAM-2.0 folder from the Combat Metrics folder and by adding "LibAddonMenu-2.0" to its DependsOn: directive. Turn the OOD checkbox off and on between /reloadui commands to watch everything work exactly as it should.

My thanks to Baertram for his asking me to fix the problem rather than whinging about it. Baertram, I would if I could but I don't work for ZOS and I am not the author of LAM-2.0. However, I expect there have been, are, or will be similar occurrences whenever an OOD add-on contains the same AddOnVersion: values in its manifest.
__________________
Drakanwulf, the dire wolf that hunts dragons!
Report comment to moderator  
Reply With Quote
Unread 02/04/19, 03:51 PM  
Drakanwulf
 
Drakanwulf's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 45
Uploads: 3
LAM-2.0 r26 Packaging is woefully out-of-date!

When attempting to test Baertram's upgrades to Combat Reticle, I found that the upgrade would not load because there was no LAM 2.0 for it to use, so I downloaded and installed the latest standalone LibStub and LAM 2.0 libraries from ESOUI.

I should not have downloaded LAM 2.0 because it has not been updated since 100023; it has a naked, out-of-date (r4) LibStub embedded within it; and it has no DependsOn: directive to instruct the game to find and use the latest LibStub.

If you would open the latest LAM folder in ESOUI and check the manifest.txt file, you can verify that my statements are accurate. Then, if you would check the rest of the LAM folder's contents. I believe you will find that the embedded, naked, LibStub.lua file is an out-of-date, r4, version, rather than the current, stand alone, r5, version that exists in ESOUI.

I would appreciate it very much if the author or a designated person would upgrade the LAM 2.0 r26 packaging to be compatible with standalone requirements and APIs 100025 and 100026.

If I fix LAM for myself, my fixes do not get back to ESOUI because I am not the author and because I am not the author, my changes could work for me but not for everyone else who plays the game.

Thank you for your consideration,
__________________
Drakanwulf, the dire wolf that hunts dragons!
Last edited by Drakanwulf : 02/04/19 at 09:44 PM.
Report comment to moderator  
Reply With Quote
Unread 12/28/18, 10:24 PM  
MoonDancer

Forum posts: 0
File comments: 19
Uploads: 0
Update Status?

FCO Item Saver is apparently still dependent on this library, so I'd like to know if you or your group project folks are going to be updating this for Murkmire, and/or future patches?
Report comment to moderator  
Reply With Quote
Unread 10/05/18, 06:08 PM  
Phinix
 
Phinix's Avatar
AddOn Author - Click to view AddOns

Forum posts: 142
File comments: 1015
Uploads: 28
Force panel widgets to update...

Greetings,

I have a somewhat technical request if anyone might be able to help. I have a panel with a variety of controls (a couple dropdown menus, a couple buttons, and a slider). What I want is to update the display of these widgets when I do something elsewhere in code...

EDIT:

The problem ended up being unrelated. Setting a local variable 'myPanel' to the return value from RegisterAddonPanel and then calling CALLBACK_MANAGER:FireCallbacks("LAM-RefreshPanel", myPanel) at the point in my code I want to refresh does in fact appear to be refreshing all widgets.
Last edited by Phinix : 10/06/18 at 03:59 AM.
Report comment to moderator  
Reply With Quote
Unread 09/15/18, 04:35 PM  
Hibiki54

Forum posts: 0
File comments: 16
Uploads: 0
You need to change the tool bar and space out some of the icons.
Report comment to moderator  
Reply With Quote
Unread 09/05/18, 05:33 PM  
SilverWF
 
SilverWF's Avatar
AddOn Author - Click to view AddOns

Forum posts: 49
File comments: 331
Uploads: 2
Exclamation Re: Addon Marked as Out-of-Date

Probably(!) you have some other addon with LibAddonMenu in the package, that has other (bigger) Version, so it overwrites the "right" one.

Originally Posted by F-Lambda
No matter what I do, this addon is marked as out-of-date by ESO, which would of course be potentially problematic if the "load out-of-date addons" option is unchecked. Anyone have any idea what I'm doing wrong? Here's the header of the manifest:
Code:
## APIVersion:  100024
## Title: LibAddonMenu-2.0
## Version: 2.0 r26
## Author: Seerah, sirinsidiator, et al.
## Contributors: votan, merlight, Garkin, Randactyl, KuroiLight, silvereyes333, Baertram, kyoma
## Description: A library to aid in the creation of option panels.

Edit: Okay, this is really weird. I moved every addon other than LAM out of the addons folder, then deleted every file in the LAM folder other than the manifest. Then I stripped the manifest down to just two lines:
Code:
## APIVersion: 100024
## Title: LibAddonMenu-2.0
It still says it's out of date....
__________________
A long out of game time - just has no wish to play ESO. | ESO PC EU: @SilverWF
Addons: Advanced Autoloot Renewed, BeggingTheGear, Wykkyd Toolbar Updated
Report comment to moderator  
Reply With Quote
Unread 08/15/18, 03:26 PM  
F-Lambda

Forum posts: 1
File comments: 39
Uploads: 0
Addon Marked as Out-of-Date

No matter what I do, this addon is marked as out-of-date by ESO, which would of course be potentially problematic if the "load out-of-date addons" option is unchecked. Anyone have any idea what I'm doing wrong? Here's the header of the manifest:
Code:
## APIVersion:  100024
## Title: LibAddonMenu-2.0
## Version: 2.0 r26
## Author: Seerah, sirinsidiator, et al.
## Contributors: votan, merlight, Garkin, Randactyl, KuroiLight, silvereyes333, Baertram, kyoma
## Description: A library to aid in the creation of option panels.

Edit: Okay, this is really weird. I moved every addon other than LAM out of the addons folder, then deleted every file in the LAM folder other than the manifest. Then I stripped the manifest down to just two lines:
Code:
## APIVersion: 100024
## Title: LibAddonMenu-2.0
It still says it's out of date....
Last edited by F-Lambda : 08/15/18 at 05:48 PM.
Report comment to moderator  
Reply With Quote
Unread 07/24/18, 01:53 PM  
Gandalf
 
Gandalf's Avatar

Forum posts: 17
File comments: 7
Uploads: 0
Re: colorpicker in gamepad mode

Originally Posted by Gandalf
When enabling gamepad mode using colorpicker won't work:

Code:
EsoUI/Libraries/ZO_Dialog/Gamepad/ZO_GenericDialog_Gamepad.lua:280: attempt to index a nil value
stack traceback:
	EsoUI/Libraries/ZO_Dialog/Gamepad/ZO_GenericDialog_Gamepad.lua:280: in function 'ZO_GenericGamepadDialog_SetupDirectionalInput'
	EsoUI/Libraries/ZO_Dialog/Gamepad/ZO_GenericDialog_Gamepad.lua:521: in function 'ZO_GenericGamepadDialog_Show'
	EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:739: in function 'ZO_Dialogs_ShowDialog'
	(tail call): ?
	EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:328: in function 'ZO_Dialogs_ShowGamepadDialog'
	EsoUI/Libraries/ZO_Dialog/ZO_Dialog.lua:265: in function 'ZO_Dialogs_ShowPlatformDialog'
	EsoUI/Common/ZO_ColorPicker/ZO_ColorPicker_Shared.lua:136: in function 'ZO_ColorPicker_Shared:Show'
	user:/AddOns/LuiExtended/libs/LibAddonMenu-2.0/controls/colorpicker.lua:82: in function '(anonymous)'
Neverless this is my favorite addon!
Well, ZM is using a dedicated class while in gamepad mode. A solution may look like :
Code:
if IsInGamepadPreferredMode() then
    COLOR_PICKER_GAMEPAD:Show(ColorPickerCallback, r, g, b, a, LAM.util.GetStringFromValue(colorpickerData.name))
else
    COLOR_PICKER:Show(ColorPickerCallback, r, g, b, a, LAM.util.GetStringFromValue(colorpickerData.name))
end
Cheers,
Gandalf
Last edited by Gandalf : 07/24/18 at 03:53 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: