From 3871e928457461e6caf163f0effdce4ca53a8931 Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Mon, 4 Sep 2023 20:45:03 +0200 Subject: [PATCH 1/3] :ambulance: Handle nil values if use command in server console --- [core]/es_extended/server/commands.lua | 153 +++++++++++-------------- 1 file changed, 68 insertions(+), 85 deletions(-) diff --git a/[core]/es_extended/server/commands.lua b/[core]/es_extended/server/commands.lua index 47458b0e..a08b57af 100644 --- a/[core]/es_extended/server/commands.lua +++ b/[core]/es_extended/server/commands.lua @@ -1,9 +1,9 @@ -ESX.RegisterCommand({'setcoords', 'tp'}, 'admin', function(xPlayer, args) +ESX.RegisterCommand('setcoords', 'admin', function(xPlayer, args) xPlayer.setCoords({ x = args.x, y = args.y, z = args.z }) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Coordinates /setcoords Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "X Coord", value = args.x, inline = true }, { name = "Y Coord", value = args.y, inline = true }, { name = "Z Coord", value = args.z, inline = true }, @@ -13,9 +13,9 @@ end, false, { help = TranslateCap('command_setcoords'), validate = true, arguments = { - { name = 'x', help = TranslateCap('command_setcoords_x'), type = 'coordinate' }, - { name = 'y', help = TranslateCap('command_setcoords_y'), type = 'coordinate' }, - { name = 'z', help = TranslateCap('command_setcoords_z'), type = 'coordinate' } + { name = 'x', help = TranslateCap('command_setcoords_x'), type = 'number' }, + { name = 'y', help = TranslateCap('command_setcoords_y'), type = 'number' }, + { name = 'z', help = TranslateCap('command_setcoords_z'), type = 'number' } } }) @@ -27,11 +27,11 @@ ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError) args.playerId.setJob(args.job, args.grade) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Job /setjob Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, - { name = "Job", value = args.job, inline = true }, - { name = "Grade", value = args.grade, inline = true }, + { name = "Job", value = args.playerId, inline = true }, + { name = "Grade", value = args.playerId, inline = true }, }) end end, true, { @@ -75,8 +75,8 @@ ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Spawn Car /car Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Vehicle", value = args.car, inline = true } }) end @@ -120,8 +120,8 @@ ESX.RegisterCommand({ 'cardel', 'dv' }, 'admin', function(xPlayer, args) end if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Delete Vehicle /dv Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, false, { @@ -132,34 +132,6 @@ end, false, { } }) -ESX.RegisterCommand({ 'fix', 'repair' }, 'admin', function(xPlayer, args, showError) - local xTarget = args.playerId - local ped = GetPlayerPed(xTarget.source) - local pedVehicle = GetVehiclePedIsIn(ped, false) - if not pedVehicle or GetPedInVehicleSeat(pedVehicle, -1) ~= ped then - showError(TranslateCap('not_in_vehicle')) - return - end - xTarget.triggerEvent("esx:repairPedVehicle") - xPlayer.showNotification(TranslateCap('command_repair_success'), true, false, 140) - if xPlayer.source ~= xTarget.source then - xTarget.showNotification(TranslateCap('command_repair_success_target'), true, false, 140) - end - if Config.AdminLogging then - ESX.DiscordLogFields("UserActions", "Fix Vehicle /fix Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, - { name = "Target", value = xTarget.name, inline = true }, - }) - end -end, true, { - help = TranslateCap('command_repair'), - validate = false, - arguments = { - { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } - } -}) - ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showError) if not args.playerId.getAccount(args.account) then return showError(TranslateCap('command_giveaccountmoney_invalid')) @@ -167,8 +139,8 @@ ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showErro args.playerId.setAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Account Money /setaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -191,8 +163,8 @@ ESX.RegisterCommand('giveaccountmoney', 'admin', function(xPlayer, args, showErr args.playerId.addAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Account Money /giveaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -215,8 +187,8 @@ ESX.RegisterCommand('removeaccountmoney', 'admin', function(xPlayer, args, showE args.playerId.removeAccountMoney(args.account, args.amount, "Government Tax") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Remove Account Money /removeaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -237,8 +209,8 @@ if not Config.OxInventory then args.playerId.addInventoryItem(args.item, args.count) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Item /giveitem Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Item", value = args.item, inline = true }, { name = "Quantity", value = args.count, inline = true }, @@ -261,8 +233,8 @@ if not Config.OxInventory then args.playerId.addWeapon(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon /giveweapon Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weapon, inline = true }, { name = "Ammo", value = args.ammo, inline = true }, @@ -285,8 +257,8 @@ if not Config.OxInventory then args.playerId.addWeaponAmmo(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Ammunition /giveammo Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weapon, inline = true }, { name = "Ammo", value = args.ammo, inline = true }, @@ -314,8 +286,8 @@ if not Config.OxInventory then if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon Component /giveweaponcomponent Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weaponName, inline = true }, { name = "Component", value = args.componentName, inline = true }, @@ -347,8 +319,8 @@ ESX.RegisterCommand({ 'clearall', 'clsall' }, 'admin', function(xPlayer) TriggerClientEvent('chat:clear', -1) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Chat /clearall Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, true, { help = TranslateCap('command_clearall') }) @@ -367,8 +339,8 @@ if not Config.OxInventory then TriggerEvent('esx:playerInventoryCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Inventory /clearinventory Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -387,8 +359,8 @@ if not Config.OxInventory then TriggerEvent('esx:playerLoadoutCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/clearloadout Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -410,8 +382,8 @@ ESX.RegisterCommand('setgroup', 'admin', function(xPlayer, args) args.playerId.setGroup(args.group) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/setgroup Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Group", value = args.group, inline = true }, }) @@ -451,6 +423,7 @@ end, true) ESX.RegisterCommand('info', { "user", "admin" }, function(xPlayer) local job = xPlayer.getJob().name + local jobgrade = xPlayer.getJob().grade_name print(('^2ID: ^5%s^0 | ^2Name: ^5%s^0 | ^2Group: ^5%s^0 | ^2Job: ^5%s^0'):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), job)) end, true) @@ -467,8 +440,8 @@ ESX.RegisterCommand('tpm', "admin", function(xPlayer) xPlayer.triggerEvent("esx:tpm") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /tpm Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, true) @@ -478,8 +451,8 @@ ESX.RegisterCommand('goto', "admin", function(xPlayer, args) xPlayer.setCoords(targetCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Target Coords", value = targetCoords, inline = true }, }) @@ -498,8 +471,8 @@ ESX.RegisterCommand('bring', "admin", function(xPlayer, args) args.playerId.setCoords(playerCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Target Coords", value = targetCoords, inline = true }, }) @@ -516,8 +489,8 @@ ESX.RegisterCommand('kill', "admin", function(xPlayer, args) args.playerId.triggerEvent("esx:killPlayer") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Kill Command /kill Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -533,8 +506,8 @@ ESX.RegisterCommand('freeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "freeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Freeze /freeze Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -550,8 +523,8 @@ ESX.RegisterCommand('unfreeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "unfreeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin UnFreeze /unfreeze Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -567,18 +540,28 @@ ESX.RegisterCommand("noclip", 'admin', function(xPlayer) xPlayer.triggerEvent('esx:noclip') if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin NoClip /noclip Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, false) ESX.RegisterCommand('players', "admin", function() - local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers - local count = 0 - for _, xPlayer in pairs(xPlayers) do - count += 1 - print(('^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n'):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) - end - print(('^5%s^2 online player(s)^0'):format(count)) + local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers + print(('^5%s^2 online player(s)^0'):format(#xPlayers)) + for i = 1, #(xPlayers) do + local xPlayer = xPlayers[i] + print(('^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n'):format( + xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) + end end, true) + +RegisterCommand("testCommand",function (source,args,rawCommand) + local xPlayer = ESX.GetPlayerFromId(source) + ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Target", value = "args.playerId.name", inline = true }, + { name = "Target Coords", value = "targetCoords", inline = true }, + }) +end,false) From ab8e15148c44fb36b68a487d8c8ac997b41c2332 Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Mon, 4 Sep 2023 20:48:41 +0200 Subject: [PATCH 2/3] Revert ":ambulance: Handle nil values if use command in server console" This reverts commit 3871e928457461e6caf163f0effdce4ca53a8931. --- [core]/es_extended/server/commands.lua | 153 ++++++++++++++----------- 1 file changed, 85 insertions(+), 68 deletions(-) diff --git a/[core]/es_extended/server/commands.lua b/[core]/es_extended/server/commands.lua index a08b57af..47458b0e 100644 --- a/[core]/es_extended/server/commands.lua +++ b/[core]/es_extended/server/commands.lua @@ -1,9 +1,9 @@ -ESX.RegisterCommand('setcoords', 'admin', function(xPlayer, args) +ESX.RegisterCommand({'setcoords', 'tp'}, 'admin', function(xPlayer, args) xPlayer.setCoords({ x = args.x, y = args.y, z = args.z }) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Coordinates /setcoords Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "X Coord", value = args.x, inline = true }, { name = "Y Coord", value = args.y, inline = true }, { name = "Z Coord", value = args.z, inline = true }, @@ -13,9 +13,9 @@ end, false, { help = TranslateCap('command_setcoords'), validate = true, arguments = { - { name = 'x', help = TranslateCap('command_setcoords_x'), type = 'number' }, - { name = 'y', help = TranslateCap('command_setcoords_y'), type = 'number' }, - { name = 'z', help = TranslateCap('command_setcoords_z'), type = 'number' } + { name = 'x', help = TranslateCap('command_setcoords_x'), type = 'coordinate' }, + { name = 'y', help = TranslateCap('command_setcoords_y'), type = 'coordinate' }, + { name = 'z', help = TranslateCap('command_setcoords_z'), type = 'coordinate' } } }) @@ -27,11 +27,11 @@ ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError) args.playerId.setJob(args.job, args.grade) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Job /setjob Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, - { name = "Job", value = args.playerId, inline = true }, - { name = "Grade", value = args.playerId, inline = true }, + { name = "Job", value = args.job, inline = true }, + { name = "Grade", value = args.grade, inline = true }, }) end end, true, { @@ -75,8 +75,8 @@ ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Spawn Car /car Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Vehicle", value = args.car, inline = true } }) end @@ -120,8 +120,8 @@ ESX.RegisterCommand({ 'cardel', 'dv' }, 'admin', function(xPlayer, args) end if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Delete Vehicle /dv Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end end, false, { @@ -132,6 +132,34 @@ end, false, { } }) +ESX.RegisterCommand({ 'fix', 'repair' }, 'admin', function(xPlayer, args, showError) + local xTarget = args.playerId + local ped = GetPlayerPed(xTarget.source) + local pedVehicle = GetVehiclePedIsIn(ped, false) + if not pedVehicle or GetPedInVehicleSeat(pedVehicle, -1) ~= ped then + showError(TranslateCap('not_in_vehicle')) + return + end + xTarget.triggerEvent("esx:repairPedVehicle") + xPlayer.showNotification(TranslateCap('command_repair_success'), true, false, 140) + if xPlayer.source ~= xTarget.source then + xTarget.showNotification(TranslateCap('command_repair_success_target'), true, false, 140) + end + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Fix Vehicle /fix Triggered!", "pink", { + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, + { name = "Target", value = xTarget.name, inline = true }, + }) + end +end, true, { + help = TranslateCap('command_repair'), + validate = false, + arguments = { + { name = 'playerId', help = TranslateCap('commandgeneric_playerid'), type = 'player' } + } +}) + ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showError) if not args.playerId.getAccount(args.account) then return showError(TranslateCap('command_giveaccountmoney_invalid')) @@ -139,8 +167,8 @@ ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showErro args.playerId.setAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Account Money /setaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -163,8 +191,8 @@ ESX.RegisterCommand('giveaccountmoney', 'admin', function(xPlayer, args, showErr args.playerId.addAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Account Money /giveaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -187,8 +215,8 @@ ESX.RegisterCommand('removeaccountmoney', 'admin', function(xPlayer, args, showE args.playerId.removeAccountMoney(args.account, args.amount, "Government Tax") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Remove Account Money /removeaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -209,8 +237,8 @@ if not Config.OxInventory then args.playerId.addInventoryItem(args.item, args.count) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Item /giveitem Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Item", value = args.item, inline = true }, { name = "Quantity", value = args.count, inline = true }, @@ -233,8 +261,8 @@ if not Config.OxInventory then args.playerId.addWeapon(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon /giveweapon Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weapon, inline = true }, { name = "Ammo", value = args.ammo, inline = true }, @@ -257,8 +285,8 @@ if not Config.OxInventory then args.playerId.addWeaponAmmo(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Ammunition /giveammo Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weapon, inline = true }, { name = "Ammo", value = args.ammo, inline = true }, @@ -286,8 +314,8 @@ if not Config.OxInventory then if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon Component /giveweaponcomponent Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weaponName, inline = true }, { name = "Component", value = args.componentName, inline = true }, @@ -319,8 +347,8 @@ ESX.RegisterCommand({ 'clearall', 'clsall' }, 'admin', function(xPlayer) TriggerClientEvent('chat:clear', -1) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Chat /clearall Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end end, true, { help = TranslateCap('command_clearall') }) @@ -339,8 +367,8 @@ if not Config.OxInventory then TriggerEvent('esx:playerInventoryCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Inventory /clearinventory Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -359,8 +387,8 @@ if not Config.OxInventory then TriggerEvent('esx:playerLoadoutCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/clearloadout Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -382,8 +410,8 @@ ESX.RegisterCommand('setgroup', 'admin', function(xPlayer, args) args.playerId.setGroup(args.group) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/setgroup Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Group", value = args.group, inline = true }, }) @@ -423,7 +451,6 @@ end, true) ESX.RegisterCommand('info', { "user", "admin" }, function(xPlayer) local job = xPlayer.getJob().name - local jobgrade = xPlayer.getJob().grade_name print(('^2ID: ^5%s^0 | ^2Name: ^5%s^0 | ^2Group: ^5%s^0 | ^2Job: ^5%s^0'):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), job)) end, true) @@ -440,8 +467,8 @@ ESX.RegisterCommand('tpm', "admin", function(xPlayer) xPlayer.triggerEvent("esx:tpm") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /tpm Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end end, true) @@ -451,8 +478,8 @@ ESX.RegisterCommand('goto', "admin", function(xPlayer, args) xPlayer.setCoords(targetCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Target Coords", value = targetCoords, inline = true }, }) @@ -471,8 +498,8 @@ ESX.RegisterCommand('bring', "admin", function(xPlayer, args) args.playerId.setCoords(playerCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Target Coords", value = targetCoords, inline = true }, }) @@ -489,8 +516,8 @@ ESX.RegisterCommand('kill', "admin", function(xPlayer, args) args.playerId.triggerEvent("esx:killPlayer") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Kill Command /kill Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -506,8 +533,8 @@ ESX.RegisterCommand('freeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "freeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Freeze /freeze Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -523,8 +550,8 @@ ESX.RegisterCommand('unfreeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "unfreeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin UnFreeze /unfreeze Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -540,28 +567,18 @@ ESX.RegisterCommand("noclip", 'admin', function(xPlayer) xPlayer.triggerEvent('esx:noclip') if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin NoClip /noclip Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Player", value = xPlayer.name, inline = true }, + { name = "ID", value = xPlayer.source, inline = true }, }) end end, false) ESX.RegisterCommand('players', "admin", function() - local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers - print(('^5%s^2 online player(s)^0'):format(#xPlayers)) - for i = 1, #(xPlayers) do - local xPlayer = xPlayers[i] - print(('^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n'):format( - xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) - end + local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers + local count = 0 + for _, xPlayer in pairs(xPlayers) do + count += 1 + print(('^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n'):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) + end + print(('^5%s^2 online player(s)^0'):format(count)) end, true) - -RegisterCommand("testCommand",function (source,args,rawCommand) - local xPlayer = ESX.GetPlayerFromId(source) - ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { - { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, - { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, - { name = "Target", value = "args.playerId.name", inline = true }, - { name = "Target Coords", value = "targetCoords", inline = true }, - }) -end,false) From b644f1f2e9edeb6d2ad69ad985934a4e335b0ec5 Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Mon, 4 Sep 2023 20:51:59 +0200 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=9A=91=20Handle=20nil=20values=20if?= =?UTF-8?q?=20use=20command=20in=20server=20console?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- [core]/es_extended/server/commands.lua | 92 +++++++++++++------------- 1 file changed, 46 insertions(+), 46 deletions(-) diff --git a/[core]/es_extended/server/commands.lua b/[core]/es_extended/server/commands.lua index 47458b0e..572794aa 100644 --- a/[core]/es_extended/server/commands.lua +++ b/[core]/es_extended/server/commands.lua @@ -2,8 +2,8 @@ ESX.RegisterCommand({'setcoords', 'tp'}, 'admin', function(xPlayer, args) xPlayer.setCoords({ x = args.x, y = args.y, z = args.z }) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Coordinates /setcoords Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "X Coord", value = args.x, inline = true }, { name = "Y Coord", value = args.y, inline = true }, { name = "Z Coord", value = args.z, inline = true }, @@ -27,8 +27,8 @@ ESX.RegisterCommand('setjob', 'admin', function(xPlayer, args, showError) args.playerId.setJob(args.job, args.grade) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Job /setjob Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Job", value = args.job, inline = true }, { name = "Grade", value = args.grade, inline = true }, @@ -75,8 +75,8 @@ ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Spawn Car /car Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Vehicle", value = args.car, inline = true } }) end @@ -120,8 +120,8 @@ ESX.RegisterCommand({ 'cardel', 'dv' }, 'admin', function(xPlayer, args) end if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Delete Vehicle /dv Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, false, { @@ -147,8 +147,8 @@ ESX.RegisterCommand({ 'fix', 'repair' }, 'admin', function(xPlayer, args, showEr end if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Fix Vehicle /fix Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = xTarget.name, inline = true }, }) end @@ -167,8 +167,8 @@ ESX.RegisterCommand('setaccountmoney', 'admin', function(xPlayer, args, showErro args.playerId.setAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Set Account Money /setaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -191,8 +191,8 @@ ESX.RegisterCommand('giveaccountmoney', 'admin', function(xPlayer, args, showErr args.playerId.addAccountMoney(args.account, args.amount, "Government Grant") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Account Money /giveaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -215,8 +215,8 @@ ESX.RegisterCommand('removeaccountmoney', 'admin', function(xPlayer, args, showE args.playerId.removeAccountMoney(args.account, args.amount, "Government Tax") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Remove Account Money /removeaccountmoney Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Account", value = args.account, inline = true }, { name = "Amount", value = args.amount, inline = true }, @@ -237,8 +237,8 @@ if not Config.OxInventory then args.playerId.addInventoryItem(args.item, args.count) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Item /giveitem Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Item", value = args.item, inline = true }, { name = "Quantity", value = args.count, inline = true }, @@ -261,8 +261,8 @@ if not Config.OxInventory then args.playerId.addWeapon(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon /giveweapon Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weapon, inline = true }, { name = "Ammo", value = args.ammo, inline = true }, @@ -285,8 +285,8 @@ if not Config.OxInventory then args.playerId.addWeaponAmmo(args.weapon, args.ammo) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Ammunition /giveammo Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weapon, inline = true }, { name = "Ammo", value = args.ammo, inline = true }, @@ -314,8 +314,8 @@ if not Config.OxInventory then if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Give Weapon Component /giveweaponcomponent Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Weapon", value = args.weaponName, inline = true }, { name = "Component", value = args.componentName, inline = true }, @@ -347,8 +347,8 @@ ESX.RegisterCommand({ 'clearall', 'clsall' }, 'admin', function(xPlayer) TriggerClientEvent('chat:clear', -1) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Chat /clearall Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, true, { help = TranslateCap('command_clearall') }) @@ -367,8 +367,8 @@ if not Config.OxInventory then TriggerEvent('esx:playerInventoryCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Clear Inventory /clearinventory Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -387,8 +387,8 @@ if not Config.OxInventory then TriggerEvent('esx:playerLoadoutCleared', args.playerId) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/clearloadout Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -410,8 +410,8 @@ ESX.RegisterCommand('setgroup', 'admin', function(xPlayer, args) args.playerId.setGroup(args.group) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "/setgroup Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Group", value = args.group, inline = true }, }) @@ -467,8 +467,8 @@ ESX.RegisterCommand('tpm', "admin", function(xPlayer) xPlayer.triggerEvent("esx:tpm") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /tpm Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, true) @@ -478,8 +478,8 @@ ESX.RegisterCommand('goto', "admin", function(xPlayer, args) xPlayer.setCoords(targetCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Target Coords", value = targetCoords, inline = true }, }) @@ -498,8 +498,8 @@ ESX.RegisterCommand('bring', "admin", function(xPlayer, args) args.playerId.setCoords(playerCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, { name = "Target Coords", value = targetCoords, inline = true }, }) @@ -516,8 +516,8 @@ ESX.RegisterCommand('kill', "admin", function(xPlayer, args) args.playerId.triggerEvent("esx:killPlayer") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Kill Command /kill Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -533,8 +533,8 @@ ESX.RegisterCommand('freeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "freeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Freeze /freeze Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -550,8 +550,8 @@ ESX.RegisterCommand('unfreeze', "admin", function(xPlayer, args) args.playerId.triggerEvent('esx:freezePlayer', "unfreeze") if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin UnFreeze /unfreeze Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, { name = "Target", value = args.playerId.name, inline = true }, }) end @@ -567,8 +567,8 @@ ESX.RegisterCommand("noclip", 'admin', function(xPlayer) xPlayer.triggerEvent('esx:noclip') if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin NoClip /noclip Triggered!", "pink", { - { name = "Player", value = xPlayer.name, inline = true }, - { name = "ID", value = xPlayer.source, inline = true }, + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, }) end end, false)