Files
DerEchteAlec 97db163cd0 FIX - harden inventory contracts and resolve phone interaction issues (#20)
* FIX - repair inventory metadata and ESX contracts

Use the stable core_inventory metadata setter and validate the complete inventory adapter contract after provider bridges load. Preserve the real ESX configuration error instead of cascading into a missing RegisterUsableItem failure.

* FIX - clarify phone opening without SIM

* FIX - harden inventory and device contracts

Validate SIM number configuration before item handling, preserve QB metadata mutation contracts, and propagate phone-open failures to callers. Extend regression coverage for inventory bridges and device bootstrap errors.

* FIX - resolve reported phone interaction issues

Stop game-input passthrough while NUI text fields are focused and add an independent hold-to-look option. Propagate SIM number formatting to the frontend, migrate configured currency symbols to utf8mb4, and clarify SkyRide, VaultX, and DarkChat behavior with focused contract coverage.

* FIX - detect missing packaged phone UI

Validate the generated NUI entrypoint, its referenced assets, and required static media when the resource starts. Print an actionable server-console warning for incomplete source archives, package phone sounds through the manifest, and cover the detection contract with Lua regressions.
2026-08-21 17:19:27 +02:00

27 lines
793 B
Lua

local required_methods = {
"GetResourceName",
"GetSlot",
"GetSlotsWithItem",
"SetSlotMetadata",
"CanCarryItem",
"AddItem",
"RemoveItem",
"RegisterUsableItem",
}
local configuration_error = Bridge.Inventory.ConfigurationError
for _, method_name in ipairs(required_methods) do
if configuration_error then
Bridge.Inventory[method_name] = function()
error(configuration_error, 2)
end
elseif type(Bridge.Inventory[method_name]) ~= "function" then
local contract_error = ("[sky_phone] Inventory adapter '%s' is missing required method '%s'.")
:format(tostring(Bridge.Inventory.Name), method_name)
Bridge.Inventory[method_name] = function()
error(contract_error, 2)
end
end
end