2026-04-14 17:41:39 +02:00

86 lines
2.5 KiB
JavaScript

const JailedPlayers = {}
// Functions
async function SaveJailData(JailData, type) {
if (type === "Delete") {
await query(`
delete from \`madmin_jaildata\`
where \`identifier\` = '${JailData.identifier}'
`)
JailedPlayers[JailData.source] = undefined
return
}
const { identifier, jailTime, currentTime, reason } = JailData
let result = await query(`
select * from \`madmin_jaildata\`
where \`identifier\` = '${identifier}'
`)
if (result === false) return
if (result.length === 0) {
result = await query(`
insert into \`madmin_jaildata\` (
\`identifier\`, \`jailTime\`, \`currentTime\`, \`reason\`
) values (
'${identifier}', ${jailTime}, ${currentTime}, '${reason.replaceAll("'", "\\'")}'
)
`)
} else {
result = await query(`
update \`madmin_jaildata\`
set \`currentTime\` = ${currentTime}
where \`identifier\` = '${identifier}'
`)
}
}
// Events
RegisterNetEvent("mAdmin:server:PushJailData")
on("mAdmin:server:PushJailData", async (JailData, key) => {
const expectingKey = usersKeys.find(k => sha1(k.key) === key)
if (!expectingKey) return
const PermissionCheck = await checkPermission(expectingKey.rank, "Players", 7)
if (!PermissionCheck) return
JailedPlayers[JailData.source] = JailData
})
RegisterNetEvent("mAdmin:server:DeleteData")
on("mAdmin:server:DeleteData", async (JailData) => {
await SaveJailData(JailData, "Delete")
})
RegisterNetEvent("mAdmin:server:CheckJailData")
on("mAdmin:server:CheckJailData", async (source, identifier) => {
let result = await query(`
select * from \`madmin_jaildata\`
where \`identifier\` = '${identifier}'
`)
if (result === false) return
if (result.length === 0) return
result = result[0]
const JailData = {
jailTime: result.jailTime,
currentTime: result.currentTime,
identifier: identifier,
source: source,
reason: result.reason
}
JailedPlayers[JailData.source] = JailData
emitNet("mAdmin:client:JailPlayerOnJoin", source, JailData)
})
// Handlers
on("playerDropped", () => {
const src = global.source
if (JailedPlayers[src]) {
SaveJailData(JailedPlayers[src])
JailedPlayers[src] = undefined
}
})