From dd7c92966c7d9c5e95d8a90df41e67637f1109ea Mon Sep 17 00:00:00 2001 From: solareon <769465+solareon@users.noreply.github.com> Date: Wed, 6 Dec 2023 15:34:53 +0000 Subject: [PATCH] refactor: use logger module --- server/character.lua | 9 +++++- server/commands.lua | 10 ++++++- server/events.lua | 9 +++++- server/functions.lua | 10 ++++++- server/player.lua | 71 ++++++++++++++++++++++++++++++++++---------- 5 files changed, 90 insertions(+), 19 deletions(-) diff --git a/server/character.lua b/server/character.lua index d8c20f99f..f3b4e714c 100644 --- a/server/character.lua +++ b/server/character.lua @@ -1,4 +1,5 @@ local config = require 'config.server' +local logger = require 'modules.logger' ---@param license2 string ---@param license? string @@ -46,7 +47,13 @@ lib.callback.register('qbx_core:server:loadCharacter', function(source, citizenI if not player then return end SetPlayerRoutingBucket(source, 0) - TriggerEvent('qb-log:server:CreateLog', 'joinleave', 'Loaded', 'green', '**'.. GetPlayerName(source) .. '** ('..(GetPlayerIdentifierByType(source, 'discord') or 'undefined') ..' | ||' ..(GetPlayerIdentifierByType(source, 'ip') or 'undefined') .. '|| | ' ..(GetPlayerIdentifierByType(source, 'license2') or GetPlayerIdentifierByType(source, 'license') or 'undefined') ..' | ' ..citizenId..' | '..source..') loaded..') + logger.log({ + source = GetInvokingResource(), + webhook = 'joinleave', + event = 'Loaded', + color = 'green', + message = '**'.. GetPlayerName(source) .. '** ('..(GetPlayerIdentifierByType(source, 'discord') or 'undefined') ..' | ||' ..(GetPlayerIdentifierByType(source, 'ip') or 'undefined') .. '|| | ' ..(GetPlayerIdentifierByType(source, 'license2') or GetPlayerIdentifierByType(source, 'license') or 'undefined') ..' | ' ..citizenId..' | '..source..') loaded..' + }) lib.print.info(GetPlayerName(source)..' (Citizen ID: '..citizenId..') has succesfully loaded!') end) diff --git a/server/commands.lua b/server/commands.lua index 5f873682f..0143129ec 100644 --- a/server/commands.lua +++ b/server/commands.lua @@ -1,4 +1,5 @@ local config = require 'config.server' +local logger = require 'modules.logger' GlobalState.PVPEnabled = config.server.pvp @@ -290,7 +291,14 @@ lib.addCommand('ooc', { multiline = true, args = {('Proximity OOC | %s'):format(GetPlayerName(source)), message} }) - TriggerEvent('qb-log:server:CreateLog', 'ooc', 'OOC', 'white', '**' .. GetPlayerName(source) .. '** (CitizenID: ' .. player.PlayerData.citizenid .. ' | ID: ' .. source .. ') **Message:** ' .. message, false) + logger.log({ + source = GetInvokingResource(), + webhook = 'ooc', + event = 'OOC', + color = 'white', + tags = config.logging.role, + message = '**' .. GetPlayerName(source) .. '** (CitizenID: ' .. player.PlayerData.citizenid .. ' | ID: ' .. source .. ') **Message:** ' .. message + }) end end end diff --git a/server/events.lua b/server/events.lua index 814026e48..78c0eb287 100644 --- a/server/events.lua +++ b/server/events.lua @@ -1,4 +1,5 @@ local serverConfig = require 'config.server'.server +local logger = require 'module.logger' -- Event Handler @@ -33,7 +34,13 @@ AddEventHandler('playerDropped', function(reason) if not QBX.Players[src] then return end GlobalState.PlayerCount -= 1 local player = QBX.Players[src] - TriggerEvent('qb-log:server:CreateLog', 'joinleave', 'Dropped', 'red', '**' .. GetPlayerName(src) .. '** (' .. player.PlayerData.license .. ') left..' ..'\n **Reason:** ' .. reason) + logger.log({ + source = GetInvokingResource(), + webhook = 'joinleave', + event = 'Dropped', + color = 'red', + message = '**' .. GetPlayerName(src) .. '** (' .. player.PlayerData.license .. ') left..' ..'\n **Reason:** ' .. reason, + }) player.Functions.Save() QBX.Player_Buckets[player.PlayerData.license] = nil QBX.Players[src] = nil diff --git a/server/functions.lua b/server/functions.lua index db5a9f5f5..41d88808a 100644 --- a/server/functions.lua +++ b/server/functions.lua @@ -1,5 +1,6 @@ local serverConfig = require 'config.server'.server local positionConfig = require 'config.shared'.notifyPosition +local logger = require 'modules.logger' -- Getters -- Get your player first and then trigger a function on them @@ -399,7 +400,14 @@ local function ExploitBan(playerId, origin) }) end) DropPlayer(playerId --[[@as string]], Lang:t('info.exploit_banned', {discord = serverConfig.discord})) - TriggerEvent("qb-log:server:CreateLog", "anticheat", "Anti-Cheat", "red", name .. " has been banned for exploiting " .. origin, true) + logger.log({ + source = GetInvokingResource(), + webhook = 'anticheat', + event = 'Anti-Cheat', + color = 'red', + tags = config.logging.role, + message = name .. " has been banned for exploiting " .. origin + }) end exports('ExploitBan', ExploitBan) diff --git a/server/player.lua b/server/player.lua index 3ce9382c9..75ecdda16 100644 --- a/server/player.lua +++ b/server/player.lua @@ -1,5 +1,6 @@ local config = require 'config.server' local defaultSpawn = require 'config.shared'.defaultSpawn +local logger = require 'modules.logger' ---@class PlayerData : PlayerEntity ---@field source? Source present if player is online @@ -32,7 +33,14 @@ function LoginV2(source, citizenid, newData) return CheckPlayerData(source, playerData) else DropPlayer(tostring(source), Lang:t("info.exploit_dropped")) - TriggerEvent('qb-log:server:CreateLog', 'anticheat', 'Anti-Cheat', 'white', ('%s Has Been Dropped For Character Joining Exploit'):format(GetPlayerName(source)), false) + logger.log({ + source = GetInvokingResource(), + webhook = 'anticheat', + event = 'Anti-Cheat', + color = 'white', + tags = config.logging.role, + message = ('%s Has Been Dropped For Character Joining Exploit'):format(GetPlayerName(source)) + }) end else local player = CheckPlayerData(source, newData) @@ -345,11 +353,15 @@ function CreatePlayer(playerData, Offline) if not self.Offline then self.Functions.UpdatePlayerData() - if amount > 100000 then - TriggerEvent('qb-log:server:CreateLog', 'playermoney', 'AddMoney', 'lightgreen', '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') added, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason, true) - else - TriggerEvent('qb-log:server:CreateLog', 'playermoney', 'AddMoney', 'lightgreen', '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') added, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason) - end + local tags = amount > 100000 and config.logging.role or nil + logger.log({ + source = GetInvokingResource(), + webhook = 'playermoney', + event = 'AddMoney', + color = 'lightgreen', + tags = tags, + message = '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') added, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason, + }) TriggerClientEvent('hud:client:OnMoneyChange', self.PlayerData.source, moneytype, amount, false) TriggerClientEvent('QBCore:Client:OnMoneyChange', self.PlayerData.source, moneytype, amount, "add", reason) TriggerEvent('QBCore:Server:OnMoneyChange', self.PlayerData.source, moneytype, amount, "add", reason) @@ -378,11 +390,15 @@ function CreatePlayer(playerData, Offline) if not self.Offline then self.Functions.UpdatePlayerData() - if amount > 100000 then - TriggerEvent('qb-log:server:CreateLog', 'playermoney', 'RemoveMoney', 'red', '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') removed, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason, true) - else - TriggerEvent('qb-log:server:CreateLog', 'playermoney', 'RemoveMoney', 'red', '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') removed, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason) - end + local tags = amount > 100000 and config.logging.role or nil + logger.log({ + source = GetInvokingResource(), + webhook = 'playermoney', + event = 'RemoveMoney', + color = 'red', + tags = tags, + message = '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') removed, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason, + }) TriggerClientEvent('hud:client:OnMoneyChange', self.PlayerData.source, moneytype, amount, true) if moneytype == 'bank' then TriggerClientEvent('qb-phone:client:RemoveBankMoney', self.PlayerData.source, amount) @@ -408,7 +424,13 @@ function CreatePlayer(playerData, Offline) if not self.Offline then self.Functions.UpdatePlayerData() - TriggerEvent('qb-log:server:CreateLog', 'playermoney', 'SetMoney', 'green', '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') set, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason) + logger.log({ + source = GetInvokingResource(), + webhook = 'playermoney', + event = 'SetMoney', + color = 'green', + message = '**' .. GetPlayerName(self.PlayerData.source) .. ' (citizenid: ' .. self.PlayerData.citizenid .. ' | id: ' .. self.PlayerData.source .. ')** $' .. amount .. ' (' .. moneytype .. ') set, new ' .. moneytype .. ' balance: ' .. self.PlayerData.money[moneytype] .. ' reason: ' .. reason, + }) TriggerClientEvent('hud:client:OnMoneyChange', self.PlayerData.source, moneytype, math.abs(difference), difference < 0) TriggerClientEvent('QBCore:Client:OnMoneyChange', self.PlayerData.source, moneytype, amount, "set", reason) TriggerEvent('QBCore:Server:OnMoneyChange', self.PlayerData.source, moneytype, amount, "set", reason) @@ -518,12 +540,25 @@ function DeleteCharacter(source, citizenid) CreateThread(function() local success = DeletePlayerEntity(citizenid) if success then - TriggerEvent('qb-log:server:CreateLog', 'joinleave', 'Character Deleted', 'red', '**' .. GetPlayerName(source) .. '** ' .. license2 .. ' deleted **' .. citizenid .. '**..') + logger.log({ + source = GetInvokingResource(), + webhook = 'joinleave', + event = 'Character Deleted', + color = 'red', + message = '**' .. GetPlayerName(source) .. '** ' .. license2 .. ' deleted **' .. citizenid .. '**..' + }) end end) else DropPlayer(tostring(source), Lang:t("info.exploit_dropped")) - TriggerEvent('qb-log:server:CreateLog', 'anticheat', 'Anti-Cheat', 'white', GetPlayerName(source) .. ' Has Been Dropped For Character Deletion Exploit', true) + logger.log({ + source = GetInvokingResource(), + webhook = 'anticheat', + event = 'Anti-Cheat', + color = 'white', + tags = config.logging.role, + message = GetPlayerName(source) .. ' Has Been Dropped For Character Deletion Exploit', + }) end end @@ -539,7 +574,13 @@ function ForceDeleteCharacter(citizenid) CreateThread(function() local success = DeletePlayerEntity(citizenid) if success then - TriggerEvent('qb-log:server:CreateLog', 'joinleave', 'Character Force Deleted', 'red', 'Character **' .. citizenid .. '** got deleted') + logger.log({ + source = GetInvokingResource(), + webhook = 'joinleave', + event = 'Character Force Deleted', + color = 'red', + message = 'Character **' .. citizenid .. '** got deleted' + }) end end) end