Quantcast
Download
(96 Kb)
Download
Updated: 06/18/22 04:36 PM
Compatibility:
High Isle (8.0.0)
Ascending Tide (7.3.5)
Deadlands (7.2.5)
Waking Flame (7.1.5)
Blackwood (7.0.5)
Flames of Ambition (6.3.5)
Markarth (6.2.5)
Stonethorn (6.1.5)
Greymoor (6.0.5)
Updated:06/18/22 04:36 PM
Created:05/04/19 08:28 AM
Monthly downloads:69,368
Total downloads:1,059,914
Favorites:476
MD5:
8.0.0
LibFilters-3.0  Popular! (More than 5000 hits)
Version: 3.0r3.5
by: Baertram, Randactyl
LibFilters-3.0
This version of LibFilters does NOT need any dependency to other libraries anymore (e.g. no LibStub needed).
You simply reference it by using the global Variable
Code:
LibFilters3
Other libraries
This libray optionally supports the use of LibDebugLogger to log messages to the addon log instead of the normal chat.


Welcome to LibFilters-3.0!

The goal of LibFilters is to provide an easy interface for applying custom sorting rules to different lists of items found in the game. At the moment, you can filter the inventory, bank withdrawal, bank deposits, guild bank withdrawal, guild bank deposits, vendor buying, vendor selling, buyback, repair, guild store selling, mail sending, trading, smithing (refinement, deconstruction, improvement, research), alchemy creation, enchanting creation, enchanting extraction, fence selling, fence laundering, the craftbag, and the quickslot inventory.

Please check the LibFilters WIKI for examples, API functions and usage instructions:
LibFilters WIKI


LibFilters 3 r3 was totally recoded and now supports Gamepad mode too!
A very special thanks to IsJustaGhost for a lot of the Gamepad code, ideas and testing UI + help!


To use LibFilters in your addon, you simply assign a reference to it's global variable LibFilters3.
Yo do NOT need any call to LibStub for it anymore. In your manifest you need to add LibFilters-3.0 to the ##DependsOn tag:
Code:
##DependsOn: LibFilters-3.0>=330
In your addon, you need to invoke LibFilters with the global LibFilters3 variable and then initialize LibFilters:

Lua Code:
  1. local libFilters = LibFilters3
  2. --!!! Add LibFilters-3.0 to your ## DependsOn: or ## OptionalDependsOn: to assure the lib is loaded before your addon's EVENT_ADD_ON_LOADED fires!!!
  3. libFilters:InitializeLibFilters() -- Must be called ONCE at/After EVENT_ADD_ON_LOADED of your addon to make sure the LibFilters functions exists and everything is ready! Without calling this you won't see any filters applied/working!

This is the list of available filterType constants:
Code:
LF_INVENTORY                = 1
LF_BANK_WITHDRAW            = 2
LF_BANK_DEPOSIT             = 3
LF_GUILDBANK_WITHDRAW       = 4
LF_GUILDBANK_DEPOSIT        = 5
LF_VENDOR_BUY               = 6
LF_VENDOR_SELL              = 7
LF_VENDOR_BUYBACK           = 8
LF_VENDOR_REPAIR            = 9
LF_GUILDSTORE_BROWSE        = 10
LF_GUILDSTORE_SELL          = 11
LF_MAIL_SEND                = 12
LF_TRADE                    = 13
LF_SMITHING_REFINE          = 14
LF_SMITHING_CREATION        = 15
LF_SMITHING_DECONSTRUCT     = 16
LF_SMITHING_IMPROVEMENT     = 17
LF_SMITHING_RESEARCH        = 18
LF_ALCHEMY_CREATION         = 19
LF_ENCHANTING_CREATION      = 20
LF_ENCHANTING_EXTRACTION    = 21
LF_PROVISIONING_COOK        = 22
LF_PROVISIONING_BREW        = 23
LF_FENCE_SELL               = 24
LF_FENCE_LAUNDER            = 25
LF_CRAFTBAG                 = 26
LF_QUICKSLOT                = 27
LF_RETRAIT                  = 28
LF_HOUSE_BANK_WITHDRAW      = 29
LF_HOUSE_BANK_DEPOSIT       = 30
LF_JEWELRY_REFINE           = 31
LF_JEWELRY_CREATION         = 32
LF_JEWELRY_DECONSTRUCT      = 33
LF_JEWELRY_IMPROVEMENT      = 34
LF_JEWELRY_RESEARCH         = 35
LF_SMITHING_RESEARCH_DIALOG = 36
LF_JEWELRY_RESEARCH_DIALOG  = 37
LF_INVENTORY_QUEST = 38
LF_INVENTORY_COMPANION = 39

LF_FILTER_MIN                = LF_INVENTORY
LF_FILTER_MAX               = LF_INVENTORY_COMPANION
Universal Deconstruction is a special case as it does not provide any dedicated LF_UNIVERSAL_DECONSTRUCT filterType but reuses LF_SMIHING_DECONSTRUCT, LF_JEWELRY_DECONSTRUCT and LF_ENCHANTING_EXTRACTION at the UniversalDecon UI, depending on the selected UI Tab!
You need to register/unregister the according filterTypes for it.
As of 2022-03-12 the callbacks for universal deconstruction panel open/close, and the gamepad mode filters & callbacks for universal deconstruct, are not implmeneted yet.



The filterTypes will pass information from the bag & slotIndex, or the inventorySlot, to a filterCallback function registered to that filterType.
For the slots, these are the keys available in the passed table:

Code:
inventory slot: age, bagId, condition, dataEntry, equipType, filterData,
  iconFile, inventory, isJunk, isPlayerLocked, itemInstanceId, itemType,
  launderPrice, locked, meetsUsageRequirement, name, quality, rawName,
  requiredLevel, searchData, sellPrice, slotControl, slotIndex,
  specializedItemType, stackCount, stackLaunderPrice, statValue, stolen,
  uniqueId

store slot: currencyQuantity1, currencyQuantity2, currencyType1,
  currencyType2, dataEntry, entryType, filterData, icon, isUnique,
  meetsRequirementsToBuy, meetsRequirementsToEquip, name, price, quality,
  questNameColor, sellPrice, slotIndex, stack, stackBuyPrice,
  stackBuyPriceCurrency1, stackBuyPriceCurrency2, statValue

buyback slot: icon, meetsRequirements, name, price, quality, slotIndex,
  stack, stackBuyPrice

repair slot: bagId, condition, dataEntry, icon, name, quality, repairCost,
  slotIndex, stackCount

quickslot slot: age, bagId, filterData, iconFile, locked,
  meetsUsageRequirement, name, quality, sellPrice, slotIndex, slotType,
  stackCount, stackSellPrice, stolen

Here is the mapping which filterId constant LF* uses which type of filter function: inventorySlot or bagdId & slotIndex
Example filter functions:
Lua Code:
  1. local function FilterSavedItemsForSlot(inventorySlot)
  2.   return true -- show the item in the list / false = hide item
  3. end
  4.  
  5. local function FilterSavedItemsForBagIdAndSlotIndex(bagId, slotIndex)
  6.   return true -- show the item in the list / false = hide item
  7. end

Code:
--Filter function with inventorySlot
All LF_ except the ones named below, e.g. LF_INVENTORY, LF_CRAFTBAG, LF_VENDOR_SELL

--Filter function with bagId and slotIndex (most of them are crafting related ones)
[LF_SMITHING_REFINE]                        = FilterSavedItemsForBagIdAndSlotIndex,
[LF_SMITHING_DECONSTRUCT]                   = FilterSavedItemsForBagIdAndSlotIndex,
[LF_SMITHING_IMPROVEMENT]                   = FilterSavedItemsForBagIdAndSlotIndex,
[LF_SMITHING_RESEARCH]                      = FilterSavedItemsForBagIdAndSlotIndex,
[LF_SMITHING_RESEARCH_DIALOG]               = FilterSavedItemsForBagIdAndSlotIndex,
[LF_JEWELRY_REFINE]                         = FilterSavedItemsForBagIdAndSlotIndex,
[LF_JEWELRY_DECONSTRUCT]                    = FilterSavedItemsForBagIdAndSlotIndex,
[LF_JEWELRY_IMPROVEMENT]                    = FilterSavedItemsForBagIdAndSlotIndex,
[LF_JEWELRY_RESEARCH]                       = FilterSavedItemsForBagIdAndSlotIndex,
[LF_JEWELRY_RESEARCH_DIALOG]                = FilterSavedItemsForBagIdAndSlotIndex,
[LF_ENCHANTING_CREATION]                    = FilterSavedItemsForBagIdAndSlotIndex,
[LF_ENCHANTING_EXTRACTION]                  = FilterSavedItemsForBagIdAndSlotIndex,
[LF_RETRAIT]                                = FilterSavedItemsForBagIdAndSlotIndex,
[LF_ALCHEMY_CREATION]                       = FilterSavedItemsForBagIdAndSlotIndex,
This library uses the inventory/fragment/dialog's attribute "additionalFilters" to register the filter callbackFunction, so it will run in addition to the original filter functions of the ZOs code (if any given, else it will add an additionalFilter attribute to the table).
It will store the filteres registered via LibFilters3:RegisterFilter internally and add the filter callback functions to the inventory.additionalFilters function, which then is called as the normal filters of the game are applied (e.g. at a refresh of the crafting table contents).
For this to work properly the UI needs to show the dependend filter panel, e.g. you cannot open the crafting table and stay at the refinement tab, but use filter functions of the desconstruction tab! At the refinement tab there are no updates to the filter tables done to include the LF_SMITHING_DECONSTRUCTION or LF_JEWELRY_DECONSTRUCTION entries of these inventorie's .additionalFilters!
You'd only have the refinement .additionalFilters (e.g. SMITHING.refinementPanel.inventory.additionalFilters).
So make sure to show the approrpiate UI in order to call the updaters like SMITHING:OnChangeFilter and apply the filter functions of LibFilters to the inventory.additionalFilters properly.


LibFilters API functions:
More API functions not listed below can be found at the Wiki (see link below).
The importants API functions of this library are:

Code:
function LibFilters3:InitializeLibFilters()
Must be called after you've assigned LibFilters-3.0 to your local variable, to start the initialization of the library, and to make it work.

function LibFilters3:GetMinFilterType()
Returns the minimum filterType available

function LibFilters3:GetMaxFilterType()
Returns the maximum filterType available

function LibFilters3:GetFilterTypes()
Returns the LibFilters LF* filterType connstants table: value = "name"

function LibFilters3:GetFilterTypeName(libFiltersFilterType)
Returns the LibFilters LF* filterType connstant's name

function LibFilters3:GetCurrentFilterTypeForInventory(inventoryType)
Returns the filterType currently affecting the provided inventoryType.

function LibFilters3:GetFilterCallback(filterTag, filterType)
filterTag is the unique string that identifies your filter. filterType is
  the provided "LF_" prefixed constants your filter was registered for.
  Returns the filterCallback registered for the provided filterTag and
  filterType; returns nil otherwise.

function LibFilters3:IsFilterRegistered(filterTag, filterType)
filterTag is the unique string that identifies your filter. filterType is
  the provided "LF_" prefixed constants your filter was registered for.
  Returns true if there is a filter registered with the provided filterTag.
  Returns false if there is not a filter registered with the provided
  filterTag. filterType is optional. If a filterType is provided, will only
  return true if a filter is registered to that filterType under the
  provided filterTag.

function LibFilters3:RegisterFilter(filterTag, filterType, filterCallback)
filterTag is a unique string to identify your filter. filterType is one of
  the provided "LF_" prefixed constants. filterCallback is a function which
  accepts either one or two arguments; this is determined by the filterType.
  filterCallback should return true if an item is to be shown.
  filterCallback should return false if an item should not be shown.

function LibFilters3:UnregisterFilter(filterTag, filterType)
filterTag is the unique string that identifies your filter. filterType the
  provided "LF_" prefixed constants your filter was registered for.
  filterType is optional. If a filterType is not provided, all filters
  registered with the provided filterTag will be unregistered.

function LibFilters3:RequestUpdate(filterType)
filterType is one of the provided "LF_" prefixed constants. Runs the updater
  appropriate for the provided filter type to pick up any filtering changes.


function LibFilters3:SetResearchLineLoopValues(fromResearchLineIndex, toResearchLineIndex, skipTable)
number fromResearchLineIndex: Start the loop here
number toResearchLineIndex: End the loop here
table skipTable: A table containing the researchLine indices to skip in the loop (theyx won't be added to the horizontal scroll list)

Test UI for the filters
If you need the test UI please uncomment (remove the ##) the entries of the test.lua and .xml files in the LibFilters-3.0.txt manifest file!
Use the slash command
Code:
/lftestfilters
to open the Test UI of LibFilters.

A description how the test UI works and how you are able to regisetr your custom filterFunction and run the filters can be found here:
LibFilters WIKI



GitHub
LibFilters 3.0 at GitHub
LibFilters 3.0 for the PTS, or "Beta version"!
[v3.0 r3.5] 2022-06-19
-removed old pre-HighIsle compatibility code
-Fixed keyboard quickslots text search at "all" and "consumables" tabs


[v3.0 r3.4] 2022-05-22
Fixed research keyboard dialog refresh & deselect nil error of items via ZO_ScrollList_SelectData (with nil data) -> ZOs function does no nil check and just tries to call the selectedCallback

[v3.0 r3.3] 2022-05-09
-Updated API
-Added PTS High Isle support
-Fixed gamepad universal deconstruction -> Missing ZOs function. Should be compatible too if ZOs adds it in the future

[v3.0 r3.2] 2022-03-16
-Fixed proper hooks into classes of ZO* instead of the objects (e.g. ZO_Enchanting instead of ENCHANTING). This should fix other addons which used similar hooks

[v3.0 r3.1] 2022-03-13
-Removed optional dependency to CraftBagExtended due to a circular dependency with AwesomeGuildStore and CBE
-Moved CBE code to event_player_activated, called once
-Commented the test.lua and xml file in the manifest txt again. If you need the test UI please uncomment the ## entries!

[v3.0 r3.0] 2022-03-12
Total recode of all code lines, helpers and updater functions
Supports Gamepad mode now! Special thanks to IsJustaGhost!!!
Provides callbacks that fire as the LF* filterTypes change.
Use the slash command /lftestfilters to show the test UI and test the default or your custom filterFunction
-Updated the WIKI with examples and API functions-


Supports Universal Deconstruction at PTS (this is a special case as it does not provide any dedicated LF_UNIVERSAL_DECONSTRUCT filterType but reuses LF_SMIHING_DECONSTRUCT, LF_JEWELRY_DECONSTRUCT and LF_ENCHANTING_EXTRACTION at the UniversalDecon UI, depending on the selected UI Tab).
-> Gamepad mode filters is not yet supported here and will be patched later! Callabcks for UniversalDecon will be added later tpo. For now please simply use ZOs callbacks fired by CALLBACK_MANAGER for e.g. UNIVERSAL_DECONSTRUCTION.deconstructionPanel.inventory "OnFilterChanged" or according gamepad variables.

[v3.0 r2.2]
-Updated API for Waking flame
-Fixed alchemy quest markers

[v3.0 r2.1]
-Updated API for Blackwood
-Fixed CraftBag filters as Blackwood will always apply the layoutData.additionalFilters to the craftbag
-Added support for the Companion inventory: LF_INVENTORY_COMPANION

[v3.0 r2.0]
-Compatible with live and PTS
-Fixed buyback window
-Added buyback window text search
-Added repair window text search
-Fixed quickslots search
-Fixed enchanting quest items checkbox
-Fixed enchanting panel detection

[v3.0 r1.9]
-Reverted back to 3.0 r1.7 as 1.8 somehow got broken in the inventory filters (not always, sometimes after opening a bank)

[v3.0 r1.8]
-Updated APIversion
-Fixed quickslots search (thanks to Scootworks)
-Fixed enchanting filterType detection, and thus also fixed the quest checkbox at enchanting creation

[v3.0 r1.7]
-Updated APIversion
-Fixed inventory filters to be compatible with ZOs vanilla inventory UI changes
-Added new filter panel LF_INVENTORY_QUEST
-Fixed constant LF_FILTER_MAX

[v3.0 r1.6]
-Updated APIversion
-Fixed new ZOs checkbox "Include banked items" at crafting panels (deconstruction, research) filtering correctly
-Added optional LibDebugLogger support
-Added API function LibFilters3:GetMinFilter()
-Added global LF_FILTER_MIN

[v3.0 r1.5]
Fixed jewelry research & jewelry research dialog filter updater names

[v3.0 r1.4]
Added: Function to filter (skip) researchLine indices at the research panel
LibFilters:SetResearchLineLoopValues(fromResearchLineIndex, toResearchLineIndex, skipTable)
number fromResearchLineIndex: Start the loop here
number toResearchLineIndex: End the loop here
table skipTable: A table containing the researchLine indices to skip in the loop (theyx won't be added to the horizontal scroll list)

[v3.0 r1.3]
Fixed/Updated: helper functions for the smithing & jewelry research panels

[v3.0 r1.2]
Fixed: Removed LibFilters2_filterType and exchanged them with LibFilters3_filterType in the inventory/layout data

[v3.0 r1.1]
-Removed optional dependency and chat message to inform about LibFilters-2.0 removal
-Fixed helper
Optional Files (0)


Archived Files (18)
File Name
Version
Size
Uploader
Date
3.0r3.4
96kB
Baertram
05/22/22 09:52 AM
3.0r3.3
96kB
Baertram
05/09/22 01:44 AM
3.0r3.2
96kB
Baertram
03/16/22 11:06 AM
3.0r3.1
95kB
Baertram
03/12/22 07:34 PM
3.0r3.0
95kB
Baertram
03/12/22 11:27 AM
3.0r2.2
13kB
Baertram
08/13/21 06:29 AM
3.0r2.1
13kB
Baertram
06/01/21 05:58 AM
3.0r2.0
13kB
Baertram
02/18/21 06:55 PM
3.0r1.9
11kB
Baertram
01/25/21 04:05 PM
3.0r1.8
11kB
Baertram
01/25/21 02:05 PM
3.0r1.7
11kB
Baertram
11/02/20 06:39 AM
3.0r1.6
10kB
Baertram
08/24/20 07:09 PM
3.0r1.5
9kB
Baertram
08/31/19 12:50 PM
3.0r1.4
9kB
Baertram
08/30/19 11:08 PM
3.0r1.3
8kB
Baertram
08/30/19 03:12 PM
3.0r1.2
8kB
Baertram
05/26/19 01:50 PM
3.0r1.1
8kB
Baertram
05/11/19 04:51 PM
3.0r1.0
8kB
05/04/19 08:28 AM


Post A Reply Comment Options
Unread 04/25/22, 06:35 AM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 200
Uploads: 2
Re: Re: PTS

Originally Posted by Baertram
Originally Posted by remosito
Howdie,

LibFilter3 throws errors on pts. Looks like they are related to the quickslot workover ZOS is putting in...

cheers
Already fixed, was working on it, FCOIS, AdvancedFilters today.
Download the most current github beta file(s) please.
Did that this morning and works perfectly on PTS

thanks a lot :-)
Report comment to moderator  
Reply With Quote
Unread 04/24/22, 03:51 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4112
File comments: 5096
Uploads: 71
Re: PTS

Originally Posted by remosito
Howdie,

LibFilter3 throws errors on pts. Looks like they are related to the quickslot workover ZOS is putting in...

cheers
Already fixed, was working on it, FCOIS, AdvancedFilters today.
Download the most current github beta file(s) please.
Report comment to moderator  
Reply With Quote
Unread 04/24/22, 02:43 PM  
remosito
AddOn Author - Click to view AddOns

Forum posts: 29
File comments: 200
Uploads: 2
PTS

Howdie,

LibFilter3 throws errors on pts. Looks like they are related to the quickslot workover ZOS is putting in...

cheers
Report comment to moderator  
Reply With Quote
Unread 04/01/22, 10:17 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4112
File comments: 5096
Uploads: 71
Yes, it's not supported officially as the Changelog says and thus will throw error messages.
Last edited by Baertram : 04/01/22 at 10:17 AM.
Report comment to moderator  
Reply With Quote
Unread 04/01/22, 12:44 AM  
Lucxius

Forum posts: 0
File comments: 1
Uploads: 0
gamepad

Hello I have an error when I use the new Giladil the Ragpicker, in mode gamepad:

user:/Addons/Libfilters-3.0/helper.lua:859: function expected instead of nil stack traceback:
user:/Addons/Libfilters-3.0/helper.lua:859: in function 'filterFuction'/EsoUI/Ingame/Crafting/Gamepad/GamepadCraftingInventory.lua:173:infuction'ZO_GamepadCraftingInventory:GetIndividualInventorySlotsAddToScrollData'/EsoUI/Ingame/Crafting/Gamepad/UniversalDeconstructionPanel_Gamepad.lua:550 etc.....

Sorry it is my first post and I don't know how to attach an image
Report comment to moderator  
Reply With Quote
Unread 03/16/22, 05:52 PM  
Zulunia
AddOn Author - Click to view AddOns

Forum posts: 2
File comments: 28
Uploads: 1
Thanks for the update! Enchant Maker works again thankyou!
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 08:34 PM  
[Daniel]

Forum posts: 1
File comments: 125
Uploads: 0
Thank you Baertram! installed the latest updates and all is well
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 07:30 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4112
File comments: 5096
Uploads: 71
CBE -> Optional AGS -> Optional LibFilters -> Optional CBE.
If AF is also used it will jump in there too:
CBE -> Optional AGS -> Optional LibFilters -> AdvancedFilters -> Optional CBE
So I need to fix the optional dependency at LibFilters as it seems.
Last edited by Baertram : 03/12/22 at 07:31 PM.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 07:26 PM  
[Daniel]

Forum posts: 1
File comments: 125
Uploads: 0
Originally Posted by Baertram
Try to remove from AdvancedFilters.txt -> ## OptionalDependsOn: AwesomeGuldStore
Unfortunately for me, making this edit yielded the same error... so I reverted the change and tried just @karmapharmacy's edit as I too am using CBE...
Originally Posted by karmapharmacy
Removed LibFilters3.0.txt -> ## OptionalDependsOn: CraftBagExtended
.. and surprisingly the error (which mentioned AwesomeGuildStore) vanished?!

This got me curious... what if I left the AGS optional depends inside AF.txt and instead removed its CBE reference (knowing LF3.txt still contained it; after I reverted the earlier change)? and the circular message remains...
AddOnLoad: Circular dependency detected between [LibFilters-3.0] and [AwesomeGuildStore]
And for clarity, this is the condition of the two files optional depends in this scenario:
  • AdvancedFilters.txt - ## OptionalDependsOn: AwesomeGuildStore LibMotifCategories>=2
  • LibFilters3.0.txt - ## OptionalDependsOn: LibDebugLogger>=220 CraftBagExtended
So for right now, I think I'm going to leave the edits as I believe @karmapharmacy has them:
  • AdvancedFilters.txt (unchanged) - ## OptionalDependsOn: AwesomeGuildStore CraftBagExtended LibMotifCategories>=2
  • LibFilters3.0.txt (CBE removed) - ## OptionalDependsOn: LibDebugLogger>=220
Like this I have no errors pre-login, post-login, or while launching AGS.... and the filters appear to be working correctly inside AGS.
Last edited by [Daniel] : 03/12/22 at 07:32 PM.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 06:53 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4112
File comments: 5096
Uploads: 71
Originally Posted by karmapharmacy
Had a similar issue, along with a few other users for AwesomeGuildStore and Craft Bag Extended.
This circular dependency was caused by AGS and CraftBagExtended - following your logic for this recent bug with LF and AGS :

Removed LibFilters3.0.txt -> ## OptionalDependsOn: CraftBagExtended

No more dependency loop. Likely cause AF calls on CBE, and is already using LF3.0.

Confirmed all filter menus working.
Ah, okay. thanks for that info. CBE was added on purpose to LibFilters as there is dependent code and checks.
I'll check the files of LibFilters and AF again.
Last edited by Baertram : 03/12/22 at 07:02 PM.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 06:26 PM  
karmapharmacy
 
karmapharmacy's Avatar

Forum posts: 0
File comments: 3
Uploads: 0
Had a similar issue, along with a few other users for AwesomeGuildStore and Craft Bag Extended.
This circular dependency was caused by AGS and CraftBagExtended - following your logic for this recent bug with LF and AGS :

Removed LibFilters3.0.txt -> ## OptionalDependsOn: CraftBagExtended

No more dependency loop. Likely cause AF calls on CBE, and is already using LF3.0.

Confirmed all filter menus working.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 05:38 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4112
File comments: 5096
Uploads: 71
I wonder why this causes a circular dependency as both use LibFilters (Awesome Guild Store and Advanced Filters), and AF adds AGS as an optional dependency -> 1st LibFilters, 2nd AGS, 3rd AF

Weird, let my see what we can do here. AF added AGS as optional dependency cuz there was a bug in the past but I cannot remember which one. Maybe it's fixed meanwhile.
Try to remove from AdvancedFilters.txt -> ## OptionalDependsOn: AwesomeGuldStore
Test version of AdvancedFilters having that entry at the txt removed:
https://github.com/Baertram/Advanced...ads/master.zip

Logout! Else the changed txt files may not be recognized.
That should fix it for you, and see if everything works well. Especially the AF subFilterbars at the guild store vendors!




Originally Posted by [Daniel
]I'm getting an error on game launch after updating this library...


If I close the error, I can get it to repeat by opening the addon manager (pre character load) and scrolling the addon list.

Using a GREP (find in files) tool, the only reference I can find (containing string = "libfilters") in AGS to the library is in the txt file where it lists this library as an optional depends...


and this optional depends reference seems to be in-line with the depends reference of AF's txt file (although AGS's version number is older)...
Last edited by Baertram : 03/12/22 at 05:51 PM.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 04:52 PM  
[Daniel]

Forum posts: 1
File comments: 125
Uploads: 0
I'm getting an error on game launch after updating this library...
AddOnLoad: Circular dependency detected between [LibFilters-3.0] and [AwesomeGuildStore]
If I close the error, I can get it to repeat by opening the addon manager (pre character load) and scrolling the addon list.

Using a GREP (find in files) tool, the only reference I can find (containing string = "libfilters") in AGS to the library is in the txt file where it lists this library as an optional depends...
## OptionalDependsOn: LibFilters-3.0>=312 LibCustomTitles LibAnnyoingUpdateNotificationInGame CraftedPotions>=20
and this optional depends reference seems to be in-line with the depends reference of AF's txt file (although AGS's version number is older)...
## DependsOn: LibAddonMenu-2.0>=32 LibCustomMenu>=711 LibFilters-3.0>=330
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 01:02 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4112
File comments: 5096
Uploads: 71
Re: UI Error

Thanks, I got an AF version for next update (PTS) prepared.
Let me see if I can add a quickfix for AF until Monday.

Edit:
Yep, should work, chanegd one PTS check line and its updated now.

Originally Posted by Schrappe
Error message encountered with today's update for crafting enchanting, glyph mining
------------

user:/AddOns/AdvancedFilters/files/util.lua:2128: attempt to index a nil value
stack traceback:
user:/AddOns/AdvancedFilters/files/util.lua:2128: in function 'util.GetCraftingTablePanelIncludeBankedCheckbox'
|caaaaaa<Locals> filterPanelId = 11, ZOsControlNames = [table:1]{searchFilters = "SearchFilters", questItemsOnly = "QuestItemsOnly", includeBankedCheckbox = "IncludeBanked", active = "Active", subTabs = "SubTabs", filterDivider = "FilterDivider", tabs = "Tabs", buttonDivider = "ButtonDivider", title = "Title", searchDivider = "SearchDivider", textSearch = "TextSearch"}, includeBankedCBoxName = "IncludeBanked" </Locals>|r
user:/AddOns/AdvancedFilters/files/util.lua:1175: in function 'util.RefreshSubfilterBar'
|caaaaaa<Locals> subfilterBar = [table:2]{inventoryType = 1, name = "PlayerInventory_All", libFilters_filterType = 1}, calledFromExternalAddonName = "", settings = [table:3]{}, debugSpam = F, debugSpamExcludeRefreshSubfilterBar = T, inventoryType = 1, craftingType = 3, isNoCrafting = F, realInvTypes = [table:4]{1 = 1}, grayOutSubFiltersWithNoItems = T, abortSubfilterBarRefresh = F, onlyEnableAllSubfilterBarButtons = F, isVendorBuyInv = F, isCompanionInv = F, hideCharBound = F, subFilterBarFilterInfo = [table:5]{isFencePanel = F, isCompanionInvButtonActive = F, isJunkButtonActive = F, isVendorPanel = F, isCompanionInv = F, isVendorBuy = F, isBankDepositPanel = F, isTrade = F, isJunkInvButtonActive = F, isRetraitStation = F, isGuildBankDepositPanel = F, isGuildStoreSellPanel = F, libFiltersPanelId = 11, isHouseBankDepositPanel = F, isLaunderPanel = F, isMailSendPanel = F}, libFiltersPanelId = 11, isMailSendPanel = F, isVendorBuy = F, isVendorPanel = F </Locals>|r
user:/AddOns/AdvancedFilters/files/util.lua:72: in function 'Update'
--------------------------------------------------------------------------
Last edited by Baertram : 03/12/22 at 01:08 PM.
Report comment to moderator  
Reply With Quote
Unread 03/12/22, 12:40 PM  
Schrappe
 
Schrappe's Avatar

Forum posts: 6
File comments: 255
Uploads: 0
UI Error

Error message encountered with today's update for crafting enchanting, glyph mining
------------

user:/AddOns/AdvancedFilters/files/util.lua:2128: attempt to index a nil value
stack traceback:
user:/AddOns/AdvancedFilters/files/util.lua:2128: in function 'util.GetCraftingTablePanelIncludeBankedCheckbox'
|caaaaaa<Locals> filterPanelId = 11, ZOsControlNames = [table:1]{searchFilters = "SearchFilters", questItemsOnly = "QuestItemsOnly", includeBankedCheckbox = "IncludeBanked", active = "Active", subTabs = "SubTabs", filterDivider = "FilterDivider", tabs = "Tabs", buttonDivider = "ButtonDivider", title = "Title", searchDivider = "SearchDivider", textSearch = "TextSearch"}, includeBankedCBoxName = "IncludeBanked" </Locals>|r
user:/AddOns/AdvancedFilters/files/util.lua:1175: in function 'util.RefreshSubfilterBar'
|caaaaaa<Locals> subfilterBar = [table:2]{inventoryType = 1, name = "PlayerInventory_All", libFilters_filterType = 1}, calledFromExternalAddonName = "", settings = [table:3]{}, debugSpam = F, debugSpamExcludeRefreshSubfilterBar = T, inventoryType = 1, craftingType = 3, isNoCrafting = F, realInvTypes = [table:4]{1 = 1}, grayOutSubFiltersWithNoItems = T, abortSubfilterBarRefresh = F, onlyEnableAllSubfilterBarButtons = F, isVendorBuyInv = F, isCompanionInv = F, hideCharBound = F, subFilterBarFilterInfo = [table:5]{isFencePanel = F, isCompanionInvButtonActive = F, isJunkButtonActive = F, isVendorPanel = F, isCompanionInv = F, isVendorBuy = F, isBankDepositPanel = F, isTrade = F, isJunkInvButtonActive = F, isRetraitStation = F, isGuildBankDepositPanel = F, isGuildStoreSellPanel = F, libFiltersPanelId = 11, isHouseBankDepositPanel = F, isLaunderPanel = F, isMailSendPanel = F}, libFiltersPanelId = 11, isMailSendPanel = F, isVendorBuy = F, isVendorPanel = F </Locals>|r
user:/AddOns/AdvancedFilters/files/util.lua:72: in function 'Update'
--------------------------------------------------------------------------
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: