Compare commits

...

7 Commits

Author SHA1 Message Date
Jim Shield
7e320bcb99 Version Bump
`2.1.07` - `2.1.08`
2025-10-21 16:09:33 +01:00
Jim Shield
54f96f7e77 When using lookEnt() also face players head 2025-10-20 20:10:02 +01:00
Jim Shield
dffed24fb3 Add callback to get society balance in client side 2025-10-18 23:12:38 +01:00
Jim Shield
aae2bd5021 Fix debugMode never being set after last change 2025-10-18 12:16:05 +01:00
Jim Shield
732b07c957 Create check for broken/missing config file 2025-10-14 03:51:22 +01:00
Jim Shield
8e8010f837 Start adding stashEditMetadata()
Need help with this one

`ox_inv` provides an easy function for this but most inventories don't seem to support editing specific items in a stash

`qb-inv` currently you need to forcibly edit the sql

others I'm I'm not too sure about yet
2025-10-13 12:33:04 +01:00
Jim Shield
e05815cfbd Fix getStash forcing fallback functions to run 2025-10-11 17:23:26 +01:00
7 changed files with 129 additions and 22 deletions

22
.gitattributes vendored
View File

@@ -1,12 +1,16 @@
# VCS / CI noise
.gitattributes export-ignore
.gitignore export-ignore
.github/** export-ignore
.gitmodules export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
/.gitmodules export-ignore
/.github export-ignore
# Dev tooling/config
.vscode/** export-ignore
*.code-workspace export-ignore
.editorconfig export-ignore
.eslintrc* export-ignore
.prettier* export-ignore
/.vscode export-ignore
*.code-workspace export-ignore
/.editorconfig export-ignore
/.eslintrc* export-ignore
/.prettier* export-ignore
# Omit release-only helpers
/server/restaurantchecker.lua export-ignore
/server/installitems.lua export-ignore

View File

@@ -1,6 +1,6 @@
name "Jim_Bridge"
author "Jimathy"
version "2.1.07"
version "2.1.08"
description "Framework Bridge By Jimathy"
fx_version "cerulean"
rdr3_warning 'I acknowledge that this is a prerelease build of RedM, and I am aware my resources *will* become incompatible once RedM ships.'

View File

@@ -638,6 +638,8 @@ function lookEnt(entity)
debugPrint("^6Bridge^7: ^2Turning Player to^7: '^6"..formatCoord(entity).."^7'")
Wait(1500)
end
-- Make players head face the coord for 5 seconds
TaskLookAtCoord(ped, entity.x, entity.y, entity.z, 5000, 1, 1)
else
if DoesEntityExist(entity) then
local entCoords = GetEntityCoords(entity)
@@ -646,6 +648,9 @@ function lookEnt(entity)
debugPrint("^6Bridge^7: ^2Turning Player to^7: '^6"..entity.."^7' - '"..formatCoord(entCoords).."^7'")
Wait(1500)
end
-- Make players head face the coord for 5 seconds
TaskLookAtEntity(ped, entity, 5000, 1, 1)
end
end
end

View File

@@ -103,6 +103,10 @@ local InvFunc = {
-- Add fallback if ox can't find the stash and returns a boolean
return type(stash) == "table" and stash.items or {}
end,
stashEditMetadata =
function(stash, slot, metadata)
exports[OXInv]:SetMetadata(stash, slot, metadata)
end,
stashAddItem =
function(stashItems, stashName, items)
@@ -207,6 +211,13 @@ local InvFunc = {
function(stashName)
return exports[CoreInv]:getInventory(stashName)
end,
stashEditMetadata =
function(stash, slot, metadata)
local itemData = exports[CoreInv]:getItemBySlot(stash, slot) or {}
if itemData then
exports[CoreInv]:setItem(stash, itemData.item, itemData.count, metadata)
end
end,
stashAddItem =
function(stashItems, stashName, items)
--
@@ -306,6 +317,10 @@ local InvFunc = {
function(stashName)
return exports[OrigenInv]:getInventory(stashName)
end,
stashEditMetadata =
function(stash, slot, metadata)
exports[OrigenInv]:setMetadata(stash, slot, metadata)
end,
stashAddItem =
function(stashItems, stashName, items)
--
@@ -416,6 +431,10 @@ local InvFunc = {
function(stashName)
return exports[CodeMInv]:GetStashItems(stashName)
end,
stashEditMetadata =
function(stash, slot, metadata)
end,
stashAddItem =
function(stashItems, stashName, items)
--
@@ -529,6 +548,10 @@ local InvFunc = {
function(stashName)
return exports[TgiannInv]:GetSecondaryInventoryItems("stash", stashName)
end,
stashEditMetadata =
function(stash, slot, metadata)
end,
stashAddItem =
function(stashItems, stashName, items)
--
@@ -692,6 +715,10 @@ local InvFunc = {
return result and json.decode(result) or {}
end
end,
stashEditMetadata =
function(stash, slot, metadata)
end,
stashAddItem =
function(stashItems, stashName, items)
--
@@ -880,6 +907,23 @@ local InvFunc = {
end
end
end,
stashEditMetadata =
function(stash, slot, metadata)
local stashData = getStash(stash)
for i = 1, #stashData do
if stashData[i].slot == slot then
print("found slot")
stashData[i].info = metadata
end
jsonPrint(stashData[i])
end
debugPrint("^6Bridge^7: ^3stashEditMetadata^7: ^2Saving ^3QB^2 stash '^6"..stash.."^7'")
MySQL.Async.insert('INSERT INTO stashitems (stash, items) VALUES (:stash, :items) ON DUPLICATE KEY UPDATE items = :items', {
['stash'] = stash,
['items'] = json.encode(stashData)
})
end,
stashAddItem =
function(stashItems, stashName, items)
--
@@ -2246,6 +2290,16 @@ function openStash(data)
end
function stashEditMetadata(stash, slot, metadata)
for i = 1, #InvFunc do
local inv = InvFunc[i]
if isStarted(inv.invName) then
inv.stashEditMetadata(stash, slot, metadata)
return
end
end
end
-- Wrapper function for opening stash from the server.
-- Messy but not much else I can do about it.
RegisterNetEvent(getScript()..":server:openServerStash", function(data)
@@ -2315,7 +2369,7 @@ function getStash(stashName)
if isStarted(inv.invName) then
debugPrint("^6Bridge^7: ^2Retrieving ^3"..inv.invName.." ^2Stash^7:", stashName)
stashItems = inv.getStash(stashName)
break
goto skip
end
end
@@ -2331,7 +2385,7 @@ function getStash(stashName)
end
end
::skip::
if stashItems then
for _, item in pairs(stashItems) do
local itemInfo = Items[item.name:lower()]

View File

@@ -263,4 +263,14 @@ function fundSociety(society, amount)
end
print("^1Error^7: ^3FundSociety^7: ^2No supported banking script found")
end
if isServer() then
createCallback(getScript()..":server:getAccount", function(source, society)
if society then
local getMoney = getSocietyAccount(society)
return getMoney
end
return 0
end)
end

View File

@@ -33,15 +33,51 @@ Exports = {
}
-- Required variables
debugMode = Config.System.Debug
debugMode = false
QBInvNew = true
InventoryWeight = 120000
-- Corruptted transfer file Checks -- Not Ready Yet ⚠️
--CreateThread(function()
-- local res = GetCurrentResourceName()
-- local ok, val = pcall(function()
-- return exports[res]:ping_encrypted()
-- end)
--
-- if not ok or val ~= "ok" then
-- print("\n^6===============================================================================")
-- print(("\n^1Corruption Warning^7: ^1[^7%s^1] Encrypted files failed to initialize.^7\n"):format(res))
-- print("^3Common causes^7:")
-- print(" • Possible corrupt files")
-- print(" • Damaged or partial upload (FTP/zip/unzip issue).")
-- print(" • Outdated artifact version\n")
-- print("^2How To Fix^7:")
-- print(" • Update your server artifact version")
-- print(" • Re-download asset from Keymaster")
-- print(" • Use WinSCP to upload")
-- print(" • Avoid editing any encrypted files")
-- print(" • Restart the server")
-- print("\n^6===============================================================================^7\n")
-- end
--end)
-- Missing/Broken Config file check
if not Config or not Config.System then
print("\n^6=================================================================================")
print("^6=================================================================================\n")
print(" ^1ERROR^7: jim_bridge ^1can't find the ^7Config^1 table in ^7"..GetCurrentResourceName())
print(" ^1It is either missing, or there is an error inside it stopping it from loading^7\n")
print("^6=================================================================================")
print("^6=================================================================================^7\n")
end
-- [[ Server.Cfg Convar Check ]]--
-- Check server convars for hard set defaults, otherwise it uses per script configurations
if Config and Config.System then
debugMode = Config.System.Debug
if Config.System.Debug then
if GetConvar("jim_DisableDebug", "false") == "true" then
debugMode = false
@@ -50,7 +86,6 @@ if Config and Config.System then
Config.System.EventDebug = false
end
end
Config.System.Menu = GetConvar("jim_menuScript", Config.System.Menu)
Config.System.Notify = GetConvar("jim_notifyScript", Config.System.Notify or "gta")
Config.System.ProgressBar = GetConvar("jim_progressBarScript", Config.System.ProgressBar or "gta")

View File

@@ -1,11 +1,10 @@
2.1.07
2.1.08
- Support for new embeded shop recipes
- Add checks for targets set with minZ and maxZ set too high or low
- New target function `createPropTarget()` which creates a box target based on a prop model
- Add CodeM as option for billing
- Add 17Mov progressbar support
- Fix OrigenInv calling OX_Inv to get player inventory
- Allow "Grab Boxes" to have custom slots and weight
- Fix getStash() always trying to use fallback functions
- Start adding stashEditMetadata() function - wip
- Add check for broken/missing config.lua in scripts
- Add fix for debugMode breaking if no config file
- Add a callback to check for society bank balances
- Add player head movement for `lookEnt()` to continue looking after turning
https://github.com/jimathy/jim_bridge/releases/latest