QBCore = exports['qb-core']:GetCoreObject() PlayerData = {} local function createProperty(property) PropertiesTable[property.property_id] = Property:new(property) end RegisterNetEvent('ps-housing:client:addProperty', createProperty) RegisterNetEvent('ps-housing:client:removeProperty', function (property_id) local property = Property.Get(property_id) if property then property:RemoveProperty() end PropertiesTable[property_id] = nil end) function InitialiseProperties(properties) Debug("Initialising properties") PlayerData = QBCore.Functions.GetPlayerData() for k, v in pairs(Config.Apartments) do ApartmentsTable[k] = Apartment:new(v) end if not properties then properties = lib.callback.await('ps-housing:server:requestProperties') end for k, v in pairs(properties) do createProperty(v.propertyData) end TriggerEvent("ps-housing:client:initialisedProperties") Debug("Initialised properties") end AddEventHandler("QBCore:Client:OnPlayerLoaded", InitialiseProperties) RegisterNetEvent('ps-housing:client:initialiseProperties', InitialiseProperties) AddEventHandler("onResourceStart", function(resourceName) -- Used for when the resource is restarted while in game if (GetCurrentResourceName() == resourceName) then InitialiseProperties() end end) RegisterNetEvent('QBCore:Client:OnJobUpdate', function(job) PlayerData.job = job end) RegisterNetEvent('ps-housing:client:setupSpawnUI', function(cData) DoScreenFadeOut(1000) local result = lib.callback.await('ps-housing:cb:GetOwnedApartment', source, cData.citizenid) if result then TriggerEvent('qb-spawn:client:setupSpawns', cData, false, nil) TriggerEvent('qb-spawn:client:openUI', true) -- TriggerEvent("apartments:client:SetHomeBlip", result.type) else if Config.StartingApartment then TriggerEvent('qb-spawn:client:setupSpawns', cData, true, Config.Apartments) TriggerEvent('qb-spawn:client:openUI', true) else TriggerEvent('qb-spawn:client:setupSpawns', cData, false, nil) TriggerEvent('qb-spawn:client:openUI', true) end end end) AddEventHandler("onResourceStop", function(resourceName) if (GetCurrentResourceName() == resourceName) then if Modeler.IsMenuActive then Modeler:CloseMenu() end for k, v in pairs(PropertiesTable) do v:RemoveProperty() end for k, v in pairs(ApartmentsTable) do v:RemoveApartment() end end end) exports('GetProperties', function() return PropertiesTable end) exports('GetProperty', function(property_id) return Property.Get(property_id) end) exports('GetApartments', function() return ApartmentsTable end) exports('GetApartment', function(apartment) return Apartment.Get(apartment) end) exports('GetShells', function() return Config.Shells end) lib.callback.register('ps-housing:cb:confirmPurchase', function(amount, street, id) return lib.alertDialog({ header = 'Bekræft Køb', content = 'Er du sikker på at du vil købe '..street..' ' .. id .. ' for ' .. amount .. ' kr?', centered = true, cancel = true, labels = { confirm = "Køb", cancel = "Annuller" } }) end) lib.callback.register('ps-housing:cb:confirmRaid', function(street, id) return lib.alertDialog({ header = 'Ransag', content = 'Vil du ransage '..street..' ' .. id .. '?', centered = true, cancel = true, labels = { confirm = "Ransag", cancel = "Annuller" } }) end) lib.callback.register('ps-housing:cb:ringDoorbell', function() return lib.alertDialog({ header = 'Ring på dørklokken', content = 'Du har ingen nøgle her til, vil du ringe på dørklokken??', centered = true, cancel = true, labels = { confirm = "Ring", cancel = "Annuller" } }) end) lib.callback.register('ps-housing:cb:showcase', function() return lib.alertDialog({ header = 'Vis Ejendom', content = 'Vil du have vist ejendommen?', centered = true, cancel = true, labels = { confirm = "Ja", cancel = "Annuller" } }) end)