Deltarix Scripts
TebexDiscord
  • Information
    • About Me - Deltarix
  • Keymaster
    • FiveM Asset Escrow
    • Authentication
    • Transfers
  • Paid Assets
    • MDT V3
      • Setup Guide
      • Configurations
        • Settings
        • Graphics
        • Locales
        • Themes
      • Exports
        • Server
          • OpenMDT
          • CloseMDT
          • CreateLog
          • GetBoloByLinkedId
          • GetIdentifierByStateId
          • GetOfficerByBadgenumber
          • GetOfficerByStateId
          • GetOfficerExists
          • GetOfficerFiredByStateId
          • GetOfficerSuspendedByStateId
          • GetPlayerFullNameByStateId
          • GetStateIdBySource
          • GetWantedByLinkedId
      • Public
        • Bridges
          • Server
            • Framework
              • qbx_core
              • qb-core
              • es_extended
            • Garage
              • qbx_garages
              • qb-garages
              • jg-advancedgarages
            • Inventory
              • ox_inventory
            • Licence
              • qbx_core
              • qb-core
            • Media
              • fivemanage
            • Property
              • qbx_properties
              • qb-apartments
              • qb-houses
              • qb-apartments & qb-housing
              • nolag_properties
              • qbx_properties & nolag_properties
        • Functions
          • Server
            • Create Card
            • Log
            • Prints
          • Client
            • Waypoint
            • Anim
      • Dependencies
    • MDT V2
      • Setup
      • Locales
      • Configurations
        • Server
        • Client
        • Settings
        • 10 Codes
        • Commands
      • Exports
        • Server
          • OpenMDT
          • OpenVehicleDetailsInMDT
          • GetStateId
          • GetOfficer
          • GetPlayerWanted
          • GetPlateFlagged
          • GetOfficerSuspended
          • GetWeaponRegistered
          • GetOfficerClockedIn
          • GetClosestCamera
          • CreateWeapon
          • CreateOfficer
          • DeleteOfficer
          • UpdateCitizenData
          • UpdateCitizenPoints
          • ToggleCamera
          • ToggleCameraTimeout
          • ToggleClock
        • Client
          • OpenMDT
          • InsertPhotoToGallery
      • Bridges
        • Server
          • Framework
            • es_extended
            • qb-core
            • qbx_core
          • Garage
            • esx_garage
            • qb-garages
            • qbx_garages
          • Inventory
            • ox_inventory
            • qb-inventory
          • Licence
            • es_extended
            • qb-core
            • qbx_core
          • Property
            • esx_property
            • qb-apartments
            • qbx_apartments
          • Utilities
            • Logger
        • Client
          • Garage
            • esx_garage
            • qb-garages
            • qbx_garages
          • Utilities
            • Camera
      • Dependencies
      • Known Bugs
      • Common Issues and Troubleshooting
    • Dispatch
      • Exports
        • Server
          • Notifications
          • IsDispatcher
          • GetDispatchersByGroup
          • GetGroups
          • GetStateId
        • Client
          • defaultNotification
          • officerNotification
          • dispatchNotification
          • Copy of dispatchNotification
      • Dependencies
Powered by GitBook
On this page

Was this helpful?

  1. Paid Assets
  2. MDT V3
  3. Public
  4. Bridges
  5. Server
  6. Framework

qb-core

if not GetResourceState('qb-core') == 'started' then return end

local QBCore = exports['qb-core']:GetCoreObject()

Framework = {
  ---@param source number
  ---@return string|nil
  getIdentifierBySource = function(source)
    if not source or type(source) ~= 'number' or not GetPlayerName(source) then
      prints.error('Invalid source provided')
      return nil
    end

    local player = QBCore.Functions.GetPlayer(source)
    if not player then
      prints.error('Player not found for source: %s', source)
      return nil
    end

    local identifier = player.PlayerData.citizenid
    if not identifier then
      prints.error('Identifier not found for player: %s', player.PlayerData.citizenid)
      return nil
    end

    return identifier
  end,

  ---@param stateid string
  ---@return string
  getPlayerGender = function(stateid)
    local result = MySQL.single.await(
      [[
        SELECT
          JSON_UNQUOTE(JSON_EXTRACT(`charinfo`, '$.gender')) AS gender
        FROM
          `players`
        WHERE
          `citizenid` = ? 
      ]], { stateid }
    )

    if not result or not result.gender then
      prints.error('Gender not found for stateid: %s', stateid)
      return 'Unknown'
    end

    local gender = tonumber(result.gender)
    if gender == 0 then
      return 'Male'
    elseif gender == 1 then
      return 'Female'
    else
      prints.error('Invalid gender value for stateid: %s', stateid)
      return 'Unknown'
    end
  end,

  ---@param stateid string
  ---@return table A list of jobs with keys: label, value, coords<optional>
  getPlayerEmployment = function(stateid)
    local result = MySQL.single.await(
      [[
        SELECT
          JSON_UNQUOTE(JSON_EXTRACT(`job`, '$.label')) AS label,
          JSON_UNQUOTE(JSON_EXTRACT(`job`, '$.grade.name')) AS value
        FROM
          `players`
        WHERE
          `citizenid` = ?
      ]], { stateid }
    )

    return { result }
  end,

  ---@param author_stateid string
  ---@param stateid string
  ---@param amount number
  ---@return boolean
  penalizePlayer = function(author_stateid, stateid, amount)
    local authorIdentifier = exports.drx_mdt:GetIdentifierByStateId(author_stateid)
    local playerIdentifier = exports.drx_mdt:GetIdentifierByStateId(stateid)

    if not authorIdentifier or not playerIdentifier then
      prints.error("Failed to retrieve identifier for penalization")
      return false
    end

    local player = QBCore.Functions.GetPlayerByCitizenId(playerIdentifier)
    if not player then
      prints.error("Player not found for identifier: %s", playerIdentifier)
      return false
    end

    -- player.Functions.RemoveMoney("bank", amount) -- Example: Remove money from player's bank account
    print("Player fined successfully:", player.PlayerData.source, amount)
    return true
  end,

  ---@param author_stateid string
  ---@param stateid string
  ---@param jailTime number
  ---@return boolean
  detainPlayer = function(author_stateid, stateid, jailTime)
    local authorIdentifier = exports.drx_mdt:GetIdentifierByStateId(author_stateid)
    local playerIdentifier = exports.drx_mdt:GetIdentifierByStateId(stateid)

    if not authorIdentifier or not playerIdentifier then
      prints.error("Failed to retrieve identifiers for detainment")
      return false
    end

    local player = QBCore.Functions.GetPlayerByCitizenId(playerIdentifier)
    if not player then
      prints.error("Player not found for identifier: %s", playerIdentifier)
      return false
    end

    -- Example: Assigning a jail sentence to the player
    -- This requires a custom implementation depending on your jail system
    -- TriggerEvent('police:server:JailPlayer', player.PlayerData.source, jailTime) -- qb-policejob event
    print("Player jailed successfully:", player.PlayerData.source, jailTime)
    return true
  end
}

Last updated 5 days ago

Was this helpful?