From a24f1a846d9a03af135b9885248f322b52002df7 Mon Sep 17 00:00:00 2001 From: Linventif Date: Tue, 27 Feb 2024 02:31:14 +0100 Subject: [PATCH] refactor: player token gen & verif --- .../server/sv_players_tokens.lua | 27 ++++++++++++ .../server/sv_players_verif.lua | 42 +++++++++++++++++++ 2 files changed, 69 insertions(+) create mode 100644 lua/gmod_integration/server/sv_players_tokens.lua create mode 100644 lua/gmod_integration/server/sv_players_verif.lua diff --git a/lua/gmod_integration/server/sv_players_tokens.lua b/lua/gmod_integration/server/sv_players_tokens.lua new file mode 100644 index 0000000..9397a3d --- /dev/null +++ b/lua/gmod_integration/server/sv_players_tokens.lua @@ -0,0 +1,27 @@ +// +// Methods +// + +function gmInte.getClientOneTimeToken(ply, callback) + if (!ply:IsValid() || !ply:IsPlayer()) then return end + + gmInte.http.get("/players/" .. ply:SteamID64() .. "/single-token", function(code, data) + if (callback) then callback(data) end + end) +end + +function gmInte.createClientToken(ply, callback) + if (!ply:IsValid() || !ply:IsPlayer()) then return end + + gmInte.http.get("/players/" .. ply:SteamID64() .. "/tokens", function(code, data) + if (callback) then callback(data) end + end) +end + +function gmInte.revokeClientToken(ply, callback) + if (!ply:IsValid() || !ply:IsPlayer()) then return end + + gmInte.http.delete("/players/" .. ply:SteamID64() .. "/tokens", function(code, data) + if (callback) then callback(data) end + end) +end \ No newline at end of file diff --git a/lua/gmod_integration/server/sv_players_verif.lua b/lua/gmod_integration/server/sv_players_verif.lua new file mode 100644 index 0000000..e0005a9 --- /dev/null +++ b/lua/gmod_integration/server/sv_players_verif.lua @@ -0,0 +1,42 @@ +// +// Methods +// + +function gmInte.verifyPlayer(ply) + if (!ply:IsValid() || !ply:IsPlayer(ply)) then return end + + gmInte.http.get("/players/" .. ply:SteamID64(), function(code, data) + if (!gmInte.config.forcePlayerLink) then return end + + if (data && data.steamID64) then + if (ply.gmIntVerified) then return end + gmInte.SendNet("chatColorMessage", { + [1] = { + ["text"] = "You have been verified", + ["color"] = Color(255, 255, 255) + } + }, ply) + ply:Freeze(false) + ply.gmIntVerified = true + else + gmInte.SendNet("chatColorMessage", { + [1] = { + ["text"] = "You are not verified", + ["color"] = Color(255, 0, 0) + } + }, ply) + ply:Freeze(true) + gmInte.SendNet("openVerifPopup", nil, ply) + end + end) +end + +// +// Hooks +// + +hook.Add("gmInte:PlayerReady", "gmInte:Verif:PlayerReady", function(ply) + if (!gmInte.config.forcePlayerLink) then return end + + gmInte.verifyPlayer(ply) +end) \ No newline at end of file