532 lines
27 KiB
JavaScript
532 lines
27 KiB
JavaScript
app.use("/getPlayerVehicles.lvorex", express.json())
|
|
app.post("/getPlayerVehicles.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 12)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`SELECT * FROM \`player_vehicles\` WHERE \`citizenid\` = '${postBody.uid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length === 0) return res.json({ code: 404, message: [] })
|
|
|
|
const toBeSentVehicles = []
|
|
const Vehicles = await LV.GetAllServerVehicles()
|
|
result.forEach(vehicle => {
|
|
const vehicleCredentials = Vehicles.find(v => v.model === vehicle.vehicle)
|
|
const toBeInserted = {
|
|
brand: vehicleCredentials ? vehicleCredentials.brand : vehicle.vehicle,
|
|
label: vehicleCredentials ? vehicleCredentials.name : vehicle.vehicle,
|
|
price: vehicleCredentials ? vehicleCredentials.price : 0,
|
|
name: vehicleCredentials ? vehicleCredentials.model : vehicle.vehicle,
|
|
bought: vehicleCredentials ? vehicleCredentials.shop : "Unknown",
|
|
plate: vehicle.plate,
|
|
storedIn: vehicle.garage,
|
|
km: vehicle.drivingdistance,
|
|
status: vehicle.state,
|
|
fuelLevel: vehicle.fuel,
|
|
engineHealth: parseInt(parseInt(vehicle.engine) / 10),
|
|
bodyHealth: parseInt(parseInt(vehicle.body) / 10)
|
|
}
|
|
toBeSentVehicles.push(toBeInserted)
|
|
})
|
|
|
|
res.json({ code: 200, message: toBeSentVehicles })
|
|
} else {
|
|
let result = await query(`select * from \`owned_vehicles\` where \`owner\` = '${postBody.uid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length === 0) return res.json({ code: 404, message: [] })
|
|
|
|
const toBeSentVehicles = []
|
|
|
|
for await (const vehicle of result) {
|
|
const MPCredits = JSON.parse(vehicle.vehicle)
|
|
let VehicleResult = await LV.GetAllServerVehicles()
|
|
if (VehicleResult === false) continue
|
|
let VehicleCredentials = undefined
|
|
VehicleResult.forEach(vc => {
|
|
if (VehicleCredentials !== undefined) return
|
|
const ModelHash = GetHashKey(vc.model)
|
|
if (ModelHash === MPCredits.model) {
|
|
VehicleCredentials = vc
|
|
} else return
|
|
})
|
|
if (!VehicleCredentials) {
|
|
VehicleCredentials = {
|
|
name: "Not found.",
|
|
price: 0,
|
|
model: MPCredits.model
|
|
}
|
|
}
|
|
|
|
const toBeInserted = {
|
|
brand: VehicleCredentials.name.split(" ")[0],
|
|
label: VehicleCredentials.name,
|
|
price: VehicleCredentials.price,
|
|
name: VehicleCredentials.model,
|
|
bought: "Unknown",
|
|
plate: vehicle.plate,
|
|
storedIn: vehicle.parking,
|
|
km: vehicle.mileage,
|
|
status: vehicle.stored,
|
|
fuelLevel: MPCredits.fuelLevel ? MPCredits.fuelLevel : -1,
|
|
engineHealth: MPCredits.engineHealth ? parseInt(parseInt(MPCredits.engineHealth) / 10) : -1,
|
|
bodyHealth: MPCredits.bodyHealth ? parseInt(parseInt(MPCredits.bodyHealth) / 10) : -1
|
|
}
|
|
toBeSentVehicles.push(toBeInserted)
|
|
}
|
|
|
|
res.json({ code: 200, message: toBeSentVehicles })
|
|
}
|
|
})
|
|
|
|
async function checkPlateFromDatabase(plate, res) {
|
|
let result = undefined
|
|
if (config.Framework.includes("qb")) {
|
|
result = await query(`SELECT * FROM \`player_vehicles\` WHERE \`plate\` = '${plate}'`)
|
|
} else {
|
|
result = await query(`select * from \`owned_vehicles\` where \`plate\` = '${plate}'`)
|
|
}
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length > 0) return false
|
|
return true
|
|
}
|
|
|
|
async function randomPlate(res) {
|
|
const plate = config.Vehicle.PlateSyntax.replace(/0/g, function(match) { return randomInteger(1) }).replace(/A/g, function(match) { return randomString(1) })
|
|
const isPlateAvailable = await checkPlateFromDatabase(plate, res)
|
|
if (isPlateAvailable === false) {
|
|
await randomPlate(res)
|
|
return
|
|
} else {
|
|
return plate
|
|
}
|
|
}
|
|
|
|
function generateVehicleMods(name, plate) {
|
|
return `{"color2":0,"model":${GetHashKey(name)},"modKit19":-1,"modFrame":-1,"modXenon":false,"tireBurstState":{"1":false,"2":false,"3":false,"4":false,"5":false,"0":false},"modAerials":-1,"tyreSmokeColor":[255,255,255],"modRoof":-1,"modAPlate":-1,"tireHealth":{"1":1000.0,"2":1000.0,"3":1000.0,"0":1000.0},"modTurbo":false,"modBrakes":-1,"modGrille":-1,"modRearBumper":-1,"modKit49":-1,"windowStatus":{"1":true,"2":true,"3":true,"4":false,"5":false,"6":true,"7":true,"0":true},"modEngineBlock":-1,"modTrimB":-1,"modRightFender":-1,"modSpoilers":-1,"modHood":-1,"modFrontBumper":-1,"plate":"${plate}","modKit17":-1,"oilLevel":5.56029764306997,"modCustomTiresR":false,"modLivery":-1,"modEngine":-1,"modPlateHolder":-1,"modKit47":-1,"doorStatus":{"1":false,"2":false,"3":false,"4":false,"5":false,"0":false},"modHydrolic":-1,"modSeats":-1,"modExhaust":-1,"modTrimA":-1,"modVanityPlate":-1,"modArmor":-1,"modSpeakers":-1,"modHorns":-1,"neonEnabled":[false,false,false,false],"wheelSize":0.0,"wheelColor":156,"extras":{"10":true,"11":false},"modSteeringWheel":-1,"modShifterLeavers":-1,"modOrnaments":-1,"modFrontWheels":-1,"headlightColor":255,"modAirFilter":-1,"modStruts":-1,"neonColor":[255,0,255],"bodyHealth":998.4705910484217,"liveryRoof":-1,"tireBurstCompletely":{"1":false,"2":false,"3":false,"4":false,"5":false,"0":false},"dirtLevel":6.35462587779425,"modTank":-1,"wheelWidth":0.0,"tankHealth":1000.0592475178704,"dashboardColor":0,"modDial":-1,"modDoorSpeaker":-1,"fuelLevel":97.70237287108663,"modTransmission":-1,"modDashboard":-1,"modBackWheels":-1,"modWindows":-1,"modSmokeEnabled":false,"modFender":-1,"interiorColor":0,"color1":4,"modKit21":-1,"modSideSkirt":-1,"windowTint":-1,"plateIndex":2,"wheels":1,"modCustomTiresF":false,"engineHealth":997.6762628136975,"modSuspension":-1,"xenonColor":255,"pearlescentColor":111,"modTrunk":-1,"modArchCover":-1}`
|
|
}
|
|
|
|
app.use("/giveVehicleToPlayer.lvorex", express.json())
|
|
app.post("/giveVehicleToPlayer.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 13)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
const Vehicles = await LV.GetAllServerVehicles()
|
|
const vehicleCredentials = Vehicles.find(v => v.model === postBody.modelName)
|
|
if (!vehicleCredentials) return res.json({ code: 404, message: "Vehicle not found." })
|
|
|
|
let plate = postBody.plate
|
|
if (plate === "") {
|
|
plate = await randomPlate(res)
|
|
}
|
|
if (postBody.garage === "") {
|
|
postBody.garage = "pillboxgarage"
|
|
}
|
|
|
|
let result = await query(`SELECT * FROM \`player_vehicles\` WHERE \`plate\` = '${plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length > 0) return res.json({ code: 404, message: "This plate is using." })
|
|
|
|
result = await query(`INSERT INTO \`player_vehicles\` (
|
|
\`license\`, \`citizenid\`, \`vehicle\`, \`hash\`, \`mods\`, \`plate\`, \`garage\`, \`state\`, \`balance\`, \`paymentamount\`, \`paymentsleft\`, \`financetime\`
|
|
) VALUES (
|
|
'${postBody.license}',
|
|
'${postBody.uid}',
|
|
'${postBody.modelName}',
|
|
'${GetHashKey(postBody.modelName)}',
|
|
'${generateVehicleMods(postBody.modelName, plate)}',
|
|
'${plate}',
|
|
'${postBody.garage}',
|
|
1,
|
|
0,
|
|
0,
|
|
0,
|
|
0
|
|
)`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
const toBeInserted = {
|
|
brand: vehicleCredentials ? vehicleCredentials.brand : postBody.modelName,
|
|
label: vehicleCredentials ? vehicleCredentials.name : postBody.modelName,
|
|
price: vehicleCredentials ? vehicleCredentials.price : 0,
|
|
name: vehicleCredentials ? vehicleCredentials.model : postBody.modelName,
|
|
bought: vehicleCredentials ? vehicleCredentials.shop : "Unknown",
|
|
plate: plate,
|
|
storedIn: postBody.garage,
|
|
km: 0,
|
|
status: 1
|
|
}
|
|
|
|
res.json({ code: 200, message: toBeInserted })
|
|
} else {
|
|
const Vehicles = await LV.GetAllServerVehicles()
|
|
let vehicleCredentials = Vehicles.find(v => v.model === postBody.modelName)
|
|
if (vehicleCredentials === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (!vehicleCredentials) return res.json({ code: 404, message: "Vehicle not found." })
|
|
|
|
let plate = postBody.plate
|
|
if (plate === "") {
|
|
plate = await randomPlate(res)
|
|
}
|
|
if (postBody.garage === "") {
|
|
postBody.garage = "SanAndreasAvenue"
|
|
}
|
|
|
|
let result = await query(`SELECT * FROM \`owned_vehicles\` WHERE \`plate\` = '${plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length > 0) return res.json({ code: 404, message: "This plate is using." })
|
|
|
|
result = await query(`
|
|
insert into \`owned_vehicles\` (
|
|
\`owner\`, \`plate\`, \`vehicle\`, \`type\`, \`stored\`, \`parking\`, \`mileage\`
|
|
) values (
|
|
'${postBody.uid}',
|
|
'${plate}',
|
|
'${generateVehicleMods(postBody.modelName, plate)}',
|
|
'car',
|
|
1,
|
|
'${postBody.garage}',
|
|
0
|
|
)
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
const toBeInserted = {
|
|
brand: vehicleCredentials.name.split(" ")[0],
|
|
label: vehicleCredentials.name,
|
|
price: vehicleCredentials.price,
|
|
name: postBody.modelName,
|
|
bought: "Unknown",
|
|
plate: plate,
|
|
storedIn: postBody.garage,
|
|
km: 0,
|
|
status: 0,
|
|
}
|
|
|
|
res.json({ code: 200, message: toBeInserted })
|
|
}
|
|
})
|
|
|
|
app.use("/changeVehicleHash.lvorex", express.json())
|
|
app.post("/changeVehicleHash.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
const Vehicles = await LV.GetAllServerVehicles()
|
|
const vehicleCredentials = Vehicles.find(v => v.model === postBody.modelName)
|
|
let result = await query(`UPDATE \`player_vehicles\` SET \`vehicle\` = '${postBody.modelName}', \`hash\` = '${GetHashKey(postBody.modelName)}' WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
const toBeInserted = {
|
|
brand: vehicleCredentials ? vehicleCredentials.brand : postBody.modelName,
|
|
label: vehicleCredentials ? vehicleCredentials.name : postBody.modelName,
|
|
price: vehicleCredentials ? vehicleCredentials.price : 0,
|
|
name: vehicleCredentials ? vehicleCredentials.model : postBody.modelName,
|
|
bought: vehicleCredentials ? vehicleCredentials.shop : "Unknown"
|
|
}
|
|
|
|
res.json({ code: 200, message: toBeInserted })
|
|
} else if (config.Framework.includes("esx")) {
|
|
const Vehicles = await LV.GetAllServerVehicles()
|
|
let vehicleResult = Vehicles.find(v => v.model === postBody.modelName)
|
|
if (vehicleResult === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (vehicleResult === -1) return res.json({ code: 404, message: "Vehicle not found." })
|
|
|
|
let getVehicleCredentials = await query(`select * from \`owned_vehicles\` where \`plate\` = '${postBody.plate}'`)
|
|
if (getVehicleCredentials === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (vehicleResult.length === 0) return res.json({ code: 404, message: "Vehicle not found." })
|
|
getVehicleCredentials = getVehicleCredentials [0]
|
|
|
|
let ModifiedVehicles = JSON.parse(getVehicleCredentials.vehicle)
|
|
ModifiedVehicles.model = GetHashKey(postBody.modelName)
|
|
|
|
let result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`vehicle\` = '${JSON.stringify(ModifiedVehicles)}'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
const toBeInserted = {
|
|
brand: vehicleResult.name.split(" ")[0],
|
|
label: vehicleResult.name,
|
|
price: vehicleResult.price,
|
|
name: postBody.modelName,
|
|
bought: "Unknown",
|
|
}
|
|
|
|
res.json({ code: 200, message: toBeInserted })
|
|
}
|
|
})
|
|
|
|
app.use("/changeVehiclePlate.lvorex", express.json())
|
|
app.post("/changeVehiclePlate.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
let result = await query(`SELECT * FROM \`${config.Framework.includes("qb") ? "player_vehicles" : "owned_vehicles"}\` WHERE \`plate\` = '${postBody.newPlate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length > 0) return res.json({ code: 404, message: "This plate is using." })
|
|
|
|
if (config.Framework.includes("esx")) {
|
|
result = await query(`select * from \`owned_vehicles\` where \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result[0]
|
|
|
|
let ModifiedVehicles = JSON.parse(result.vehicle)
|
|
ModifiedVehicles.plate = postBody.newPlate
|
|
result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`vehicle\` = '${JSON.stringify(ModifiedVehicles)}', \`plate\` = '${postBody.newPlate}'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
} else {
|
|
result = await query(`UPDATE \`player_vehicles\` SET \`plate\` = '${postBody.newPlate}' WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
|
|
res.json({ code: 200, message: "Changed." })
|
|
})
|
|
|
|
app.use("/changeVehicleOwner.lvorex", express.json())
|
|
app.post("/changeVehicleOwner.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`SELECT * FROM \`players\` WHERE \`citizenid\` = '${postBody.newUid}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
if (result.length === 0) return res.json({ code: 404, message: "Player not found." })
|
|
result = result [0]
|
|
|
|
const newOwnerLicense = result.license
|
|
result = await query(`UPDATE \`player_vehicles\` SET \`license\` = '${newOwnerLicense}', \`citizenid\` = '${postBody.newUid}' WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
res.json({ code: 200, message: "Transfered." })
|
|
} else if (config.Framework.includes("esx")) {
|
|
let result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`owner\` = '${postBody.newUid}'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
res.json({ code: 200, message: "Transfered." })
|
|
}
|
|
})
|
|
|
|
app.use("/repairVehicle.lvorex", express.json())
|
|
app.post("/repairVehicle.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`
|
|
SELECT * FROM \`player_vehicles\`
|
|
WHERE \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
const vehicleMods = JSON.parse(result.mods)
|
|
|
|
Object.entries(vehicleMods.doorStatus).forEach(i => vehicleMods.doorStatus[i[0]] = false)
|
|
Object.entries(vehicleMods.windowStatus).forEach(i => vehicleMods.windowStatus[i[0]] = true)
|
|
Object.entries(vehicleMods.tireBurstState).forEach(i => vehicleMods.tireBurstState[i[0]] = false)
|
|
Object.entries(vehicleMods.tireHealth).forEach(i => vehicleMods.tireHealth[i[0]] = Number(1000.0))
|
|
vehicleMods.dirtLevel = 0
|
|
|
|
result = await query(`UPDATE \`player_vehicles\` SET \`engine\` = 1000, \`body\` = 1000, \`mods\` = '${JSON.stringify(vehicleMods)}' WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
} else {
|
|
let result = await query(`
|
|
select * from \`owned_vehicles\`
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
const VehicleCredentials = JSON.parse(result.vehicle)
|
|
|
|
Object.entries(VehicleCredentials.doorsBroken).forEach(i => VehicleCredentials.doorsBroken[i[0]] = false)
|
|
Object.entries(VehicleCredentials.windowsBroken).forEach(i => VehicleCredentials.windowsBroken[i[0]] = false)
|
|
Object.entries(VehicleCredentials.tyreBurst).forEach(i => VehicleCredentials.tyreBurst[i[0]] = false)
|
|
VehicleCredentials.bodyHealth = 1000
|
|
VehicleCredentials.tankHealth = 1000
|
|
VehicleCredentials.engineHealth = 1000
|
|
VehicleCredentials.fuelLevel = 100
|
|
|
|
result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`vehicle\` = '${JSON.stringify(VehicleCredentials)}'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
|
|
emitNet("mAdmin:RepairVehicle", -1, postBody.plate)
|
|
res.json({ code: 200, message: "Repaired." })
|
|
})
|
|
|
|
app.use("/despawnVehicle.lvorex", express.json())
|
|
app.post("/despawnVehicle.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`UPDATE \`player_vehicles\` SET \`state\` = 1 WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
} else if (config.Framework.includes("esx")) {
|
|
let result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`stored\` = 1, \`parking\` = 'SanAndreasAvenue'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
|
|
emitNet("mAdmin:DespawnVehicle", -1, postBody.plate)
|
|
res.json({ code: 200, message: "Despawned." })
|
|
})
|
|
|
|
app.use("/changeVehicleFuelLevel.lvorex", express.json())
|
|
app.post("/changeVehicleFuelLevel.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`UPDATE \`player_vehicles\` SET \`fuel\` = ${postBody.newLevel} WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
} else if (config.Framework.includes("esx")) {
|
|
let result = await query(`
|
|
select * from \`owned_vehicles\`
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
const VehicleCredentials = JSON.parse(result.vehicle)
|
|
VehicleCredentials.fuelLevel = postBody.newLevel
|
|
|
|
result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`vehicle\` = '${JSON.stringify(VehicleCredentials)}'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
// const randomKey = crypto.randomBytes(20).toString("hex")
|
|
// const randomIndex = crypto.randomInt(200)
|
|
// SQLKeys[randomIndex] = { key: randomKey }
|
|
emitNet("mAdmin:ChangeFuelLevel", -1, postBody.plate, postBody.newLevel)
|
|
res.json({ code: 200, message: "Changed." })
|
|
})
|
|
|
|
app.use("/changeVehicleHealth.lvorex", express.json())
|
|
app.post("/changeVehicleHealth.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`UPDATE \`player_vehicles\` SET \`${postBody.type === "Engine" ? "engine" : "body"}\` = ${postBody.newLevel} WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
} else if (config.Framework.includes("esx")) {
|
|
let result = await query(`
|
|
select * from \`owned_vehicles\`
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
const VehicleCredentials = JSON.parse(result.vehicle)
|
|
VehicleCredentials[postBody.type === "Engine" ? 'engineHealth' : 'bodyHealth'] = Number(postBody.newLevel) * 10
|
|
|
|
result = await query(`
|
|
update \`owned_vehicles\`
|
|
set \`vehicle\` = '${JSON.stringify(VehicleCredentials)}'
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
}
|
|
// const randomKey = crypto.randomBytes(20).toString("hex")
|
|
// const randomIndex = crypto.randomInt(200)
|
|
// SQLKeys[randomIndex] = { key: randomKey }
|
|
emitNet("mAdmin:ChangeVehicleHealth", -1, postBody.plate, parseInt(postBody.newLevel), postBody.type)
|
|
res.json({ code: 200, message: "Changed." })
|
|
})
|
|
|
|
app.use("/deleteVehicle.lvorex", express.json())
|
|
app.post("/deleteVehicle.lvorex", async (req, res) => {
|
|
const postBody = req.body
|
|
const { keyFound, userKey } = await controlKey(req, postBody.key)
|
|
|
|
if (keyFound === false) return res.json({ code: 404, message: "Not authorized." })
|
|
const PermissionCheck = await checkPermission(userKey.rank, "Players", 15)
|
|
if (!PermissionCheck) return res.json({ code: 401, message: "Your rank is not enough." })
|
|
let VehicleStatus = 0
|
|
|
|
if (config.Framework.includes("qb")) {
|
|
let result = await query(`SELECT * FROM \`player_vehicles\` WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
VehicleStatus = result.state
|
|
} else if (config.Framework.includes("esx")) {
|
|
let result = await query(`
|
|
select * from \`owned_vehicles\`
|
|
where \`plate\` = '${postBody.plate}'
|
|
`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
result = result [0]
|
|
|
|
VehicleStatus = result.stored
|
|
}
|
|
|
|
let result = await query(`DELETE FROM \`${config.Framework.includes("qb") ? "player_vehicles" : "owned_vehicles"}\` WHERE \`plate\` = '${postBody.plate}'`)
|
|
if (result === false) return res.json({ code: 404, message: "SQL Error Appeared." })
|
|
|
|
if (VehicleStatus === 0) {
|
|
emitNet("mAdmin:DespawnVehicle", -1, postBody.plate)
|
|
}
|
|
|
|
res.json({ code: 200, message: "Deleted." })
|
|
}) |