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 } })