add: cachedData when player connect

This commit is contained in:
Linventif 2024-08-09 16:58:44 +00:00
parent 77f21a6131
commit 4ae8735a25

View File

@ -28,14 +28,31 @@ local function checkDiscordBanStatus(banStatus)
return true return true
end end
local function playerFilter(data) local function checkPlayerFilter(code, body, data)
if data.bot == 1 then return end
data.steamID64 = util.SteamIDTo64(data.networkid)
gmInte.http.get("/servers/:serverID/players/" .. data.steamID64, function(code, body)
if !body then return end if !body then return end
if gmInte.config.maintenance && !body.bypassMaintenance && !body.discordAdmin then game.KickID(data.networkid, filterMessage("The server is currently under maintenance and you are not whitelisted.")) end if gmInte.config.maintenance && !body.bypassMaintenance && !body.discordAdmin then game.KickID(data.networkid, filterMessage("The server is currently under maintenance and you are not whitelisted.")) end
if !checkBanStatus(body.ban) then game.KickID(data.networkid, filterMessage("You are banned from this server.")) end if !checkBanStatus(body.ban) then game.KickID(data.networkid, filterMessage("You are banned from this server.")) end
if !checkDiscordBanStatus(body.discord_ban) then game.KickID(data.networkid, filterMessage("You are banned from our discord server.")) end if !checkDiscordBanStatus(body.discord_ban) then game.KickID(data.networkid, filterMessage("You are banned from our discord server.")) end
end
local cachePlayerFilter = {}
local function playerFilter(data)
if data.bot == 1 then return end
data.steamID64 = util.SteamIDTo64(data.networkid)
local cachedData = cachePlayerFilter[data.steamID64]
if cachedData && cachedData.curTime + 30 > CurTime() then
checkPlayerFilter(cachedData.code, cachedData.body, data)
return
end
gmInte.http.get("/servers/:serverID/players/" .. data.steamID64, function(code, body)
cachePlayerFilter[data.steamID64] = {
["code"] = code,
["body"] = body,
["curTime"] = CurTime()
}
checkPlayerFilter(code, body, data)
end, function(code, body) if gmInte.config.maintenance then game.KickID(data.networkid, filterMessage("The server is currently under maintenance and we cannot verify your account.\nVerification URL: https://verif.gmod-integration.com")) end end) end, function(code, body) if gmInte.config.maintenance then game.KickID(data.networkid, filterMessage("The server is currently under maintenance and we cannot verify your account.\nVerification URL: https://verif.gmod-integration.com")) end end)
end end