More JSDoc
This commit is contained in:
@@ -44,13 +44,6 @@ const V_JOB_ROUTE_LOC_TYPE_FIRE = 5; // Scripted fire, placed on build
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @class Representing a job's data. Loaded and saved in the database
|
* @class Representing a job's data. Loaded and saved in the database
|
||||||
* @property {Array.<JobEquipmentData>} equipment
|
|
||||||
* @property {Array.<JobUniformData>} uniforms
|
|
||||||
* @property {Array.<JobLocationData>} locations
|
|
||||||
* @property {Array.<JobRouteData>} routes
|
|
||||||
* @property {Array.<JobWhiteListData>} whiteList
|
|
||||||
* @property {Array.<JobBlackListData>} blackList
|
|
||||||
* @property {Array.<JobRankData>} ranks
|
|
||||||
*/
|
*/
|
||||||
class JobData {
|
class JobData {
|
||||||
constructor(dbAssoc = false) {
|
constructor(dbAssoc = false) {
|
||||||
@@ -70,12 +63,25 @@ class JobData {
|
|||||||
this.whoCreated = 0;
|
this.whoCreated = 0;
|
||||||
this.whenCreated = 0;
|
this.whenCreated = 0;
|
||||||
|
|
||||||
|
/** @type {Array.<JobEquipmentData>} */
|
||||||
this.equipment = [];
|
this.equipment = [];
|
||||||
|
|
||||||
|
/** @type {Array.<JobUniformData>} */
|
||||||
this.uniforms = [];
|
this.uniforms = [];
|
||||||
|
|
||||||
|
/** @type {Array.<JobLocationData>} */
|
||||||
this.locations = [];
|
this.locations = [];
|
||||||
|
|
||||||
|
/** @type {Array.<JobWhiteListData>} */
|
||||||
this.whiteList = [];
|
this.whiteList = [];
|
||||||
|
|
||||||
|
/** @type {Array.<JobBlackListData>} */
|
||||||
this.blackList = [];
|
this.blackList = [];
|
||||||
|
|
||||||
|
/** @type {Array.<JobRouteData>} */
|
||||||
this.routes = [];
|
this.routes = [];
|
||||||
|
|
||||||
|
/** @type {Array.<JobRankData>} */
|
||||||
this.ranks = [];
|
this.ranks = [];
|
||||||
|
|
||||||
if (dbAssoc) {
|
if (dbAssoc) {
|
||||||
@@ -130,11 +136,13 @@ class JobRouteData {
|
|||||||
//this.failedMessage = "";
|
//this.failedMessage = "";
|
||||||
this.locationArriveMessage = "";
|
this.locationArriveMessage = "";
|
||||||
this.locationGotoMessage = "";
|
this.locationGotoMessage = "";
|
||||||
this.locations = [];
|
|
||||||
this.whoCreated = 0;
|
this.whoCreated = 0;
|
||||||
this.whenCreated = 0;
|
this.whenCreated = 0;
|
||||||
this.sphere = null;
|
this.sphere = null;
|
||||||
|
|
||||||
|
/** @type {Array.<JobRouteLocationData>} */
|
||||||
|
this.locations = [];
|
||||||
|
|
||||||
if (dbAssoc) {
|
if (dbAssoc) {
|
||||||
this.databaseId = toInteger(dbAssoc["job_route_id"]);
|
this.databaseId = toInteger(dbAssoc["job_route_id"]);
|
||||||
this.name = toString(dbAssoc["job_route_name"]);
|
this.name = toString(dbAssoc["job_route_name"]);
|
||||||
@@ -213,10 +221,12 @@ class JobEquipmentData {
|
|||||||
this.index = -1;
|
this.index = -1;
|
||||||
this.jobIndex = -1;
|
this.jobIndex = -1;
|
||||||
this.needsSaved = false;
|
this.needsSaved = false;
|
||||||
this.items = [];
|
|
||||||
this.whoCreated = 0;
|
this.whoCreated = 0;
|
||||||
this.whenCreated = 0;
|
this.whenCreated = 0;
|
||||||
|
|
||||||
|
/** @type {Array.<JobEquipmentItemData>} */
|
||||||
|
this.items = [];
|
||||||
|
|
||||||
if (dbAssoc) {
|
if (dbAssoc) {
|
||||||
this.databaseId = dbAssoc["job_equip_id"];
|
this.databaseId = dbAssoc["job_equip_id"];
|
||||||
this.job = dbAssoc["job_equip_job"];
|
this.job = dbAssoc["job_equip_job"];
|
||||||
@@ -458,7 +468,7 @@ class JobBlackListData {
|
|||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
|
|
||||||
class JobRouteLocationType {
|
class JobRouteLocationTypeData {
|
||||||
constructor(jobRouteLocationTypeId, name, animStart = "", animStop = "", inVehicle = false, nearVehicle = false, nearVehicleDistance = 5.0) {
|
constructor(jobRouteLocationTypeId, name, animStart = "", animStop = "", inVehicle = false, nearVehicle = false, nearVehicleDistance = 5.0) {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -469,59 +479,59 @@ class JobRouteLocationType {
|
|||||||
// For use with the /jobrouteloctype command
|
// For use with the /jobrouteloctype command
|
||||||
let jobRouteLocationTypes = {
|
let jobRouteLocationTypes = {
|
||||||
[V_GAME_GTA_III]: [
|
[V_GAME_GTA_III]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
|
|
||||||
[V_GAME_GTA_VC]: [
|
[V_GAME_GTA_VC]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
|
|
||||||
[V_GAME_GTA_SA]: [
|
[V_GAME_GTA_SA]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
|
|
||||||
[V_GAME_GTA_IV]: [
|
[V_GAME_GTA_IV]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
|
|
||||||
[V_GAME_MAFIA_ONE]: [
|
[V_GAME_MAFIA_ONE]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
|
|
||||||
[V_GAME_MAFIA_TWO]: [
|
[V_GAME_MAFIA_TWO]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
|
|
||||||
[V_GAME_MAFIA_ONE_DE]: [
|
[V_GAME_MAFIA_ONE_DE]: [
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_CHECKPOINT, "Checkpoint"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GROUND_GARBAGE, "GroundGarbage"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_GARBAGE_BIN, "GarbagePickup"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_BURNING_VEHICLE, "BurningVehicle"),
|
||||||
new JobRouteLocationType(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
new JobRouteLocationTypeData(V_JOB_ROUTE_LOC_TYPE_INJURED_PED, "InjuredPed"),
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4242,4 +4252,81 @@ function getJobRankFromParams(jobIndex, params) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
function getJobRoutesCommand(command, params, client) {
|
||||||
|
let closestJobLocation = getClosestJobLocation(getPlayerPosition(client));
|
||||||
|
|
||||||
|
if (!closestJobLocation) {
|
||||||
|
messagePlayerAlert(client, getLocaleString(client, "InvalidJob"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let jobData = getJobData(closestJobLocation.jobIndex);
|
||||||
|
|
||||||
|
let jobRoutesList = jobData.routes.map(function (r) {
|
||||||
|
return `{chatBoxListIndex}${r.index}: ${(r.enabled) ? "{softGreen}" : "{softRed}"}${r.name} {ALTCOLOUR}(${r.locations.length} stops, added ${getTimeDifferenceDisplay(getCurrentUnixTimestamp(), r.whenCreated)} ago))`;
|
||||||
|
});
|
||||||
|
let chunkedList = splitArrayIntoChunks(jobRoutesList, 4);
|
||||||
|
|
||||||
|
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, " ", `${jobData.name}, Location ${closestJobLocation.index}`)));
|
||||||
|
for (let i in chunkedList) {
|
||||||
|
messagePlayerInfo(client, chunkedList[i].join(", "));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ===========================================================================
|
||||||
|
|
||||||
|
function getJobRouteInfoCommand(command, params, client) {
|
||||||
|
if (areParamsEmpty(params)) {
|
||||||
|
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!areThereEnoughParams(params, 2, " ")) {
|
||||||
|
messagePlayerSyntax(client, getCommandSyntaxText(command));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let jobIndex = getJobFromParams(getParam(params, " ", 1));
|
||||||
|
if (jobIndex == -1) {
|
||||||
|
messagePlayerSyntax(client, getLocaleString(client, "InvalidJob"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let routeIndex = getJobRouteFromParams(getParam(params, " ", 2), jobIndex);
|
||||||
|
if (routeIndex == -1) {
|
||||||
|
messagePlayerSyntax(client, getLocaleString(client, "InvalidJobRoute"));
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let jobRouteData = getJobRouteData(jobIndex, routeIndex);
|
||||||
|
let jobData = getJobData(jobRouteData.jobIndex);
|
||||||
|
|
||||||
|
let tempStats = [
|
||||||
|
[`ID`, `${jobRouteData.index}/${jobRouteData.databaseId}`],
|
||||||
|
[`Job`, `${jobData.name}`],
|
||||||
|
[`Name`, `${jobRouteData.name}`],
|
||||||
|
[`Added By`, `${loadAccountFromId(jobRouteData.whoCreated).name}`],
|
||||||
|
[`Added On`, `${new Date(jobRouteData.whenCreated).toLocaleDateString("en-GB")}`],
|
||||||
|
[`Enabled`, `${getYesNoFromBool(jobRouteData.enabled)}`],
|
||||||
|
[`Stops`, `${jobRouteData.locations.length}`],
|
||||||
|
[`Pay`, `${jobRouteData.pay}`],
|
||||||
|
[`Start Message`, `${jobRouteData.startMessage}`],
|
||||||
|
[`Finish Message`, `${jobRouteData.finishMessage}`],
|
||||||
|
[`Location Goto Message`, `${jobRouteData.locationGotoMessage}`],
|
||||||
|
[`Location Arrive Message`, `${jobRouteData.locationArriveMessage}`],
|
||||||
|
[`Location Arrive Message`, `${jobRouteData.locationArriveMessage}`],
|
||||||
|
[`Vehicle Colour`, `${getVehicleColourInfoString(jobRouteData.vehicleColour1, false)}, ${getVehicleColourInfoString(jobRouteData.vehicleColour2, false)}`],
|
||||||
|
];
|
||||||
|
|
||||||
|
let stats = tempStats.map(stat => `{chatBoxListIndex}${stat[0]}: {ALTCOLOUR}${stat[1]}{MAINCOLOUR}`);
|
||||||
|
|
||||||
|
messagePlayerNormal(client, makeChatBoxSectionHeader(getLocaleString(client, "HeaderJobRouteInfo", `${jobData.name}, Location ${jobRouteData.index}`)));
|
||||||
|
let chunkedList = splitArrayIntoChunks(stats, 3);
|
||||||
|
for (let i in chunkedList) {
|
||||||
|
messagePlayerInfo(client, chunkedList[i].join(", "));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ===========================================================================
|
// ===========================================================================
|
||||||
Reference in New Issue
Block a user