-
Notifications
You must be signed in to change notification settings - Fork 22
/
client.lua
88 lines (81 loc) · 2.33 KB
/
client.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
local firstSpawn = true
local resourceNames = {}
--[[ Structure:
['resourceName'] = { id = int, name = string },
['resourceName'] = { id = int, name = string },
]]
RegisterNetEvent("salty_tokenizer:obfuscateReceived")
AddEventHandler("salty_tokenizer:obfuscateReceived", function(id, name)
for resource,property in pairs(resourceNames) do
if property.id == id then
property.name = name
break
end
end
end)
function init()
if Config.VerboseClient then
print("> > > S A L T Y _ T O K E N I Z E R < < <")
end
math.randomseed(GetClockHours() + GetClockMinutes())
Citizen.CreateThread(function()
TriggerEvent('salty_tokenizer:clientReady')
end)
Citizen.CreateThread(function()
Citizen.Wait(Config.ClientDelay)
TriggerServerEvent('salty_tokenizer:playerSpawned')
end)
end
AddEventHandler("playerSpawned", function()
if firstSpawn then
firstSpawn = false
init()
end
end)
function validId(id)
if #resourceNames > 0 then
for resource,property in pairs(resourceNames) do
if property.id == id then
return false
end
end
end
return true
end
function generateId()
local id = math.random(1,100000)
while not validId(id) do
id = math.random(1,100000)
if Config.VerboseClient then
print("ID Collision, Generating New ID")
end
end
return id
end
function requestObfuscatedEventName(resource)
if resourceNames[resource] == nil then
resourceNames[resource] = { id = generateId(), name = false }
TriggerServerEvent('salty_tokenizer:requestObfuscation', resource, resourceNames[resource].id)
while not resourceNames[resource].name do
Citizen.Wait(0)
end
end
return resourceNames[resource].name
end
function setupClientResource(resource)
local token = false
if Config.VerboseClient then
print("Deploying Obfuscated Event: " .. tostring(resource) .. " = " .. tostring(requestObfuscatedEventName(resource)))
end
RegisterNetEvent(requestObfuscatedEventName(resource))
AddEventHandler(requestObfuscatedEventName(resource), function(tokenReceived)
token = tokenReceived
if Config.VerboseClient then
print("Obfuscated Event Token Received: " .. tostring(resource) .. " (" .. tostring(requestObfuscatedEventName(resource)) .. "), Token: " .. tostring(token))
end
end)
while not token do
Citizen.Wait(0)
end
return token
end