Skip to main content

Server Events

All of the server side events can be found below. And is already registered in the file omik_polititablet/server/events.lua.

omik_polititablet:openTablet​

This event is meant to be triggered from the client side to open the tablet for the player.

There is no listener in omik_polititablet/server/events.lua

It has to be triggered from the client side. It is dependent on a source to be able to check the players ranks and permissions.

A better way to open the tablet is to use the Native ExecuteCommand(<command>) and then trigger the command from cfg.openCMD (default: tablet)

Examples​

Open the tablet for the player with a keypress​

RegisterKeyMapping('+openTablet', ' omik_polititablet', 'keyboard', cfg.hotkey)
RegisterCommand('+openTablet', function()
TriggerServerEvent("omik_polititablet:openTablet")
end)

Open the tablet with a command​

RegisterCommand("tablet", function()
TriggerServerEvent("omik_polititablet:openTablet")
end)

omik_polititablet:newBillingEvent​

This event is triggered when a new offense has been registered in the police tablet.

It comes with a lot of information about the offense, and can be used to integrate with other resources.

Data Schema​

The following data is what is sent with the event and stored in the property data

{
officer: {
officer_id: number
badge_number: string
name: string
rank: string
responsible_area: string
phone_number: string
profile_logo: string
employment_date: string
fleetStatus: string
total_cases: number
permissions: [key: string]: 0 | 1
on_duty: number
},
targetCitizen: {
identifier: string
firstname: string
lastname: string
address: string
dateofbirth: string
phone_number: string
sex?: string | number | null
profile_logo: string
},
formattedMail: string,
fineAmount: number,
rawData: [key: string]: {
amount: number,
ticket: {
id: number | string,
type: string,
law: string,
paragraph: string,
title: string,
cols: string
}
}
}

Examples​

Trigger CodeM Billing to create a new billing for the player​

RegisterNetEvent("omik_polititablet:newBillingEvent")
AddEventHandler("omik_polititablet:newBillingEvent", function(data)
-- Source can be nil if the event is triggered from the server
if source == nil then
-- Get source from player identifier if it's not provided
end
exports['codem-billing']:createBilling(source, data.targetCitizen.identifier, data.fineAmount, data.formattedMail, society)
end)

Trigger a kboks email and fine event​

RegisterNetEvent("omik_polititablet:newBillingEvent")
AddEventHandler("omik_polititablet:newBillingEvent", function(data)
-- Source can be nil if the event is triggered from the server
if source == nil then
-- Get source from player identifier if it's not provided
end
local user_id = vRP.getUserId({source})
TriggerEvent('kboks:newticket', user_id, data.targetCitizen.identifier, "Rigspolitiet", data.fineAmount)
TriggerEvent('kboks:newmail', user_id, data.targetCitizen.identifier, "Bøde", data.formattedMail, "Rigspolitiet")
end)

Automatically charge player for the offense(s)​

RegisterNetEvent("omik_polititablet:newBillingEvent")
AddEventHandler("omik_polititablet:newBillingEvent", function(data)
if (cfg.framework == "vrp") then
local receiverSource = vRP.getUserSource({data.targetCitizen.identifier})
if vRP.tryFullPayment({data.targetCitizen.identifier, data.fineAmount}) then
TriggerClientEvent("pNotify:SendNotification", receiverSource, {text = "Du betalte din bøde på "..data.fineAmount.." DKK", type = "info",timeout = (4000),layout = "centerRight",queue = "global",animation = {open = "gta_effects_fade_in", close = "gta_effects_fade_out"}})
else
TriggerClientEvent("pNotify:SendNotification", receiverSource, {text = "Du har ikke nok penge til at betale din bøde", type = "info",timeout = (4000),layout = "centerRight",queue = "global",animation = {open = "gta_effects_fade_in", close = "gta_effects_fade_out"}})
end
elseif (cfg.framework == "esx") then
local xPlayer = ESX.GetPlayerFromIdentifier(data.targetCitizen.identifier)
local accountMoney = xPlayer.getAccount("bank").money
if accountMoney >= data.fineAmount then
xPlayer.removeAccountMoney("bank", data.fineAmount)
TriggerClientEvent("pNotify:SendNotification", xPlayer.source, {text = "Du betalte din bøde på "..data.fineAmount.." DKK", type = "info",timeout = (4000),layout = "centerRight",queue = "global",animation = {open = "gta_effects_fade_in", close = "gta_effects_fade_out"}})
else
TriggerClientEvent("pNotify:SendNotification", xPlayer.source, {text = "Du har ikke nok penge til at betale din bøde", type = "info",timeout = (4000),layout = "centerRight",queue = "global",animation = {open = "gta_effects_fade_in", close = "gta_effects_fade_out"}})
end
elseif (cfg.framework == "qbcore") then
local Player = QBCore.Functions.GetPlayerByCitizenId(data.targetCitizen.identifier)
if Player.PlayerData.accounts.bank.money >= data.fineAmount then
Player.PlayerData.accounts.bank.money = Player.PlayerData.accounts.bank.money - data.fineAmount
TriggerClientEvent("pNotify:SendNotification", Player.PlayerData.source, {text = "Du betalte din bøde på "..data.fineAmount.." DKK", type = "info",timeout = (4000),layout = "centerRight",queue = "global",animation = {open = "gta_effects_fade_in", close = "gta_effects_fade_out"}})
else
TriggerClientEvent("pNotify:SendNotification", Player.PlayerData.source, {text = "Du har ikke nok penge til at betale din bøde", type = "info",timeout = (4000),layout = "centerRight",queue = "global",animation = {open = "gta_effects_fade_in", close = "gta_effects_fade_out"}})
end
end
end)

omik_polititablet:server:newEmployee​

This event is triggered when a new employee has been added to the police tablet.

Examples​

/*
officer_id: number
data: {
identifier: string
badgenumber: string
password: string (encrypted)
rank: string
responsible_area: string
profile_logo: string
certificates: string[]
educations: string[]
permissions: {[key: string]: 0 | 1}
}
*/
RegisterNetEvent("omik_polititablet:server:newEmployee", function(officer_id, data)
print("New employee added to the police tablet with officer_id: " .. officer_id.. " and data: " .. json.encode(data))
end)

omik_polititablet:server:deleteEmployee​

This event is triggered when an employee has been removed from the police tablet.

Examples​

/*
officer_id: number
*/
RegisterNetEvent("omik_polititablet:server:deleteEmployee", function(officer_id)
print("Employee with officer_id: " .. officer_id .. " has been removed from the police tablet")
end)

omik_polititablet:server:editEmployee​

This event is triggered when an employee has been edited in the police tablet.

Examples​

/*
officer_id: number
data: {
officer_id: string
badgenumber: string
rank: string
responsible_area: string
certificates: string[]
educations: string[]
permissions: {[key: string]: 0 | 1}
}
*/
RegisterNetEvent("omik_polititablet:server:editEmployee", function(officer_id, data)
print("Employee with officer_id: " .. officer_id .. " has been edited with data: " .. json.encode(data))
end)

omik_polititablet:server:acceptApplication​

This event is triggered when an application has been accepted in the police tablet.

Examples​

/*
applicationType: "Education" | "Certificate"
title: string
officer_id: number
*/
RegisterNetEvent("omik_polititablet:server:acceptApplication", function(applicationType, title, officer_id)
print("Application with title: " .. title .. " has been accepted for officer_id: " .. officer_id)
end)

omik_polititablet:server:fleetJoin​

This event is triggered when an officer has joined a fleet.

Examples​

/*
role: string
officer: {
officer_id: number
badge_number: string
name: string
patrolNumber: string
}
*/
RegisterNetEvent("omik_polititablet:server:fleetJoin", function(role, officer)
print("Officer with officer_id: " .. officer.officer_id .. " has joined the fleet with role: " .. role)
end)

omik_polititablet:server:fleetLeave​

This event is triggered when an officer has left a fleet.

Examples​

/*
role: string
officer: {
officer_id: number
badge_number: string
name: string
patrolNumber: string
}
*/
RegisterNetEvent("omik_polititablet:server:fleetLeave", function(role, officer)
print("Officer with officer_id: " .. officer.officer_id .. " has left the fleet with role: " .. role)
end)

This event is triggered when an officer has been linked to another officer in a fleet.

Examples​

/*
role: string
linkOfficer: {
officer_id: number
badge_number: string
name: string
patrolNumber: string
}
officer: {
officer_id: number
badge_number: string
name: string
patrolNumber: string
}
*/
RegisterNetEvent("omik_polititablet:server:fleetLink", function(role, linkOfficer, officer)
print("Officer with officer_id: " .. officer.officer_id .. " has been linked to officer with officer_id: " .. linkOfficer.officer_id .. " in the fleet with role: " .. role)
end)

omik_polititablet:server:fleetUpdate​

This is triggered when an officer has been updated in a fleet.

Examples​

/*
role: string
newRole: string
officer: {
officer_id: number
badge_number: string
name: string
patrolNumber: string
}
*/
RegisterNetEvent("omik_polititablet:server:fleetUpdate", function(role, newRole, officer)
print("Officer with officer_id: " .. officer.officer_id .. " has been updated in the fleet from role: " .. role .. " to role: " .. newRole)
end)

omik_polititablet:server:fleetReset​

This is triggered when the fleet has been reset.

Examples​

/*
officer: {
officer_id: number
badge_number: string
name: string
rank: string
responsible_area: string
phone_number: string
profile_logo: string
employment_date: string
fleetStatus: string
total_cases: number
permissions: [key: string]: 0 | 1
on_duty: number
}
*/
RegisterNetEvent("omik_polititablet:server:fleetReset", function(officer)
print("Officer with officer_id: " .. officer.officer_id .. " has reset the fleet management data")
end)

omik_polititablet:server:configUpdated​

This event is triggered when the tablet config has been updated. (not config.lua)

Examples​

RegisterNetEvent("omik_polititablet:server:configUpdated", function(data)
print("Config has been updated")
print(json.encode(data))
end)