From 1f29913af19d8b5242c7aebbd14c656dd92cea4e Mon Sep 17 00:00:00 2001 From: kac5a Date: Fri, 30 Sep 2022 17:14:27 +0200 Subject: [PATCH] add usable item config --- client/client.lua | 5 +++++ config.lua | 2 ++ fxmanifest.lua | 4 ++-- server/server.lua | 24 ++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 2 deletions(-) diff --git a/client/client.lua b/client/client.lua index 4aabe0d..8ae1084 100644 --- a/client/client.lua +++ b/client/client.lua @@ -250,6 +250,11 @@ AddEventHandler('k5_documents:copyGave', function(data) Notification(Config.Locale.giveNotification .. " " .. data) end) +RegisterNetEvent("k5_documents:useItem") +AddEventHandler("k5_documents:useItem", function() + ExecuteCommand(Config.Command) +end) + RegisterNetEvent('k5_documents:copyReceived') AddEventHandler('k5_documents:copyReceived', function(data) diff --git a/config.lua b/config.lua index 7ed7af2..4e2a1cf 100644 --- a/config.lua +++ b/config.lua @@ -2,6 +2,8 @@ Config = {} Config.Command = "documents" +Config.DocumentItemName = nil -- The name of the item you want to open the documents. If nil, no item will be registered + Config.PaperProp = { name = "prop_cd_paper_pile1", xRot = -130.0, diff --git a/fxmanifest.lua b/fxmanifest.lua index 9e1076d..72f4d15 100644 --- a/fxmanifest.lua +++ b/fxmanifest.lua @@ -2,8 +2,8 @@ fx_version "cerulean" description "A better document management script" author "K5 Scripts" -version '1.2.0' -update "ESX import change, added different logo options for jobs, custom CSS options" +version '1.2.1' +update "Added usable item config" repository 'https://github.com/kac5a/k5_documents' lua54 'yes' diff --git a/server/server.lua b/server/server.lua index 3b94daf..96e8fcf 100644 --- a/server/server.lua +++ b/server/server.lua @@ -1,4 +1,5 @@ local RegisterCallback +local RegisterItem ESX = nil local QBCore local CurrentFramework @@ -17,11 +18,17 @@ if CurrentFramework == "esx" then RegisterCallback = function (name, fn) ESX.RegisterServerCallback(name, fn) end + RegisterItem = function(itemName, fn) + ESX.RegisterUsableItem(itemName, fn) + end elseif CurrentFramework == "qb" then QBCore = exports['qb-core']:GetCoreObject() RegisterCallback = function (name, fn) QBCore.Functions.CreateCallback(name, fn) end + RegisterItem = function(itemName, fn) + QBCore.Functions.CreateUseableItem(itemName, fn) + end end Citizen.CreateThread(function() @@ -90,6 +97,12 @@ RegisterCallback('k5_documents:getPlayerCopies', function(source, cb) end) end) +if Config.DocumentItemName then + RegisterItem(Config.DocumentItemName, function(source) + local src = source + TriggerClientEvent("k5_documents:useItem", src) + end) +end RegisterCallback('k5_documents:getPlayerDocuments', function(source, cb) local src = source @@ -279,6 +292,17 @@ AddEventHandler("k5_documents:receiveDocument", function(data, targetId) end) end) + +function GetPlayer(src) + local Player + if CurrentFramework == "esx" then + Player = ESX.GetPlayerFromId(src) + elseif CurrentFramework == "qb" then + Player = QBCore.Functions.GetPlayer(src) + end + return Player +end + function GetPlayerIdentifier(src) local PlayerIdentifier if CurrentFramework == "esx" then