64 lines
1.9 KiB
Lua
64 lines
1.9 KiB
Lua
PLUGIN.name = "Whitelist Menu"
|
|
PLUGIN.author = "Refosel"
|
|
PLUGIN.description = "Меню для выдачи фракции, подразделения, специализации и звания."
|
|
|
|
-- Регистрация CAMI-привилегии при загрузке
|
|
function PLUGIN:Load()
|
|
CAMI.RegisterPrivilege({
|
|
Name = "WhitelistMenu - Open",
|
|
Description = "Может открывать меню назначения роли (фракция, подразделение, специализация, звание).",
|
|
MinAccess = "user"
|
|
})
|
|
end
|
|
|
|
PLUGIN.AllowedGroups = {
|
|
["superadmin"] = true,
|
|
["super admin"] = true,
|
|
["projectteam"] = true,
|
|
["teh.admin"] = true,
|
|
["curator"] = true,
|
|
["sudo-curator"] = true,
|
|
["asist-sudo"] = true,
|
|
["admin"] = true,
|
|
["st.admin"] = true,
|
|
["ivent"] = true,
|
|
["st.event"] = true,
|
|
["event"] = true,
|
|
["disp"] = true,
|
|
["assistant"] = true,
|
|
["specadmin"] = true,
|
|
["sponsor"] = true,
|
|
["prem"] = true,
|
|
["cmd"] = true,
|
|
["inst"] = true
|
|
}
|
|
|
|
function PLUGIN:HasAccess(client)
|
|
local character = client:GetCharacter()
|
|
if (character and (character:HasFlags("W") or character:HasFlags("w"))) then
|
|
return true
|
|
end
|
|
|
|
local userGroup = string.lower(client:GetUserGroup() or "user")
|
|
return self.AllowedGroups[userGroup] or client:IsAdmin() or client:IsSuperAdmin()
|
|
end
|
|
|
|
ix.util.Include("cl_plugin.lua")
|
|
ix.util.Include("sv_plugin.lua")
|
|
|
|
-- Команда без аргументов
|
|
ix.command.Add("wl", {
|
|
description = "Открыть меню назначения роли",
|
|
arguments = {},
|
|
CanRun = function(self, client)
|
|
return PLUGIN:HasAccess(client)
|
|
end,
|
|
OnRun = function(self, client)
|
|
if not client:Alive() then
|
|
return "@notAlive"
|
|
end
|
|
net.Start("ixWhitelistMenuOpen")
|
|
net.Send(client)
|
|
end
|
|
})
|