2026-04-14 17:41:39 +02:00

738 lines
30 KiB
Lua

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 = "X Coord", value = args.x, inline = true },
{ name = "Y Coord", value = args.y, inline = true },
{ name = "Z Coord", value = args.z, inline = true },
})
end
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" },
},
}
)
ESX.RegisterCommand(
"setjob",
"admin",
function(xPlayer, args, showError)
if not ESX.DoesJobExist(args.job, args.grade) then
return showError(TranslateCap("command_setjob_invalid"))
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Job", value = args.job, inline = true },
{ name = "Grade", value = args.grade, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_setjob"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "job", help = TranslateCap("command_setjob_job"), type = "string" },
{ name = "grade", help = TranslateCap("command_setjob_grade"), type = "number" },
},
}
)
ESX.RegisterCommand('car', 'admin', function(xPlayer, args, showError)
local GameBuild = tonumber(GetConvar("sv_enforceGameBuild", 1604))
if not args.car then args.car = GameBuild >= 2699 and "draugur" or "prototipo" end
ESX.DiscordLogFields("UserActions", "/car Triggered", "pink", {
{name = "Player", value = xPlayer.name, inline = true},
{name = "ID", value = xPlayer.source, inline = true},
{name = "Vehicle", value = args.car, inline = true}
})
local upgrades = Config.MaxAdminVehicles and {
plate = "ADMINCAR",
modEngine = 3,
modBrakes = 2,
modTransmission = 2,
modSuspension = 3,
modArmor = true,
windowTint = 1,
} or {}
local coords = xPlayer.getCoords(true)
local PlayerPed = GetPlayerPed(xPlayer.source)
ESX.OneSync.SpawnVehicle(args.car, coords - vector3(0,0, 0.9), GetEntityHeading(PlayerPed), upgrades, function(networkId)
local vehicle = NetworkGetEntityFromNetworkId(networkId)
Wait(250)
TaskWarpPedIntoVehicle(PlayerPed, vehicle, -1)
-- VEHICLES KEYS INTEGRATION
exports["vehicles_keys"]:giveVehicleKeysToPlayerId(xPlayer.source, GetVehicleNumberPlateText(vehicle), "temporary")
end)
end, false, {help = TranslateCap('command_car'), validate = false, arguments = {
{name = 'car',validate = false, help = TranslateCap('command_car_car'), type = 'string'}
}})
ESX.RegisterCommand(
{ "cardel", "dv" },
"admin",
function(xPlayer, args)
local ped = GetPlayerPed(xPlayer.source)
local pedVehicle = GetVehiclePedIsIn(ped, false)
if DoesEntityExist(pedVehicle) then
DeleteEntity(pedVehicle)
end
local coords = GetEntityCoords(ped)
local Vehicles = ESX.OneSync.GetVehiclesInArea(coords, tonumber(args.radius) or 5.0)
for i = 1, #Vehicles do
local Vehicle = NetworkGetEntityFromNetworkId(Vehicles[i])
if DoesEntityExist(Vehicle) then
DeleteEntity(Vehicle)
end
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 },
})
end
end,
false,
{
help = TranslateCap("command_cardel"),
validate = false,
arguments = {
{ name = "radius", validate = false, help = TranslateCap("command_cardel_radius"), type = "number" },
},
}
)
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 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
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"))
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Account", value = args.account, inline = true },
{ name = "Amount", value = args.amount, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_setaccountmoney"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "account", help = TranslateCap("command_giveaccountmoney_account"), type = "string" },
{ name = "amount", help = TranslateCap("command_setaccountmoney_amount"), type = "number" },
},
}
)
ESX.RegisterCommand(
"giveaccountmoney",
"admin",
function(xPlayer, args, showError)
if not args.playerId.getAccount(args.account) then
return showError(TranslateCap("command_giveaccountmoney_invalid"))
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Account", value = args.account, inline = true },
{ name = "Amount", value = args.amount, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_giveaccountmoney"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "account", help = TranslateCap("command_giveaccountmoney_account"), type = "string" },
{ name = "amount", help = TranslateCap("command_giveaccountmoney_amount"), type = "number" },
},
}
)
ESX.RegisterCommand(
"removeaccountmoney",
"admin",
function(xPlayer, args, showError)
if not args.playerId.getAccount(args.account) then
return showError(TranslateCap("command_removeaccountmoney_invalid"))
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Account", value = args.account, inline = true },
{ name = "Amount", value = args.amount, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_removeaccountmoney"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "account", help = TranslateCap("command_removeaccountmoney_account"), type = "string" },
{ name = "amount", help = TranslateCap("command_removeaccountmoney_amount"), type = "number" },
},
}
)
if not Config.CustomInventory then
ESX.RegisterCommand(
"giveitem",
"admin",
function(xPlayer, args)
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Item", value = args.item, inline = true },
{ name = "Quantity", value = args.count, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_giveitem"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "item", help = TranslateCap("command_giveitem_item"), type = "item" },
{ name = "count", help = TranslateCap("command_giveitem_count"), type = "number", Validator = {
validate = function(x) return x > 0 end,
err = TranslateCap("commanderror_argumentmismatch_positive_number", "count")
}},
},
}
)
ESX.RegisterCommand(
"giveweapon",
"admin",
function(xPlayer, args, showError)
if args.playerId.hasWeapon(args.weapon) then
return showError(TranslateCap("command_giveweapon_hasalready"))
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Weapon", value = args.weapon, inline = true },
{ name = "Ammo", value = args.ammo, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_giveweapon"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "weapon", help = TranslateCap("command_giveweapon_weapon"), type = "weapon" },
{ name = "ammo", help = TranslateCap("command_giveweapon_ammo"), type = "number" },
},
}
)
ESX.RegisterCommand(
"giveammo",
"admin",
function(xPlayer, args, showError)
if not args.playerId.hasWeapon(args.weapon) then
return showError(TranslateCap("command_giveammo_noweapon_found"))
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Weapon", value = args.weapon, inline = true },
{ name = "Ammo", value = args.ammo, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_giveweapon"),
validate = false,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "weapon", help = TranslateCap("command_giveammo_weapon"), type = "weapon" },
{ name = "ammo", help = TranslateCap("command_giveammo_ammo"), type = "number" },
},
}
)
ESX.RegisterCommand(
"giveweaponcomponent",
"admin",
function(xPlayer, args, showError)
if args.playerId.hasWeapon(args.weaponName) then
local component = ESX.GetWeaponComponent(args.weaponName, args.componentName)
if component then
if args.playerId.hasWeaponComponent(args.weaponName, args.componentName) then
showError(TranslateCap("command_giveweaponcomponent_hasalready"))
else
args.playerId.addWeaponComponent(args.weaponName, args.componentName)
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Weapon", value = args.weaponName, inline = true },
{ name = "Component", value = args.componentName, inline = true },
})
end
end
else
showError(TranslateCap("command_giveweaponcomponent_invalid"))
end
else
showError(TranslateCap("command_giveweaponcomponent_missingweapon"))
end
end,
true,
{
help = TranslateCap("command_giveweaponcomponent"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "weaponName", help = TranslateCap("command_giveweapon_weapon"), type = "weapon" },
{ name = "componentName", help = TranslateCap("command_giveweaponcomponent_component"), type = "string" },
},
}
)
end
ESX.RegisterCommand({ "clear", "cls" }, "user", function(xPlayer)
xPlayer.triggerEvent("chat:clear")
end, false, { help = TranslateCap("command_clear") })
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 },
})
end
end, true, { help = TranslateCap("command_clearall") })
ESX.RegisterCommand("refreshjobs", "admin", function()
ESX.RefreshJobs()
end, true, { help = TranslateCap("command_clearall") })
if not Config.CustomInventory then
ESX.RegisterCommand("refreshitems", "admin", function(xPlayer)
local itemCount = ESX.RefreshItems()
xPlayer.showNotification(Translate("command_refreshitems_success", itemCount), true, false, 140)
end, true, { help = TranslateCap("command_refreshitems") })
ESX.RegisterCommand(
"clearinventory",
"admin",
function(xPlayer, args)
for _, v in ipairs(args.playerId.inventory) do
if v.count > 0 then
args.playerId.setInventoryItem(v.name, 0)
end
end
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 = "Target", value = args.playerId.name, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_clearinventory"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
ESX.RegisterCommand(
"clearloadout",
"admin",
function(xPlayer, args)
for i = #args.playerId.loadout, 1, -1 do
args.playerId.removeWeapon(args.playerId.loadout[i].name)
end
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 = "Target", value = args.playerId.name, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_clearloadout"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
end
ESX.RegisterCommand(
"setgroup",
"admin",
function(xPlayer, args)
if not args.playerId then
args.playerId = xPlayer.source
end
if args.group == "superadmin" then
args.group = "admin"
print("[^3WARNING^7] ^5Superadmin^7 detected, setting group to ^5admin^7")
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Group", value = args.group, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_setgroup"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "group", help = TranslateCap("command_setgroup_group"), type = "string" },
},
}
)
ESX.RegisterCommand(
"save",
"admin",
function(_, args)
Core.SavePlayer(args.playerId)
print(("[^2Info^0] Saved Player - ^5%s^0"):format(args.playerId.source))
end,
true,
{
help = TranslateCap("command_save"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
ESX.RegisterCommand("saveall", "admin", function()
Core.SavePlayers()
end, true, { help = TranslateCap("command_saveall") })
ESX.RegisterCommand("group", { "user", "admin" }, function(xPlayer, _, _)
print(("%s, you are currently: ^5%s^0"):format(xPlayer.getName(), xPlayer.getGroup()))
end, true)
ESX.RegisterCommand("job", { "user", "admin" }, function(xPlayer, _, _)
local job = xPlayer.getJob()
print(("%s, your job is: ^5%s^0 - ^5%s^0 - ^5%s^0"):format(xPlayer.getName(), job.name, job.grade_label, job.onDuty and "On Duty" or "Off Duty"))
end, false)
ESX.RegisterCommand("info", { "user", "admin" }, function(xPlayer)
local job = xPlayer.getJob().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, false)
ESX.RegisterCommand("playtime", { "user", "admin" }, function(xPlayer)
local playtime = xPlayer.getPlayTime()
local days = math.floor(playtime / 86400)
local hours = math.floor((playtime % 86400) / 3600)
local minutes = math.floor((playtime % 3600) / 60)
print(("Playtime: ^5%s^0 Days | ^5%s^0 Hours | ^5%s^0 Minutes"):format(days, hours, minutes))
end, false)
ESX.RegisterCommand("coords", "admin", function(xPlayer)
local ped = GetPlayerPed(xPlayer.source)
local coords = GetEntityCoords(ped, false)
local heading = GetEntityHeading(ped)
print(("Coords - Vector3: ^5%s^0"):format(vector3(coords.x, coords.y, coords.z)))
print(("Coords - Vector4: ^5%s^0"):format(vector4(coords.x, coords.y, coords.z, heading)))
end, false)
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 },
})
end
end, false)
ESX.RegisterCommand(
"goto",
"admin",
function(xPlayer, args)
local targetCoords = args.playerId.getCoords()
local srcDim = GetPlayerRoutingBucket(xPlayer.source)
local targetDim = GetPlayerRoutingBucket(args.playerId.source)
if srcDim ~= targetDim then
SetPlayerRoutingBucket(xPlayer.source, targetDim)
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Target Coords", value = targetCoords, inline = true },
})
end
end,
false,
{
help = TranslateCap("command_goto"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
ESX.RegisterCommand(
"bring",
"admin",
function(xPlayer, args)
local targetCoords = args.playerId.getCoords()
local playerCoords = xPlayer.getCoords()
local targetDim = GetPlayerRoutingBucket(args.playerId.source)
local srcDim = GetPlayerRoutingBucket(xPlayer.source)
if targetDim ~= srcDim then
SetPlayerRoutingBucket(args.playerId.source, srcDim)
end
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 = "Target", value = args.playerId.name, inline = true },
{ name = "Target Coords", value = targetCoords, inline = true },
})
end
end,
false,
{
help = TranslateCap("command_bring"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
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 = "Target", value = args.playerId.name, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_kill"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
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 = "Target", value = args.playerId.name, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_freeze"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
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 = "Target", value = args.playerId.name, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_unfreeze"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
},
}
)
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 },
})
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
end, true)
ESX.RegisterCommand(
{"setdim", "setbucket"},
"admin",
function(xPlayer, args)
SetPlayerRoutingBucket(args.playerId.source, args.dimension)
if Config.AdminLogging then
ESX.DiscordLogFields("UserActions", "Admin Set Dim /setdim 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 = "Dimension", value = args.dimension, inline = true },
})
end
end,
true,
{
help = TranslateCap("command_setdim"),
validate = true,
arguments = {
{ name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" },
{ name = "dimension", help = TranslateCap("commandgeneric_dimension"), type = "number" },
},
}
)