feat: replace CreateHTTPRequest with CreateHTTPRequestScriptVM

Allows the game client to make HTTP API calls from a listen server
(local lobby) instead of requiring a Steam dedicated server.
CreateHTTPRequestScriptVM has the exact same API signature but works
in both dedicated server and listen server contexts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
achmad
2026-05-29 17:36:08 +07:00
parent 49b790349f
commit 72b73c4dd6
16 changed files with 70 additions and 70 deletions
@@ -77,7 +77,7 @@ local function extractContractsArray(self, data)
end
function ____exports.contractAdapterGetPlayerContracts(self, steamId, callback)
local url = (API(nil) .. "/contracts/player/") .. steamId
local req = CreateHTTPRequest("GET", url)
local req = CreateHTTPRequestScriptVM("GET", url)
setApiHeaders(nil, req)
req:Send(function(result)
if result.StatusCode >= 200 and result.StatusCode < 300 then
@@ -95,7 +95,7 @@ function ____exports.contractAdapterGetPlayerContracts(self, steamId, callback)
end
function ____exports.contractAdapterSaveDroppedContract(self, steamId, requestId, draft, callback)
local url = API(nil) .. "/contracts/drop"
local req = CreateHTTPRequest("POST", url)
local req = CreateHTTPRequestScriptVM("POST", url)
setApiHeadersLong(nil, req)
req:SetHTTPRequestRawPostBody(
"application/json",
@@ -124,7 +124,7 @@ function ____exports.contractAdapterSaveDroppedContract(self, steamId, requestId
end
function ____exports.contractAdapterNominate(self, sessionId, requestId, steamId, contractInstanceId, callback)
local url = ((API(nil) .. "/contracts/session/") .. sessionId) .. "/nominate"
local req = CreateHTTPRequest("POST", url)
local req = CreateHTTPRequestScriptVM("POST", url)
setApiHeaders(nil, req)
req:SetHTTPRequestRawPostBody(
"application/json",
@@ -136,7 +136,7 @@ function ____exports.contractAdapterNominate(self, sessionId, requestId, steamId
end
function ____exports.contractAdapterVote(self, sessionId, requestId, voterSteamId, contractInstanceId, callback)
local url = ((API(nil) .. "/contracts/session/") .. sessionId) .. "/vote"
local req = CreateHTTPRequest("POST", url)
local req = CreateHTTPRequestScriptVM("POST", url)
setApiHeaders(nil, req)
req:SetHTTPRequestRawPostBody(
"application/json",
@@ -148,7 +148,7 @@ function ____exports.contractAdapterVote(self, sessionId, requestId, voterSteamI
end
function ____exports.contractAdapterFinalizeContractVoting(self, sessionId, requestId, matchId, localWinnerContractInstanceId, candidatesSnapshot, votesSnapshot, callback)
local url = ((API(nil) .. "/contracts/session/") .. sessionId) .. "/finalize"
local req = CreateHTTPRequest("POST", url)
local req = CreateHTTPRequestScriptVM("POST", url)
setApiHeadersLong(nil, req)
local body = {
request_id = requestId,
@@ -179,7 +179,7 @@ function ____exports.contractAdapterFinalizeContractVoting(self, sessionId, requ
end
function ____exports.contractAdapterLinkSessionToMatch(self, sessionId, requestId, matchId, callback)
local url = ((API(nil) .. "/contracts/session/") .. sessionId) .. "/link-match"
local req = CreateHTTPRequest("POST", url)
local req = CreateHTTPRequestScriptVM("POST", url)
setApiHeaders(nil, req)
req:SetHTTPRequestRawPostBody(
"application/json",