-
Notifications
You must be signed in to change notification settings - Fork 1
/
server.lua
93 lines (84 loc) · 3.23 KB
/
server.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
local cachedLicenses = {}
local version = LoadResourceFile(GetCurrentResourceName(), "version.txt")
function log(identifier, message)
local dato = os.date("%d-%m-%Y kl. %X")
local embedZ = {{
["title"] = "🛡️ FiveM Defender",
["color"] = tonumber("052b31", 16),
["fields"] = {
{
["name"] = "identifier",
["value"] = "> "..identifier
},
{
["name"] = "Message",
["value"] = "> "..message
}
},
["footer"] = {
["text"] = dato
}
}}
if Config.webhook ~= "" and Config.webhook ~= nil then
PerformHttpRequest(Config.webhook, function(e, t, h) end, 'POST', json.encode({username = "FiveM Defender", embeds = embedZ}), { ['Content-Type'] = 'application/json' })
else
print("[FiveM Defender] "..identifier.." "..message)
end
end
function checkBypass(identifier)
for k,v in pairs(Config.Bypass) do
if v == identifier then
return true
end
end
return false
end
Citizen.CreateThread(function()
PerformHttpRequest("https://raw.githubusercontent.com/Ezague/FiveM-Defender-Script/main/version.txt", function(err, text, headers)
if text == version then
print("[FiveM Defender] The script is up to date")
else
print("^1[FiveM Defender] OUTDATED - Download newest version from: https://github.com/Ezague/FiveM-Defender-Script^0")
end
end, 'GET', '')
PerformHttpRequest("http://ponduslan.dk/defender/all", function(statusCode, text, headers)
if statusCode == 200 or statusCode == 304 then
if text ~= nil and text ~= "" then
for i,k in pairs(json.decode(text)) do
for x,b in pairs(k) do
if b ~= "null" and b ~= nil then
cachedLicenses[b] = true
end
end
end
print("^2[FiveM Defender] Cache has been loaded.^0")
else
print("^1[FiveM Defender] Failed to load cache, FiveM Defender will be disabled.^0")
end
else
print("[FiveM Defender] Failed to load cache, FiveM Defender will be disabled.^0")
end
end, 'GET', '')
end)
AddEventHandler("playerConnecting", function(name, setKickReason, deferrals)
local player = source
local identifiers = GetPlayerIdentifiers(player)
local found = false
deferrals.defer()
Wait(10)
deferrals.update("[FiveM Defender] Checking identifiers...")
for k,v in pairs(identifiers) do
if cachedLicenses[v] == true then
if not checkBypass(v) then
found = true
log(v, "User was excluded due to confirmed modding.")
deferrals.done("\n[FiveM Defender] You are excluded from this server due to modding. \nExcluded Identifier: " .. v .. " \n\n[Discord] discord.gg/F8hX3xhXXH")
else
log(v, "User was a modder, but was allowed access to the server because you set them up in your bypass.")
end
break;
end
end
Wait(1000)
if not found then deferrals.done() end
end)