mirror of
https://github.com/esx-framework/esx_core.git
synced 2026-08-28 17:01:14 +00:00
Merge pull request #1859 from rwixy/centralize-admin
feat(commands): centralize admin permissions via Config.AdminGroups
This commit is contained in:
@@ -1,6 +1,12 @@
|
|||||||
|
local CommandPermissions = Config.CommandPermissions or {}
|
||||||
|
|
||||||
|
local function FilterGroups(groups)
|
||||||
|
return (groups and #groups > 0) and groups or { "user" }
|
||||||
|
end
|
||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
{ "setcoords", "tp" },
|
{ "setcoords", "tp" },
|
||||||
"admin",
|
FilterGroups(CommandPermissions.setcoords),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
xPlayer.setCoords({ x = args.x, y = args.y, z = args.z })
|
xPlayer.setCoords({ x = args.x, y = args.y, z = args.z })
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
@@ -27,7 +33,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"setjob",
|
"setjob",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.setjob),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if not ESX.DoesJobExist(args.job, args.grade) then
|
if not ESX.DoesJobExist(args.job, args.grade) then
|
||||||
return showError(TranslateCap("command_setjob_invalid"))
|
return showError(TranslateCap("command_setjob_invalid"))
|
||||||
@@ -68,7 +74,7 @@ local upgrades = Config.SpawnVehMaxUpgrades and {
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"car",
|
"car",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.car),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if not xPlayer then
|
if not xPlayer then
|
||||||
return showError("[^1ERROR^7] The xPlayer value is nil")
|
return showError("[^1ERROR^7] The xPlayer value is nil")
|
||||||
@@ -132,7 +138,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
{ "cardel", "dv" },
|
{ "cardel", "dv" },
|
||||||
"admin",
|
FilterGroups(CommandPermissions.cardel),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
local ped = GetPlayerPed(xPlayer.source)
|
local ped = GetPlayerPed(xPlayer.source)
|
||||||
local pedVehicle = GetVehiclePedIsIn(ped, false)
|
local pedVehicle = GetVehiclePedIsIn(ped, false)
|
||||||
@@ -168,7 +174,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
{ "fix", "repair" },
|
{ "fix", "repair" },
|
||||||
"admin",
|
FilterGroups(CommandPermissions.fix),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
local xTarget = args.playerId
|
local xTarget = args.playerId
|
||||||
local ped = GetPlayerPed(xTarget.source)
|
local ped = GetPlayerPed(xTarget.source)
|
||||||
@@ -202,7 +208,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"setaccountmoney",
|
"setaccountmoney",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.setaccountmoney),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if not args.playerId.getAccount(args.account) then
|
if not args.playerId.getAccount(args.account) then
|
||||||
return showError(TranslateCap("command_giveaccountmoney_invalid"))
|
return showError(TranslateCap("command_giveaccountmoney_invalid"))
|
||||||
@@ -232,7 +238,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"giveaccountmoney",
|
"giveaccountmoney",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.giveaccountmoney),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if not args.playerId.getAccount(args.account) then
|
if not args.playerId.getAccount(args.account) then
|
||||||
return showError(TranslateCap("command_giveaccountmoney_invalid"))
|
return showError(TranslateCap("command_giveaccountmoney_invalid"))
|
||||||
@@ -262,7 +268,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"removeaccountmoney",
|
"removeaccountmoney",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.removeaccountmoney),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if not args.playerId.getAccount(args.account) then
|
if not args.playerId.getAccount(args.account) then
|
||||||
return showError(TranslateCap("command_removeaccountmoney_invalid"))
|
return showError(TranslateCap("command_removeaccountmoney_invalid"))
|
||||||
@@ -293,7 +299,7 @@ ESX.RegisterCommand(
|
|||||||
if not Config.CustomInventory then
|
if not Config.CustomInventory then
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"giveitem",
|
"giveitem",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.giveitem),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
args.playerId.addInventoryItem(args.item, args.count)
|
args.playerId.addInventoryItem(args.item, args.count)
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
@@ -323,7 +329,7 @@ if not Config.CustomInventory then
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"giveweapon",
|
"giveweapon",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.giveweapon),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if args.playerId.hasWeapon(args.weapon) then
|
if args.playerId.hasWeapon(args.weapon) then
|
||||||
return showError(TranslateCap("command_giveweapon_hasalready"))
|
return showError(TranslateCap("command_giveweapon_hasalready"))
|
||||||
@@ -353,7 +359,7 @@ if not Config.CustomInventory then
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"giveammo",
|
"giveammo",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.giveammo),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if not args.playerId.hasWeapon(args.weapon) then
|
if not args.playerId.hasWeapon(args.weapon) then
|
||||||
return showError(TranslateCap("command_giveammo_noweapon_found"))
|
return showError(TranslateCap("command_giveammo_noweapon_found"))
|
||||||
@@ -383,7 +389,7 @@ if not Config.CustomInventory then
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"giveweaponcomponent",
|
"giveweaponcomponent",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.giveweaponcomponent),
|
||||||
function(xPlayer, args, showError)
|
function(xPlayer, args, showError)
|
||||||
if args.playerId.hasWeapon(args.weaponName) then
|
if args.playerId.hasWeapon(args.weaponName) then
|
||||||
local component = ESX.GetWeaponComponent(args.weaponName, args.componentName)
|
local component = ESX.GetWeaponComponent(args.weaponName, args.componentName)
|
||||||
@@ -423,11 +429,11 @@ if not Config.CustomInventory then
|
|||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
ESX.RegisterCommand({ "clear", "cls" }, "user", function(xPlayer)
|
ESX.RegisterCommand({ "clear", "cls" }, FilterGroups(CommandPermissions.clear), function(xPlayer)
|
||||||
xPlayer.triggerEvent("chat:clear")
|
xPlayer.triggerEvent("chat:clear")
|
||||||
end, false, { help = TranslateCap("command_clear") })
|
end, false, { help = TranslateCap("command_clear") })
|
||||||
|
|
||||||
ESX.RegisterCommand({ "clearall", "clsall" }, "admin", function(xPlayer)
|
ESX.RegisterCommand({ "clearall", "clsall" }, FilterGroups(CommandPermissions.clearall), function(xPlayer)
|
||||||
TriggerClientEvent("chat:clear", -1)
|
TriggerClientEvent("chat:clear", -1)
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
ESX.DiscordLogFields("UserActions", "Clear Chat /clearall Triggered!", "pink", {
|
ESX.DiscordLogFields("UserActions", "Clear Chat /clearall Triggered!", "pink", {
|
||||||
@@ -437,12 +443,12 @@ ESX.RegisterCommand({ "clearall", "clsall" }, "admin", function(xPlayer)
|
|||||||
end
|
end
|
||||||
end, true, { help = TranslateCap("command_clearall") })
|
end, true, { help = TranslateCap("command_clearall") })
|
||||||
|
|
||||||
ESX.RegisterCommand("refreshjobs", "admin", function()
|
ESX.RegisterCommand("refreshjobs", FilterGroups(CommandPermissions.refreshjobs), function()
|
||||||
ESX.RefreshJobs()
|
ESX.RefreshJobs()
|
||||||
end, true, { help = TranslateCap("command_clearall") })
|
end, true, { help = TranslateCap("command_clearall") })
|
||||||
|
|
||||||
if not Config.CustomInventory then
|
if not Config.CustomInventory then
|
||||||
ESX.RegisterCommand("refreshitems", "admin", function(xPlayer)
|
ESX.RegisterCommand("refreshitems", FilterGroups(CommandPermissions.refreshitems), function(xPlayer)
|
||||||
local itemCount = ESX.RefreshItems()
|
local itemCount = ESX.RefreshItems()
|
||||||
|
|
||||||
xPlayer.showNotification(Translate("command_refreshitems_success", itemCount), true, false, 140)
|
xPlayer.showNotification(Translate("command_refreshitems_success", itemCount), true, false, 140)
|
||||||
@@ -450,7 +456,7 @@ if not Config.CustomInventory then
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"clearinventory",
|
"clearinventory",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.clearinventory),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
for _, v in ipairs(args.playerId.inventory) do
|
for _, v in ipairs(args.playerId.inventory) do
|
||||||
if v.count > 0 then
|
if v.count > 0 then
|
||||||
@@ -478,7 +484,7 @@ if not Config.CustomInventory then
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"clearloadout",
|
"clearloadout",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.clearloadout),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
for i = #args.playerId.loadout, 1, -1 do
|
for i = #args.playerId.loadout, 1, -1 do
|
||||||
args.playerId.removeWeapon(args.playerId.loadout[i].name)
|
args.playerId.removeWeapon(args.playerId.loadout[i].name)
|
||||||
@@ -505,7 +511,7 @@ end
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"setgroup",
|
"setgroup",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.setgroup),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
if not args.playerId then
|
if not args.playerId then
|
||||||
args.playerId = xPlayer.source
|
args.playerId = xPlayer.source
|
||||||
@@ -537,7 +543,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"save",
|
"save",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.save),
|
||||||
function(_, args)
|
function(_, args)
|
||||||
Core.SavePlayer(args.playerId)
|
Core.SavePlayer(args.playerId)
|
||||||
print(("[^2Info^0] Saved Player - ^5%s^0"):format(args.playerId.source))
|
print(("[^2Info^0] Saved Player - ^5%s^0"):format(args.playerId.source))
|
||||||
@@ -552,26 +558,26 @@ ESX.RegisterCommand(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
ESX.RegisterCommand("saveall", "admin", function()
|
ESX.RegisterCommand("saveall", FilterGroups(CommandPermissions.saveall), function()
|
||||||
Core.SavePlayers()
|
Core.SavePlayers()
|
||||||
end, true, { help = TranslateCap("command_saveall") })
|
end, true, { help = TranslateCap("command_saveall") })
|
||||||
|
|
||||||
ESX.RegisterCommand("group", { "user", "admin" }, function(xPlayer, _, _)
|
ESX.RegisterCommand("group", FilterGroups(CommandPermissions.group), function(xPlayer, _, _)
|
||||||
print(("%s, you are currently: ^5%s^0"):format(xPlayer.getName(), xPlayer.getGroup()))
|
print(("%s, you are currently: ^5%s^0"):format(xPlayer.getName(), xPlayer.getGroup()))
|
||||||
end, true)
|
end, true)
|
||||||
|
|
||||||
ESX.RegisterCommand("job", { "user", "admin" }, function(xPlayer, _, _)
|
ESX.RegisterCommand("job", FilterGroups(CommandPermissions.job), function(xPlayer, _, _)
|
||||||
local job = xPlayer.getJob()
|
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"))
|
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)
|
end, false)
|
||||||
|
|
||||||
ESX.RegisterCommand("info", { "user", "admin" }, function(xPlayer)
|
ESX.RegisterCommand("info", FilterGroups(CommandPermissions.info), function(xPlayer)
|
||||||
local job = xPlayer.getJob().name
|
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))
|
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)
|
end, false)
|
||||||
|
|
||||||
ESX.RegisterCommand("playtime", { "user", "admin" }, function(xPlayer)
|
ESX.RegisterCommand("playtime", FilterGroups(CommandPermissions.playtime), function(xPlayer)
|
||||||
local playtime = xPlayer.getPlayTime()
|
local playtime = xPlayer.getPlayTime()
|
||||||
local days = math.floor(playtime / 86400)
|
local days = math.floor(playtime / 86400)
|
||||||
local hours = math.floor((playtime % 86400) / 3600)
|
local hours = math.floor((playtime % 86400) / 3600)
|
||||||
@@ -579,7 +585,7 @@ ESX.RegisterCommand("playtime", { "user", "admin" }, function(xPlayer)
|
|||||||
print(("Playtime: ^5%s^0 Days | ^5%s^0 Hours | ^5%s^0 Minutes"):format(days, hours, minutes))
|
print(("Playtime: ^5%s^0 Days | ^5%s^0 Hours | ^5%s^0 Minutes"):format(days, hours, minutes))
|
||||||
end, false)
|
end, false)
|
||||||
|
|
||||||
ESX.RegisterCommand("coords", "admin", function(xPlayer)
|
ESX.RegisterCommand("coords", FilterGroups(CommandPermissions.coords), function(xPlayer)
|
||||||
local ped = GetPlayerPed(xPlayer.source)
|
local ped = GetPlayerPed(xPlayer.source)
|
||||||
local coords = GetEntityCoords(ped, false)
|
local coords = GetEntityCoords(ped, false)
|
||||||
local heading = GetEntityHeading(ped)
|
local heading = GetEntityHeading(ped)
|
||||||
@@ -587,7 +593,7 @@ ESX.RegisterCommand("coords", "admin", function(xPlayer)
|
|||||||
print(("Coords - Vector4: ^5%s^0"):format(vector4(coords.x, coords.y, coords.z, heading)))
|
print(("Coords - Vector4: ^5%s^0"):format(vector4(coords.x, coords.y, coords.z, heading)))
|
||||||
end, false)
|
end, false)
|
||||||
|
|
||||||
ESX.RegisterCommand("tpm", "admin", function(xPlayer)
|
ESX.RegisterCommand("tpm", FilterGroups(CommandPermissions.tpm), function(xPlayer)
|
||||||
xPlayer.triggerEvent("esx:tpm")
|
xPlayer.triggerEvent("esx:tpm")
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
ESX.DiscordLogFields("UserActions", "Admin Teleport /tpm Triggered!", "pink", {
|
ESX.DiscordLogFields("UserActions", "Admin Teleport /tpm Triggered!", "pink", {
|
||||||
@@ -599,7 +605,7 @@ end, false)
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"goto",
|
"goto",
|
||||||
"admin",
|
FilterGroups(CommandPermissions["goto"]),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
local targetCoords = args.playerId.getCoords()
|
local targetCoords = args.playerId.getCoords()
|
||||||
local srcDim = GetPlayerRoutingBucket(xPlayer.source)
|
local srcDim = GetPlayerRoutingBucket(xPlayer.source)
|
||||||
@@ -630,7 +636,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"bring",
|
"bring",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.bring),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
local targetCoords = args.playerId.getCoords()
|
local targetCoords = args.playerId.getCoords()
|
||||||
local playerCoords = xPlayer.getCoords()
|
local playerCoords = xPlayer.getCoords()
|
||||||
@@ -662,7 +668,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"kill",
|
"kill",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.kill),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
args.playerId.triggerEvent("esx:killPlayer")
|
args.playerId.triggerEvent("esx:killPlayer")
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
@@ -685,7 +691,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"freeze",
|
"freeze",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.freeze),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
args.playerId.triggerEvent("esx:freezePlayer", "freeze")
|
args.playerId.triggerEvent("esx:freezePlayer", "freeze")
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
@@ -708,7 +714,7 @@ ESX.RegisterCommand(
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
"unfreeze",
|
"unfreeze",
|
||||||
"admin",
|
FilterGroups(CommandPermissions.unfreeze),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
args.playerId.triggerEvent("esx:freezePlayer", "unfreeze")
|
args.playerId.triggerEvent("esx:freezePlayer", "unfreeze")
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
@@ -729,7 +735,7 @@ ESX.RegisterCommand(
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
ESX.RegisterCommand("noclip", "admin", function(xPlayer)
|
ESX.RegisterCommand("noclip", FilterGroups(CommandPermissions.noclip), function(xPlayer)
|
||||||
xPlayer.triggerEvent("esx:noclip")
|
xPlayer.triggerEvent("esx:noclip")
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
ESX.DiscordLogFields("UserActions", "Admin NoClip /noclip Triggered!", "pink", {
|
ESX.DiscordLogFields("UserActions", "Admin NoClip /noclip Triggered!", "pink", {
|
||||||
@@ -739,7 +745,7 @@ ESX.RegisterCommand("noclip", "admin", function(xPlayer)
|
|||||||
end
|
end
|
||||||
end, false)
|
end, false)
|
||||||
|
|
||||||
ESX.RegisterCommand("players", "admin", function()
|
ESX.RegisterCommand("players", FilterGroups(CommandPermissions.players), function()
|
||||||
local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers
|
local xPlayers = ESX.GetExtendedPlayers() -- Returns all xPlayers
|
||||||
print(("^5%s^2 online player(s)^0"):format(#xPlayers))
|
print(("^5%s^2 online player(s)^0"):format(#xPlayers))
|
||||||
for i = 1, #xPlayers do
|
for i = 1, #xPlayers do
|
||||||
@@ -750,7 +756,7 @@ end, true)
|
|||||||
|
|
||||||
ESX.RegisterCommand(
|
ESX.RegisterCommand(
|
||||||
{"setdim", "setbucket"},
|
{"setdim", "setbucket"},
|
||||||
"admin",
|
FilterGroups(CommandPermissions.setdim),
|
||||||
function(xPlayer, args)
|
function(xPlayer, args)
|
||||||
SetPlayerRoutingBucket(args.playerId.source, args.dimension)
|
SetPlayerRoutingBucket(args.playerId.source, args.dimension)
|
||||||
if Config.AdminLogging then
|
if Config.AdminLogging then
|
||||||
|
|||||||
@@ -34,11 +34,52 @@ Config.DefaultSpawns = { -- If you want to have more spawn positions and select
|
|||||||
--{x = 233.5459, y = -868.2626, z = 30.2922, heading = 1.0}
|
--{x = 233.5459, y = -868.2626, z = 30.2922, heading = 1.0}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
---@deprecated Use `Config.CommandPermissions` as the single source of truth for command ACLs.
|
||||||
|
--- Kept temporarily for backwards compatibility with external resources that still read `Config.AdminGroups`.
|
||||||
|
--- Will be removed in ESX 1.15.
|
||||||
Config.AdminGroups = {
|
Config.AdminGroups = {
|
||||||
["owner"] = true,
|
["owner"] = true,
|
||||||
["admin"] = true,
|
["admin"] = true,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Config.CommandPermissions = {
|
||||||
|
["setcoords"] = { "owner", "admin" }, -- /setcoords, /tp
|
||||||
|
["setjob"] = { "owner", "admin" },
|
||||||
|
["car"] = { "owner", "admin" },
|
||||||
|
["cardel"] = { "owner", "admin" }, -- /cardel, /dv
|
||||||
|
["fix"] = { "owner", "admin" }, -- /fix, /repair
|
||||||
|
["setaccountmoney"] = { "owner", "admin" },
|
||||||
|
["giveaccountmoney"] = { "owner", "admin" },
|
||||||
|
["removeaccountmoney"] = { "owner", "admin" },
|
||||||
|
["giveitem"] = { "owner", "admin" },
|
||||||
|
["giveweapon"] = { "owner", "admin" },
|
||||||
|
["giveammo"] = { "owner", "admin" },
|
||||||
|
["giveweaponcomponent"] = { "owner", "admin" },
|
||||||
|
["clearall"] = { "owner", "admin" }, -- /clearall, /clsall
|
||||||
|
["refreshjobs"] = { "owner", "admin" },
|
||||||
|
["refreshitems"] = { "owner", "admin" },
|
||||||
|
["clearinventory"] = { "owner", "admin" },
|
||||||
|
["clearloadout"] = { "owner", "admin" },
|
||||||
|
["setgroup"] = { "owner", "admin" },
|
||||||
|
["save"] = { "owner", "admin" },
|
||||||
|
["saveall"] = { "owner", "admin" },
|
||||||
|
["goto"] = { "owner", "admin" },
|
||||||
|
["bring"] = { "owner", "admin" },
|
||||||
|
["kill"] = { "owner", "admin" },
|
||||||
|
["freeze"] = { "owner", "admin" },
|
||||||
|
["unfreeze"] = { "owner", "admin" },
|
||||||
|
["setdim"] = { "owner", "admin" }, -- /setdim, /setbucket
|
||||||
|
["players"] = { "owner", "admin" },
|
||||||
|
["noclip"] = { "owner", "admin" },
|
||||||
|
["tpm"] = { "owner", "admin" },
|
||||||
|
["coords"] = { "owner", "admin" },
|
||||||
|
["clear"] = { "user", "admin", "owner" }, -- /clear, /cls
|
||||||
|
["group"] = { "user", "admin", "owner" },
|
||||||
|
["job"] = { "user", "admin", "owner" },
|
||||||
|
["info"] = { "user", "admin", "owner" },
|
||||||
|
["playtime"] = { "user", "admin", "owner" },
|
||||||
|
}
|
||||||
|
|
||||||
Config.ValidCharacterSets = { -- Only enable additional charsets if your server is multilingual. By default everything is false.
|
Config.ValidCharacterSets = { -- Only enable additional charsets if your server is multilingual. By default everything is false.
|
||||||
['el'] = false, -- Greek
|
['el'] = false, -- Greek
|
||||||
['sr'] = false, -- Cyrillic
|
['sr'] = false, -- Cyrillic
|
||||||
|
|||||||
Reference in New Issue
Block a user