Fix crafting from pockets and add debugs

This commit is contained in:
Jim Shield
2024-01-25 18:40:42 +00:00
committed by GitHub
parent dd35674307
commit 872cb39715

View File

@@ -52,10 +52,11 @@ function craftingMenu(data)
Wait(0) Wait(0)
end end
if Config.System.Debug then print("^6Bridge^7: ^2Checking"..(data.stashName and " ^7'^6"..data.stashName.."^7'" or "").." ^2ingredients^7 - ^6"..k.."^7") end if Config.System.Debug then print("^6Bridge^7: ^2Checking"..(data.stashName and " ^7'^6"..data.stashName.."^7'" or "").." ^2ingredients^7 - ^6"..k.."^7") end
if data.stashName ~= nil then disable = stashhasItem(stashItems, itemTable) else disable = hasItem(itemTable) end if data.stashName then disable = not stashhasItem(stashItems, itemTable)
else disable = not hasItem(itemTable) end
setheader = (Items[tostring(k)] and Items[tostring(k)].label or "error - "..tostring(k))..(Recipes[i]["amount"] > 1 and " x"..Recipes[i]["amount"] or "")..(not disable and " ✔️" or "") setheader = (Items[tostring(k)] and Items[tostring(k)].label or "error - "..tostring(k))..(Recipes[i]["amount"] > 1 and " x"..Recipes[i]["amount"] or "")..(not disable and " ✔️" or "")
Menu[#Menu + 1] = { Menu[#Menu + 1] = {
isMenuHeader = not disable, isMenuHeader = disable,
icon = invImg(tostring(k)), icon = invImg(tostring(k)),
header = setheader, txt = settext, header = setheader, txt = settext,
onSelect = function() onSelect = function()
@@ -258,7 +259,8 @@ function hasItem(items, amount, src) local amount = amount and amount or 1
for _, itemData in pairs(grabInv) do for _, itemData in pairs(grabInv) do
if itemData and (itemData.name == item) then count += (itemData.count or itemData.amount or 1) end if itemData and (itemData.name == item) then count += (itemData.count or itemData.amount or 1) end
end end
local foundMessage = "^6Bridge^7: ^3HasItem^7[^6"..foundInv.."^7]: "..tostring(item).." ^3"..count.."^7/^3"..amount foundInv = foundInv:gsub("%-", "^7-^6"):gsub("%_", "^7_^6")
local foundMessage = "^6Bridge^7: ^3hasItem^7[^6"..foundInv.."^7]: "..tostring(item).." ^3"..count.."^7/^3"..amount
if count >= amount then foundMessage = foundMessage.." ^5FOUND^7" else foundMessage = foundMessage .." ^1NOT FOUND^7" end if count >= amount then foundMessage = foundMessage.." ^5FOUND^7" else foundMessage = foundMessage .." ^1NOT FOUND^7" end
if Config.System.Debug then print(foundMessage) end if Config.System.Debug then print(foundMessage) end
hasTable[item] = { hasItem = count >= amount, count = count } hasTable[item] = { hasItem = count >= amount, count = count }
@@ -309,8 +311,8 @@ function getStash(stashName) local stashResource = ""
for _, item in pairs(stashItems) do for _, item in pairs(stashItems) do
local itemInfo = Items[item.name:lower()] local itemInfo = Items[item.name:lower()]
if itemInfo then if itemInfo then
local indexNum = #items+1 local indexNum = #items+1 -- Added to help recreate missing slot numbers
items[(item.slot and item.slot) or #indexNum)] = { items[(item.slot and item.slot) or indexNum] = {
name = itemInfo.name or nil, name = itemInfo.name or nil,
amount = tonumber(item.amount) or tonumber(item.count), amount = tonumber(item.amount) or tonumber(item.count),
info = item.info or "", info = item.info or "",
@@ -323,7 +325,6 @@ function getStash(stashName) local stashResource = ""
image = itemInfo.image or nil, image = itemInfo.image or nil,
slot = (item.slot and item.slot) or indexNum, slot = (item.slot and item.slot) or indexNum,
} }
print("TEST:", item.slot and ("slot info found: "..item.slot) or "reverting to indexnum "..indexNum)
end end
end end
if Config.System.Debug then print("^6Bridge^7: ^3GetStashItems^7: ^2Stash information for ^7'^6"..stashName.."^7' ^2retrieved^7") end if Config.System.Debug then print("^6Bridge^7: ^3GetStashItems^7: ^2Stash information for ^7'^6"..stashName.."^7' ^2retrieved^7") end
@@ -420,7 +421,15 @@ end
RegisterNetEvent(GetCurrentResourceName()..":server:stashRemoveItem", stashRemoveItem) RegisterNetEvent(GetCurrentResourceName()..":server:stashRemoveItem", stashRemoveItem)
function stashhasItem(stashItems, items, amount) function stashhasItem(stashItems, items, amount)
local invs = {OXInv, QSInv, CoreInv, CodeMInv, OrigenInv, QBInv}
local foundInv = "" local foundInv = ""
for _, inv in ipairs(invs) do
if GetResourceState(inv):find("start") then
foundInv = inv:gsub("%-", "^7-^6"):gsub("%_", "^7_^6")
break
end
end
if type(items) ~= "table" then items = { [items] = amount and amount or 1, } end if type(items) ~= "table" then items = { [items] = amount and amount or 1, } end
local hasTable = {} local hasTable = {}
for item, amount in pairs(items) do for item, amount in pairs(items) do
@@ -430,13 +439,11 @@ function stashhasItem(stashItems, items, amount)
count += (itemData.amount or 1) count += (itemData.amount or 1)
end end
end end
if count >= amount then
if Config.System.Debug then print("^6Bridge^7: ^3stashHasItem^7: ^5FOUND '"..item.."' ^3"..count.."^7/^3"..amount.."^7") end local debugMsg = string.format("^6Bridge^7: ^3stashHasItem^7[^6%s^7]: %s '%s' ^3%d^7/^3%d^7", foundInv, (count >= amount and "^5FOUND^7" or "^1NOT FOUND^7"), item, count, amount)
hasTable[item] = { hasItem = true, count = count, } if Config.System.Debug then print(debugMsg) end
else
if Config.System.Debug then print("^6Bridge^7: ^3stashHasItem^7: ^1NOT FOUND^7 '"..item.."' ^1"..count.."^7/^3"..amount.."^7") end hasTable[item] = { hasItem = (count >= amount), count = count }
hasTable[item] = { hasItem = false, count = count, }
end
end end
for k, v in pairs(hasTable) do if v.hasItem == false then return false, hasTable end end for k, v in pairs(hasTable) do if v.hasItem == false then return false, hasTable end end
return true, hasTable return true, hasTable