diff --git a/lua/gmod_integration/client/cl_screenshots.lua b/lua/gmod_integration/client/cl_screenshots.lua index 2bdbd5b..a13a517 100644 --- a/lua/gmod_integration/client/cl_screenshots.lua +++ b/lua/gmod_integration/client/cl_screenshots.lua @@ -17,6 +17,11 @@ hook.Add("PostRender", "gmInteScreenshot", function() } local screenCapture = render.Capture(captureData) + if (!screenCapture) then + chat.AddText(Color(255, 130, 92), "[Gmod Integration] ", Color(102, 63, 63), "Failed to take screenshot, your system may not support this feature.") + return + end + screenCapture = util.Base64Encode(screenCapture) local size = math.Round(string.len(screenCapture) / 1024) @@ -31,6 +36,7 @@ hook.Add("PostRender", "gmInteScreenshot", function() }, function(code, body) gmInte.log("Screenshot sent to Discord", true) + chat.AddText(Color(255, 130, 92), "[Gmod Integration] ", Color(255, 255, 255), "Screenshot sent to Discord.") end, function(code, body) gmInte.log("Screenshot failed to send to Discord, error code: " .. code, true) @@ -42,13 +48,8 @@ end) // Methods // -function gmInte.takeScreenShot(serverID, authToken) - gmInte.config.id = serverID - gmInte.config.token = authToken - - timer.Simple(0.2, function() - ScreenshotRequested = true - end) +function gmInte.takeScreenShot() + ScreenshotRequested = true end // @@ -56,7 +57,7 @@ end // concommand.Add("gmod_integration_screenshot", function() - gmInte.SendNet("takeScreenShot") + gmInte.takeScreenShot() end) // @@ -69,6 +70,7 @@ hook.Add("OnPlayerChat", "gmInteChatCommands", function(ply, text, teamChat, isD text = string.sub(text, 2) if (text == "screen") then - gmInte.SendNet("takeScreenShot") + gmInte.takeScreenShot() + return true end end) \ No newline at end of file diff --git a/lua/gmod_integration/client/cl_steaming.lua b/lua/gmod_integration/client/cl_steaming.lua index 51b377c..e2c3275 100644 --- a/lua/gmod_integration/client/cl_steaming.lua +++ b/lua/gmod_integration/client/cl_steaming.lua @@ -23,6 +23,7 @@ hook.Add("PostRender", "gmInte:PostRender:Stream:Frame", function() } local screenCapture = render.Capture(captureConfig) + if (!screenCapture) then return end screenCapture = util.Base64Encode(screenCapture) local size = math.Round(string.len(screenCapture) / 1024) @@ -45,33 +46,33 @@ hook.Add("PostRender", "gmInte:PostRender:Stream:Frame", function() StreamsRequeted = false end) -// -// Methods -// +-- // +-- // Methods +-- // -function gmInte.takeScreenShot(serverID, authToken) - gmInte.config.id = serverID - gmInte.config.token = authToken - StreamsRequeted = true -end +-- function gmInte.takeScreenShot(serverID, authToken) +-- gmInte.config.id = serverID +-- gmInte.config.token = authToken +-- StreamsRequeted = true +-- end -function gmInte.stopScreenShot() - StreamsRequeted = false -end +-- function gmInte.stopScreenShot() +-- StreamsRequeted = false +-- end -// -// Console Commands -// +-- // +-- // Console Commands +-- // -concommand.Add("gmod_integration_stream", function() - StreamsRequeted = !StreamsRequeted - gmInte.log("Streaming frames to WebPanel: " .. tostring(StreamsRequeted)) +-- concommand.Add("gmod_integration_stream", function() +-- StreamsRequeted = !StreamsRequeted +-- gmInte.log("Streaming frames to WebPanel: " .. tostring(StreamsRequeted)) - -- if (StreamsRequeted) then - -- gmInte.stopScreenShot() - -- gmInte.log("Stopped streaming frames to WebPanel") - -- else - -- gmInte.SendNet("getSingleUseToken") - -- gmInte.log("Started streaming frames to WebPanel") - -- end -end) \ No newline at end of file +-- -- if (StreamsRequeted) then +-- -- gmInte.stopScreenShot() +-- -- gmInte.log("Stopped streaming frames to WebPanel") +-- -- else +-- -- gmInte.SendNet("getSingleUseToken") +-- -- gmInte.log("Started streaming frames to WebPanel") +-- -- end +-- end) \ No newline at end of file diff --git a/lua/gmod_integration/server/sv_net.lua b/lua/gmod_integration/server/sv_net.lua index bd9b3d6..aa32f56 100644 --- a/lua/gmod_integration/server/sv_net.lua +++ b/lua/gmod_integration/server/sv_net.lua @@ -12,10 +12,10 @@ local netSend = { ["wsRelayDiscordChat"] = 1, ["adminConfig"] = 2, ["testApiConnection"] = 3, - ["screenshotToken"] = 4, ["publicConfig"] = 5, ["chatColorMessage"] = 6, - ["openVerifPopup"] = 7 + ["openVerifPopup"] = 7, + ["savePlayerToken"] = 8 } // Send @@ -59,6 +59,9 @@ local netReceive = { end, [6] = function(ply) gmInte.verifyPlayer(ply) + end, + [7] = function(ply, data) + sendPlayerToken(ply) end } diff --git a/lua/gmod_integration/server/sv_screenshots.lua b/lua/gmod_integration/server/sv_screenshots.lua deleted file mode 100644 index 9d160bf..0000000 --- a/lua/gmod_integration/server/sv_screenshots.lua +++ /dev/null @@ -1,24 +0,0 @@ -// -// Websocket -// - -function gmInte.wsPlayerScreen(data) - for _, ply in pairs(player.GetAll()) do - if (ply:SteamID64() == data.steamID64) then - gmInte.takeScreenshot(ply) - end - end -end - -// -// Methods -// - -function gmInte.takeScreenshot(ply) - gmInte.getClientOneTimeToken(ply, function(oneTime) - gmInte.SendNet("screenshotToken", { - ["serverID"] = gmInte.config.id, - ["oneTimeToken"] = oneTime - }, ply) - end) -end \ No newline at end of file