Download
(35 Kb)
Download
Updated: 10/02/21 04:28 AM
Updated:10/02/21 04:28 AM
Created:07/27/21 02:01 AM
Monthly downloads:968
Total downloads:55,628
Favorites:2
MD5:
DO NOT USE - libIsJustaAlchemy (WIP)  Popular! (More than 5000 hits)
Version: 1.2.6
by: IsJustaGhost [More]

Requires LibAddonMenu-2.0
Requires LibAsync


lib IsJusta Alchemy

This library is needed for the following addons
Isjusta Easy Alchemy
Isjusta Writ Helper

It has lookup functions and a recipe result box with selectable recipes based on the lookup results
Auto applies the selected recipe items into the respective crafting slots






- - - 1.2.6
○ changed how the lib fragment is added and removed
○ improved the result tooltip

- - - 1.2.5
○ fixed an issue that would break the gamepad mode controls

- - - 1.2.4
○ unify lib specific settings between addons
○ fixed recipe priority sort

- - - 1.2.3
○ fixed "mising trait" border

- - - 1.2.2
○ fixed error when locking the result panel
○ fixed scan delay not working

- - - 1.2.1
○ added function to get recipeData from result list for IsJusta Writ Helper

- - - 1.2
○ several changes made to work with IsJusta Writ Helper and IsJusta Easy Alchemy
○ improved the tooltip
○ item stack count colors are now based on a dynamic color curve from red to green, based on percent of 200 items

- - - 1.1
○ update for IsJusta Writ Helper launch

- - - 1.0.11
○ fixed missing sell price for missing reagent

- - - 1.0.10
○ fixed missing icon for missing reagent

- - - 1.0.9
○ added dummy reagent data for missing reagents

- - - 1.0.8
○ added the ability to sort callbacks. this was so if both the writ helper and easy alchemy are active, it will first run the call back for the writ helper

- - - 1.0.7
○ reagent place sound now only fires once per selection
○ messed with tooltip border
○ result panel can now be locked into position
○ reagents in the result panel now scroll smoothly, no longer jumps to next set before the last moves out of view
○ result panel is now the same width as the tooltip

- - - 1.0.6
○ fixed duplicating solvents

- - - 1.0.5
○ updated tooltip processing
○ fixed result box, now is locked in gamepad mode and restores position in keyboard mode

ADDED:
○ functions to update traits labUse tag if improperly tagged from initial scan for when Laboratory Use is not unlocked

- - - 1.0.4
FIXED:
○ error caused by missing saved variable scanDelay

- - - 1.0.3
○ implemented custom tooltip

- - - 1.0.2
FIXED:
○ version error

FIXED:
○ error from initial scan
○ error from initial scan sort
Optional Files (0)


Archived Files (17)
File Name
Version
Size
Uploader
Date
1.2.5
34kB
IsJustaGhost
09/30/21 03:06 PM
1.2.4
34kB
IsJustaGhost
09/17/21 03:10 PM
1.2.3
49kB
IsJustaGhost
09/16/21 01:07 PM
1.2.2
7kB
IsJustaGhost
09/15/21 08:01 PM
1.2.1
49kB
IsJustaGhost
09/14/21 04:26 PM
1.2
49kB
IsJustaGhost
09/12/21 03:24 PM
1.1
32kB
IsJustaGhost
08/25/21 10:52 PM
1.0.11
32kB
IsJustaGhost
08/25/21 02:33 PM
1.0.10
33kB
IsJustaGhost
08/25/21 12:12 PM
1.0.8
33kB
IsJustaGhost
08/06/21 03:07 AM
1.0.7
33kB
IsJustaGhost
08/03/21 03:40 AM
1.0.6
32kB
IsJustaGhost
07/30/21 02:23 PM
1.0.4
31kB
IsJustaGhost
07/29/21 03:37 AM
1.0.3
31kB
IsJustaGhost
07/29/21 02:50 AM
1.0.2
31kB
IsJustaGhost
07/28/21 01:34 PM
1.0.1
31kB
IsJustaGhost
07/28/21 01:16 PM
1
35kB
IsJustaGhost
07/27/21 02:01 AM


Post A Reply Comment Options
Unread 03/16/22, 07:04 PM  
IsJustaGhost
AddOn Author - Click to view AddOns

Forum posts: 37
File comments: 272
Uploads: 23
Re: Getting an error on Character load

These are on my list of projects to work on. I have started a complete rewrite on all 3.
Report comment to moderator  
Reply With Quote
Unread 03/16/22, 12:05 PM  
steiny58

Forum posts: 0
File comments: 1
Uploads: 0
Getting an error on Character load

Whenever I initially load my character, before doing anything else, I am getting this error:

Warning: Spoiler


I have EasyAlchemy and WritHelper installed. I disabled EasyAlchemy to see if that might change things and it didn't. On a similar note, it doesn't seem the AutoCraft for Alchemy works anyway (it said I was missing ingredients).
Report comment to moderator  
Reply With Quote
Unread 07/29/21, 03:38 AM  
IsJustaGhost
AddOn Author - Click to view AddOns

Forum posts: 37
File comments: 272
Uploads: 23
Originally Posted by zelenin
Code:
user:/AddOns/libIsJustaAlchemy/api.lua:373: operator * is not supported for nil * number
|rstack traceback:
Thank you. this should be fixed now in libIsJustaAlchemy 1.0.4.
Report comment to moderator  
Reply With Quote
Unread 07/29/21, 03:26 AM  
IsJustaGhost
AddOn Author - Click to view AddOns

Forum posts: 37
File comments: 272
Uploads: 23
Originally Posted by Maxim_ZG
Hi, i have this error
user:/AddOns/LibAsync/LibAsync.lua:53: user:/AddOns/libIsJustaAlchemy/lookup.lua:934: operator + is not supported for number + nil
stack traceback:
user:/AddOns/libIsJustaAlchemy/lookup.lua:934: in function 'Recipe_Data:GetTotalPrice'
I'm a bit confused with this one. I know what the error is, but not how the reagent became nothing when there were 3 reagents prior to the above function.

Perhaps there's a addon conflict. Delete libIsJustaAlchemy.lua in "Elder Scrolls Online\live\SavedVariables" to see if that helps.

Are you using it with IsJusta Easy Alchemy?
Last edited by IsJustaGhost : 07/29/21 at 03:28 AM.
Report comment to moderator  
Reply With Quote
Unread 07/29/21, 03:12 AM  
zelenin
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 192
Uploads: 12
Code:
user:/AddOns/libIsJustaAlchemy/api.lua:373: operator * is not supported for nil * number
|rstack traceback:
user:/AddOns/libIsJustaAlchemy/api.lua:373: in function 'lib:GetAlchemyRecipes'
|caaaaaa<Locals> self = [table:1]{typeFilter = 1}, traits = [table:2]{1 = 1}, ranOnce = F, OnUpdateHandler = user:/AddOns/libIsJustaAlchemy/api.lua:362 </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:250: in function 'IJA_EasyAlchemy:OnSelectedTraitDataChangedCallback'
|caaaaaa<Locals> self = [table:1], traitIndex = 3, selectedData = [table:3]{traitId = 0, filterType = 3, icon = "/esoui/art/icons/alchemy/craft..."}, selectedDuringRebuild = F, traitId = 0, setTraitList = user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:231 </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:556: in function 'onSelectedDataChangedCallback'
|caaaaaa<Locals> selectedData = [table:3], selectedDuringRebuild = F </Locals>|r
EsoUI/Libraries/ZO_HorizontalScrollList/ZO_HorizontalScrollList.lua:464: in function 'ZO_HorizontalScrollList:UpdateAnchors'
|caaaaaa<Locals> self = [table:4]{selectedIndex = 0, enabled = T, isUpdatingAnchors = F, halfNumVisibleEntries = 3, controlEntryWidth = 94, lastPrimaryControlOffsetX = 0, lastScrollTime = 11665.270507813, offsetBetweenEntries = 50, isMoving = F, displayEntryType = 2, allowWrapping = F, numVisibleEntries = 7}, primaryControlOffsetX = 0, initialUpdate = T, reselectingDuringRebuild = F, oldPrimaryControlOffsetX = 0, oldVisibleIndex = -0, newVisibleIndex = -0, visibleIndicesChanged = F </Locals>|r
EsoUI/Libraries/ZO_HorizontalScrollList/ZO_HorizontalScrollList.lua:278: in function 'ZO_HorizontalScrollList:Commit'
|caaaaaa<Locals> self = [table:4], hasItems = T, reselectingDuringRebuild = F, ALLOW_EVEN_IF_DISABLED = T, INITIAL_UPDATE = T </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:286: in function 'IJA_EasyAlchemy:RefreshTraitLists'
|caaaaaa<Locals> self = [table:1], key = 3, selectedData = [table:5]{traitId = 0, filterType = 3, icon = "/esoui/art/icons/alchemy/craft..."}, getTraitName = user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:256, traitCombinations = [table:6]{} </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:243: in function 'IJA_EasyAlchemy:OnSelectedTraitDataChangedCallback'
|caaaaaa<Locals> self = [table:1], traitIndex = 2, selectedData = [table:5], selectedDuringRebuild = F, traitId = 0, setTraitList = user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:231 </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:549: in function 'onSelectedDataChangedCallback'
|caaaaaa<Locals> selectedData = [table:5], selectedDuringRebuild = F </Locals>|r
EsoUI/Libraries/ZO_HorizontalScrollList/ZO_HorizontalScrollList.lua:464: in function 'ZO_HorizontalScrollList:UpdateAnchors'
|caaaaaa<Locals> self = [table:7]{selectedIndex = 0, enabled = T, isUpdatingAnchors = F, halfNumVisibleEntries = 3, controlEntryWidth = 94, lastPrimaryControlOffsetX = 0, lastScrollTime = 11665.270507813, offsetBetweenEntries = 50, isMoving = F, displayEntryType = 2, allowWrapping = F, numVisibleEntries = 7}, primaryControlOffsetX = 0, initialUpdate = T, reselectingDuringRebuild = F, oldPrimaryControlOffsetX = 0, oldVisibleIndex = -0, newVisibleIndex = -0, visibleIndicesChanged = F </Locals>|r
EsoUI/Libraries/ZO_HorizontalScrollList/ZO_HorizontalScrollList.lua:278: in function 'ZO_HorizontalScrollList:Commit'
|caaaaaa<Locals> self = [table:7], hasItems = T, reselectingDuringRebuild = F, ALLOW_EVEN_IF_DISABLED = T, INITIAL_UPDATE = T </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:286: in function 'IJA_EasyAlchemy:RefreshTraitLists'
|caaaaaa<Locals> self = [table:1], key = 2, selectedData = [table:8]{name = "Restore Health", traitId = 1, filterType = 3, icon = "/esoui/art/icons/alchemy/craft..."}, getTraitName = user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:256, traitCombinations = [table:6] </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:240: in function 'IJA_EasyAlchemy:OnSelectedTraitDataChangedCallback'
|caaaaaa<Locals> self = [table:1], traitIndex = 1, selectedData = [table:8], selectedDuringRebuild = F, traitId = 1, setTraitList = user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:231 </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:542: in function 'onSelectedDataChangedCallback'
|caaaaaa<Locals> selectedData = [table:8], selectedDuringRebuild = F </Locals>|r
EsoUI/Libraries/ZO_HorizontalScrollList/ZO_HorizontalScrollList.lua:464: in function 'ZO_HorizontalScrollList:UpdateAnchors'
|caaaaaa<Locals> self = [table:9]{selectedIndex = 0, enabled = T, isUpdatingAnchors = F, halfNumVisibleEntries = 3, controlEntryWidth = 94, lastPrimaryControlOffsetX = 0, lastScrollTime = 11665.270507813, offsetBetweenEntries = 50, isMoving = F, displayEntryType = 2, allowWrapping = F, numVisibleEntries = 7}, primaryControlOffsetX = 0, initialUpdate = T, reselectingDuringRebuild = F, oldPrimaryControlOffsetX = 0, oldVisibleIndex = -0, newVisibleIndex = -0, visibleIndicesChanged = F </Locals>|r
EsoUI/Libraries/ZO_HorizontalScrollList/ZO_HorizontalScrollList.lua:278: in function 'ZO_HorizontalScrollList:Commit'
|caaaaaa<Locals> self = [table:9], hasItems = T, reselectingDuringRebuild = F, ALLOW_EVEN_IF_DISABLED = T, INITIAL_UPDATE = T </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:286: in function 'IJA_EasyAlchemy:RefreshTraitLists'
|caaaaaa<Locals> self = [table:1], key = 1, getTraitName = user:/AddOns/IsJustaEasyAlchemy/IsJustaEasyAlchemy.lua:256, traitCombinations = [table:6] </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:462: in function 'IJA_KeyboardEasyAlchemy:ChangeTypeFilter'
|caaaaaa<Locals> self = [table:1], filterData = [table:10]{activeTabText = "Potions", normal = "esoui/art/inventory/inventory_...", disabled = "esoui/art/inventory/inventory_...", tooltipText = "Potions", highlight = "esoui/art/inventory/inventory_...", pressed = "esoui/art/inventory/inventory_...", descriptor = 1} </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:753: in function 'callback'
|caaaaaa<Locals> filterData = [table:10] </Locals>|r
EsoUI/Libraries/ZO_MenuBar/ZO_MenuBar.lua:286: in function 'MenuBarButton:Release'
|caaaaaa<Locals> self = [table:11]{m_highlightHidden = T, m_state = 1, m_locked = T}, upInside = T, skipAnimation = T, playerDriven = F, buttonData = [table:10] </Locals>|r
EsoUI/Libraries/ZO_MenuBar/ZO_MenuBar.lua:604: in function 'MenuBar:SelectDescriptor'
|caaaaaa<Locals> self = [table:12]{m_point = 8, m_relativePoint = 2, m_buttonPadding = -10, m_normalSize = 40, m_downSize = 51, m_animationDuration = 180, m_clickSound = "Click_MenuBar"}, descriptor = 1, skipAnimation = T, buttonObject = [table:11] </Locals>|r
EsoUI/Libraries/ZO_MenuBar/ZO_MenuBar.lua:405: in function 'MenuBar:SelectLastVisibleButton'
|caaaaaa<Locals> self = [table:12], skipAnimation = T, i = 2, button = [table:13]{2 = 2}, buttonControl = ud, isVisible = T </Locals>|r
(tail call): ?
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:722: in function 'IJA_KeyboardEasyAlchemy:RefreshAvailableFilters'
|caaaaaa<Locals> self = [table:1] </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:763: in function 'IJA_KeyboardEasyAlchemy:InitializeFilterTypeBar'
|caaaaaa<Locals> self = [table:1], MENU_BAR_DATA = [table:14]{normalSize = 51, buttonPadding = -15, downSize = 64, animationDuration = 180, buttonTemplate = "ZO_CraftingInventoryTab", initialButtonAnchorPoint = 8}, CreateNewTabFilterData = user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:741, isVisible = user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:758 </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:291: in function 'IJA_KeyboardEasyAlchemy:PerformDeferredInitialization'
|caaaaaa<Locals> self = [table:1], scrollListControl = [table:15]{}, listSlotTemplate = "ZO_SmithingListSlot", saves = ud </Locals>|r
user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:64: in function 'callback'
|caaaaaa<Locals> oldState = "hidden", newState = "showing" </Locals>|r
user:/AddOns/libIsJustaAlchemy/startUp.lua:194: in function 'stateChanged_KB'
|caaaaaa<Locals> oldState = "hidden", newState = "showing", k = 1, callback = user:/AddOns/IsJustaEasyAlchemy/Keyboard/alchemy_keyboard.lua:61 </Locals>|r
user:/AddOns/libIsJustaAlchemy/startUp.lua:199: in function 'callback'
|caaaaaa<Locals> oldState = "hidden", newState = "showing" </Locals>|r
EsoUI/Libraries/Utility/ZO_CallbackObject.lua:107: in function 'ZO_CallbackObjectMixin:FireCallbacks'
|caaaaaa<Locals> self = [table:16]{name = "alchemy", restoresHUDSceneToggleGameMenu = F, state = "showing", restoresHUDSceneToggleUIMode = F, disallowEvaluateTransitionCompleteCount = 1, wasShownInGamepadPreferredMode = F, wasRequestedToShowInGamepadPreferredMode = F, fireCallbackDepth = 1}, eventName = "StateChange", registry = [table:17]{}, callbackInfoIndex = 2, callbackInfo = [table:18]{3 = F}, callback = user:/AddOns/libIsJustaAlchemy/startUp.lua:198, deleted = F </Locals>|r
EsoUI/Libraries/ZO_Scene/ZO_Scene.lua:276: in function 'ZO_Scene:SetState'
|caaaaaa<Locals> self = [table:16], newState = "showing", oldState = "hidden", name = "alchemy" </Locals>|r
Report comment to moderator  
Reply With Quote
Unread 07/29/21, 02:42 AM  
Maxim_ZG
 
Maxim_ZG's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 27
Uploads: 3
user:/AddOns/LibAsync/LibAsync.lua:53: user:/AddOns/libIsJustaAlchemy/lookup.lua:934: operator + is not supported for number + nil
stack traceback:
user:/AddOns/libIsJustaAlchemy/lookup.lua:934: in function 'Recipe_Data:GetTotalPrice'
|caaaaaa<Locals> self = [table:1]{maxPrice = 408.14, minPrice = 140.85, numTraits = 2, traitPrioritys = 5, totalPrice = 706.8, numReagents = 3}, total = 0, k = 1, reagent = [table:2]{name = "", icon = "", bagId = 0, stackCount = 0, itemId = 0, slotIndex = 0, itemLink = "", itemType = 0} </Locals>|r
user:/AddOns/libIsJustaAlchemy/lookup.lua:971: in function 'Recipe_Data:BuildData'
|caaaaaa<Locals> self = [table:1], reagents = [table:3]{}, combinedTraits = [table:4]{1 = 2}, traitKeys = [table:5]{2 = T}, traitPrioritys = 5 </Locals>|r
user:/AddOns/libIsJustaAlchemy/lookup.lua:1140: in function 'Search_Results:Process'
|caaaaaa<Locals> self = [table:6]{}, traits = [table:7]{1 = 2}, reagents = [table:3], result = [table:8]{}, matched = T, combinedTraits = [table:4], traitKeys = [table:5], traitPrioritys = 5, recipeData = [table:1] </Locals>|r
user:/AddOns/libIsJustaAlchemy/lookup.lua:1173: in function 'func'
|caaaaaa<Locals> id_1 = 30152, r_1Data = [table:9]{itemId = 30152, name = "Violet Coprinus"}, id_2 = 30161, r_2Data = [table:10]{itemId = 30161, name = "Corn Flower"}, results_1 = [table:11]{labUse = F}, id_3 = 150670, r_3Data = [table:12]{itemId = 150670, name = "Vile Coagulant"} </Locals>|r
user:/AddOns/LibAsync/LibAsync.lua:320: in function '(anonymous)'
|caaaaaa<Locals> value = [table:9] </Locals>|r
(tail call): ?
[C]: in function 'pcall'
user:/AddOns/LibAsync/LibAsync.lua:37: in function 'DoCallback'
|caaaaaa<Locals> job = [table:13]{lastCallIndex = 2, name = "alchemyScan"}, callstackIndex = 2 </Locals>|r
user:/AddOns/LibAsync/LibAsync.lua:67: in function 'DoJob'
|caaaaaa<Locals> job = [table:13], index = 2 </Locals>|r
user:/AddOns/LibAsync/LibAsync.lua:145: in function 'async.Scheduler'
|caaaaaa<Locals> name = "alchemyScan", runTime = 144.3969269, GetGameTimeSeconds = [C]:-1, start = 144.38558959961, now = 144.3969269, allOnlyOnce = F </Locals>|r
stack traceback:
[C]: in function 'error'
user:/AddOns/LibAsync/LibAsync.lua:53: in function 'DoCallback'
|caaaaaa<Locals> job = [table:1]{lastCallIndex = 1, name = "alchemyScan", Error = "user:/AddOns/libIsJustaAlchemy..."}, callstackIndex = 2, success = F, shouldContinue = "user:/AddOns/libIsJustaAlchemy..." </Locals>|r
user:/AddOns/LibAsync/LibAsync.lua:67: in function 'DoJob'
|caaaaaa<Locals> job = [table:1], index = 2 </Locals>|r
user:/AddOns/LibAsync/LibAsync.lua:145: in function 'async.Scheduler'
|caaaaaa<Locals> name = "alchemyScan", runTime = 144.3969269, GetGameTimeSeconds = [C]:-1, start = 144.38558959961, now = 144.3969269, allOnlyOnce = F </Locals>|r

Originally Posted by IsJustaGhost
Originally Posted by Maxim_ZG
Hi, i have this error
Fixed in next update.
Report comment to moderator  
Reply With Quote
Unread 07/28/21, 12:49 PM  
IsJustaGhost
AddOn Author - Click to view AddOns

Forum posts: 37
File comments: 272
Uploads: 23
Originally Posted by Maxim_ZG
Hi, i have this error
Fixed in next update.
Report comment to moderator  
Reply With Quote
Unread 07/28/21, 12:26 PM  
IsJustaGhost
AddOn Author - Click to view AddOns

Forum posts: 37
File comments: 272
Uploads: 23
thank you for posting.
I'm looking into it.


Please copy the error text next time you post an error message. Use [ctrl]+[a] then [ctrl]+[c].
Last edited by IsJustaGhost : 07/28/21 at 12:26 PM.
Report comment to moderator  
Reply With Quote
Unread 07/28/21, 11:59 AM  
Maxim_ZG
 
Maxim_ZG's Avatar
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 27
Uploads: 3
Hi, i have this error
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: