86 lines
2.5 KiB
JavaScript
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
|
|
}
|
|
}) |