diff --git a/README.md b/README.md index b39e222..81cad49 100644 --- a/README.md +++ b/README.md @@ -59,10 +59,11 @@ setr core:disableVehicleAirControl true setr core:useInventoryForKeys true # You can set admins here by their identifiers, admins will receive admin group in core and have access to group.admin ace perms. -# Admins get access to commands and more. -set core:admins ["fivem:1459624"] +# You can also use Discord role ids, Admins get access to commands and more. +set core:admins ["fivem:1459624", "fivem:1152629"] +set core:adminDiscordRoles ["944284542758449212", "93422454258349612", "93345451558145232"] -# Allow ox_lib to use commands, don't remove this. +# Allow ox_lib to use commands, don't remove this! add_ace resource.ox_lib command.add_ace allow add_ace resource.ox_lib command.remove_ace allow add_ace resource.ox_lib command.add_principal allow diff --git a/server/main.lua b/server/main.lua index e0c45f8..c692d6b 100644 --- a/server/main.lua +++ b/server/main.lua @@ -22,6 +22,7 @@ Config = { useInventoryForKeys = GetConvarInt("core:useInventoryForKeys", 1) == 1, groups = json.decode(GetConvar("core:groups", "[]")), admins = json.decode(GetConvar("core:admins", "[]")), + adminDiscordRoles = json.decode(GetConvar("core:adminDiscordRoles", "[]")), multiCharacter = false } diff --git a/server/player.lua b/server/player.lua index d3d3493..652f3b6 100644 --- a/server/player.lua +++ b/server/player.lua @@ -285,6 +285,17 @@ local function createCharacterTable(info) self.addGroup("admin") end end + + local roles = self.discord.roles + if roles then + for i=1, #Config.adminDiscordRoles do + local role = Config.adminDiscordRoles[i] + if lib.table.contains(roles, role) then + self.addGroup("admin") + end + end + end + for name, _ in pairs(self.groups) do lib.addPrincipal(self.source, ("group.%s"):format(name)) end