From 57ad95d1619ea6fce481b699e942e995566d73e8 Mon Sep 17 00:00:00 2001 From: Vortrex <3858226+VortrexFTW@users.noreply.github.com> Date: Thu, 31 Dec 2020 01:22:05 -0600 Subject: [PATCH] Save job locations func --- scripts/server/job.js | 87 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 85 insertions(+), 2 deletions(-) diff --git a/scripts/server/job.js b/scripts/server/job.js index 1f779ffe..31327723 100644 --- a/scripts/server/job.js +++ b/scripts/server/job.js @@ -12,6 +12,7 @@ function initJobScript() { console.log("[Asshat.Job]: Initializing job script ..."); getServerData().jobs = loadJobsFromDatabase(); + setAllJobDataIndexes(); createAllJobPickups(); createAllJobBlips(); @@ -463,6 +464,27 @@ function startWorking(client) { // --------------------------------------------------------------------------- +function getJobInfoCommand(command, params, client) { + let closestJobLocation = getClosestJobLocation(getPlayerPosition(client)); + + messagePlayerInfo(client, `[#FFFF00][Job Info] [#FFFFFF]Name: [#AAAAAA]${getJobData(closestJobLocation.job).name}, [#FFFFFF]Enabled: [#AAAAAA]${getYesNoFromBool(intToBool(getJobData(closestJobLocation.job).enabled))}, [#FFFFFF]Whitelisted: [#AAAAAA]${getYesNoFromBool(intToBool(getJobData(closestJobLocation.job).whiteListEnabled))}, [#FFFFFF]Blacklisted: [#AAAAAA]${getYesNoFromBool(intToBool(getJobData(closestJobLocation.job).blackListEnabled))}, [#FFFFFF]ID: [#AAAAAA]${getJobData(closestJobLocation.job).id}/${closestJobLocation.job}`); +} + +// --------------------------------------------------------------------------- + +function getJobLocationInfoCommand(command, params, client) { + let closestJobLocation = getClosestJobLocation(getPlayerPosition(client)); + + //if(!getJobData(getJobIdFromDatabaseId(closestJobLocation.job))) { + // messagePlayerError(client, "Job not found!"); + // return false; + //} + + messagePlayerInfo(client, `[#FFFF00][Job Location Info] [#FFFFFF]Job: [#AAAAAA]${getJobData(closestJobLocation.job).name} (${getJobData(closestJobLocation.job).id}/${closestJobLocation.job}), [#FFFFFF]Enabled: [#AAAAAA]${getYesNoFromBool(closestJobLocation.enabled)}, [#FFFFFF]Database ID: [#AAAAAA]${closestJobLocation.databaseId}`); +} + +// --------------------------------------------------------------------------- + function givePlayerJobEquipment(client, equipmentId) { if(!canPlayerUseJobs(client)) { return false; @@ -718,8 +740,7 @@ function createJobLocationCommand(command, params, client) { return false; } - let splitParams = params.split(" "); - let jobId = getJobFromParams(splitParams[0]); + let jobId = getJobFromParams(params); if(!getJobData(jobId)) { messagePlayerError(client, "That job was not found!"); @@ -1186,4 +1207,66 @@ function unFreezeJobVehicleForRouteStop(client) { getPlayerVehicle(client).engine = true; } +// --------------------------------------------------------------------------- + +function getJobIdFromDatabaseId(databaseId) { + for(let i in getServerData().jobs) { + if(getServerData().jobs[i].databaseId == databaseId) { + return i; + } + } + return false; +} + +// --------------------------------------------------------------------------- + +function setAllJobDataIndexes() { + for(let i in getServerData().jobs) { + getServerData().jobs[i].id = i; + } +} + +// --------------------------------------------------------------------------- + +function createJobLocation(job, position, interior, dimension) { + let jobLocationData = serverClasses.jobLocationData(false); + jobLocationData.position = position; + jobLocationData.job = job; + jobLocationData.interior = interior; + jobLocationData.dimension = dimension; + jobLocationData.enabled = true; + + getServerData().jobs[job].locations.push(jobLocationData); + + saveJobLocationToDatabase(jobLocationData); +} + +// --------------------------------------------------------------------------- + +function saveJobLocationToDatabase(jobLocationData) { + if(jobLocationData == null) { + // Invalid vehicle data + return false; + } + + console.log(`[Asshat.Job]: Saving job location ${jobLocationData.databaseId} to database ...`); + let dbConnection = connectToDatabase(); + if(dbConnection) { + // If job location hasn't been added to database, ID will be 0 + if(vehicleData.databaseId == 0) { + let dbQueryString = `INSERT INTO job_loc (job_loc_job, job_loc_enabled, job_loc_pos_x, job_loc_pos_y, job_loc_pos_z, job_loc_int, job_loc_vw) VALUES (${jobLocationData.job}, ${boolToInt(jobLocationData.enabled)}, ${jobLocationData.position.x}, ${jobLocationData.position.y}, ${jobLocationData.position.z}, ${jobLocationData.interior}, ${jobLocationData.dimension})`; + queryDatabase(dbConnection, dbQueryString); + jobLocationData.databaseId = getDatabaseInsertId(dbConnection); + } else { + let dbQueryString = `UPDATE job_loc SET job_loc_job=${jobLocationData.job}, job_loc_enabled=${boolToInt(jobLocationData.enabled)}, job_loc_pos_x=${jobLocationData.position.x}, job_loc_pos_y=${jobLocationData.jobLocationData.y}, job_loc_pos_z=${jobLocationData.jobLocationData.z}, job_loc_int=${jobLocationData.interior}, job_loc_vw=${jobLocationData.dimension} WHERE job_loc_id=${jobLocationData.databaseId}`; + queryDatabase(dbConnection, dbQueryString); + } + disconnectFromDatabase(dbConnection); + return true; + } + console.log(`[Asshat.Job]: Saved job location ${jobLocationData.vehicle.id} to database!`); + + return false; +} + // --------------------------------------------------------------------------- \ No newline at end of file