diff --git a/mod.json b/mod.json index 7b1bd34..84e3c75 100644 --- a/mod.json +++ b/mod.json @@ -2,5 +2,19 @@ "Name": "ToneAPI.pulse", "Description": "placeholder text", "Version": "0.0.1", - "LoadPriority": 2 + "LoadPriority": 1, + "Scripts": [ + { + "Path": "pulse.gnut", + "RunOn": "CLIENT", + "ClientCallback": { + "After": "GetStatsFromToneAPI" + } + } + ], + "ConVars": [ + { + "ToneURL": "https://tone.sleepycat.date/v1" + } + ] } \ No newline at end of file diff --git a/mod/scripts/vscripts/pulse.gnut b/mod/scripts/vscripts/pulse.gnut new file mode 100644 index 0000000..ca4762f --- /dev/null +++ b/mod/scripts/vscripts/pulse.gnut @@ -0,0 +1,20 @@ +global function GetStatsFromToneAPI + +table JSONForConversion = {} + +void function GetStatsFromToneAPI() +{ + HttpRequest getStats + getStats.method = HttpRequestMethod.GET + getStats.url = GetConVarString("ToneURL") + "/client/weapons" + getStats.queryParameters["player"] <- [NSGetLocalPlayerUID().tostring()] + void functionref(HttpRequestResponse) onSuccess = void function(HttpRequestResponse response) + { + JSONForConversion = DecodeJSON(response.body) + foreach (key, value in JSONForConversion) { + globalToneAPIKillData[string(key)] <- int(value) + } + } + bool result = NSHttpRequest(getStats, onSuccess) + return result +} \ No newline at end of file diff --git a/mod/scripts/vscripts/sh_stats.gnut b/mod/scripts/vscripts/sh_stats.gnut index 3f4d077..195d3e0 100644 --- a/mod/scripts/vscripts/sh_stats.gnut +++ b/mod/scripts/vscripts/sh_stats.gnut @@ -9,6 +9,7 @@ global function GetStatVarType global function GetStatVarLocalizedUnlock global function Stats_GetFixedSaveVar global function FD_GetHighestDifficultyForTitan +global table globalToneAPIKillData = {} /*void function AddItemsToStatsList( array refs ) { @@ -456,8 +457,10 @@ string function GetStatVarLocalizedUnlock( string category, string alias, string int function GetPlayerStatInt( entity player, string category, string alias, string subAlias = "" ) { Assert( IsUI() || IsValid( player ) ) - string statString = GetStatVar( category, alias, subAlias ) + foreach (string key, int value in globalToneAPIKillData) { + if(statString == "weaponKillStats[" + key + "].total") return value + } return player.GetPersistentVarAsInt( statString ) }