68 lines
1.5 KiB
Lua
68 lines
1.5 KiB
Lua
--================================--
|
|
-- FIRE SCRIPT v1.6.10 --
|
|
-- by GIMI (+ foregz, Albo1125) --
|
|
-- License: GNU GPL 3.0 --
|
|
--================================--
|
|
|
|
Whitelist = {
|
|
players = {},
|
|
config = {},
|
|
__index = self,
|
|
init = function(object)
|
|
object = object or {players = {}, config = {}}
|
|
setmetatable(object, self)
|
|
return object
|
|
end
|
|
}
|
|
|
|
function Whitelist:check(serverId)
|
|
if serverId > 0 then
|
|
local steamID = GetPlayerIdentifier(serverId, 0)
|
|
if self.config[steamID] == true or IsPlayerAceAllowed(serverId, "firescript.all") then
|
|
self.players[serverId] = true
|
|
elseif self.players[serverId] ~= nil then
|
|
self.players[serverId] = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
function Whitelist:isWhitelisted(serverId, ace)
|
|
ace = tostring(ace)
|
|
return (serverId > 0 and (self.players[serverId] == true or (ace and IsPlayerAceAllowed(serverId, ace))))
|
|
end
|
|
|
|
function Whitelist:addPlayer(serverId, steamId)
|
|
if steamId then
|
|
self.config[steamId] = true
|
|
Whitelist:save()
|
|
end
|
|
if serverId then
|
|
self.players[serverId] = true
|
|
end
|
|
end
|
|
|
|
function Whitelist:removePlayer(serverId, steamId)
|
|
if steamId then
|
|
self.config[steamId] = nil
|
|
Whitelist:save()
|
|
end
|
|
if serverId then
|
|
self.players[serverId] = nil
|
|
end
|
|
end
|
|
|
|
function Whitelist:load()
|
|
local whitelistFile = loadData("whitelist")
|
|
if whitelistFile ~= nil then
|
|
self.config = whitelistFile
|
|
for _, playerId in ipairs(GetPlayers()) do
|
|
self:check(tonumber(playerId))
|
|
end
|
|
else
|
|
saveData({}, "whitelist")
|
|
end
|
|
end
|
|
|
|
function Whitelist:save()
|
|
saveData(self.config, "whitelist")
|
|
end |