Scripts/resources/[ps]/ps-housing/client/client.lua
2024-12-29 21:28:24 +01:00

158 lines
4.2 KiB
Lua

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)