From 696277d5bbb2dfb9656b18a049bf3a431c3abfb1 Mon Sep 17 00:00:00 2001 From: thesysadmindev Date: Mon, 15 May 2023 10:41:02 +1000 Subject: [PATCH] Added Paycheck Logging Added a config variable to config.lua to enable/disable paycheck logging to Discord, added config option to config.logs.lua for Discord webhook and added function into paycheck.lua to send data to webhook containing paycheck information. --- [core]/es_extended/config.logs.lua | 3 ++- [core]/es_extended/config.lua | 1 + [core]/es_extended/server/paycheck.lua | 29 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/config.logs.lua b/[core]/es_extended/config.logs.lua index b58a8fed..34f91641 100644 --- a/[core]/es_extended/config.logs.lua +++ b/[core]/es_extended/config.logs.lua @@ -4,7 +4,8 @@ Config.DiscordLogs = { test = '', Chat = '', UserActions = '', - Resources = '' + Resources = '', + Paycheck = '' }, Colors = { -- https://www.spycolor.com/ diff --git a/[core]/es_extended/config.lua b/[core]/es_extended/config.lua index cb13fb33..62b38a21 100644 --- a/[core]/es_extended/config.lua +++ b/[core]/es_extended/config.lua @@ -21,6 +21,7 @@ Config.StartingAccountMoney = {bank = 50000} Config.DefaultSpawn = {x = -269.4, y = -955.3, z = 31.2, heading = 205.8} Config.EnablePaycheck = true -- enable paycheck +Config.LogPaycheck = false -- Logs paychecks to a nominated Discord channel via webhook (default is false) Config.EnableSocietyPayouts = false -- pay from the society account that the player is employed at? Requirement: esx_society Config.MaxWeight = 24 -- the max inventory weight without backpack Config.PaycheckInterval = 7 * 60000 -- how often to recieve pay checks in milliseconds diff --git a/[core]/es_extended/server/paycheck.lua b/[core]/es_extended/server/paycheck.lua index 1f234a57..ba5b776b 100644 --- a/[core]/es_extended/server/paycheck.lua +++ b/[core]/es_extended/server/paycheck.lua @@ -4,6 +4,7 @@ function StartPayCheck() Wait(Config.PaycheckInterval) for player, xPlayer in pairs(ESX.Players) do + local jobLabel = xPlayer.job.label local job = xPlayer.job.grade_name local salary = xPlayer.job.grade_salary @@ -12,6 +13,13 @@ function StartPayCheck() xPlayer.addAccountMoney('bank', salary, "Welfare Check") TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_help', salary), 'CHAR_BANK_MAZE', 9) + if Config.LogPaycheck then + ESX.DiscordLogFields("Paycheck", "Paycheck - Unemployment Benefits", "green", { + {name = "Player", value = xPlayer.name, inline = true}, + {name = "ID", value = xPlayer.source, inline = true}, + {name = "Amount", value = salary, inline = true} + }) + end elseif Config.EnableSocietyPayouts then -- possibly a society TriggerEvent('esx_society:getSociety', xPlayer.job.name, function(society) if society ~= nil then -- verified society @@ -19,6 +27,13 @@ function StartPayCheck() if account.money >= salary then -- does the society money to pay its employees? xPlayer.addAccountMoney('bank', salary, "Paycheck") account.removeMoney(salary) + if Config.LogPaycheck then + ESX.DiscordLogFields("Paycheck", "Paycheck - "..jobLabel, "green", { + {name = "Player", value = xPlayer.name, inline = true}, + {name = "ID", value = xPlayer.source, inline = true}, + {name = "Amount", value = salary, inline = true} + }) + end TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), 'CHAR_BANK_MAZE', 9) @@ -28,12 +43,26 @@ function StartPayCheck() end) else -- not a society xPlayer.addAccountMoney('bank', salary, "Paycheck") + if Config.LogPaycheck then + ESX.DiscordLogFields("Paycheck", "Paycheck - "..jobLabel, "green", { + {name = "Player", value = xPlayer.name, inline = true}, + {name = "ID", value = xPlayer.source, inline = true}, + {name = "Amount", value = salary, inline = true} + }) + end TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), 'CHAR_BANK_MAZE', 9) end end) else -- generic job xPlayer.addAccountMoney('bank', salary, "Paycheck") + if Config.LogPaycheck then + ESX.DiscordLogFields("Paycheck", "Paycheck - Generic", "green", { + {name = "Player", value = xPlayer.name, inline = true}, + {name = "ID", value = xPlayer.source, inline = true}, + {name = "Amount", value = salary, inline = true} + }) + end TriggerClientEvent('esx:showAdvancedNotification', player, TranslateCap('bank'), TranslateCap('received_paycheck'), TranslateCap('received_salary', salary), 'CHAR_BANK_MAZE', 9) end