Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
heatray committed Aug 28, 2020
1 parent d3d5eb9 commit 0c2b3f8
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 55 deletions.
6 changes: 3 additions & 3 deletions KFGimli/Classes/GimliMut.uc
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
//--------------------------------------------------------------
// Killing Floor Mutator
// Repair "Gimli That Axe!" Steam Achievement on Server-side
// Repair "Gimli That Axe!" Steam Achievement on server-side
// Created by Heatray, https://s.team/p/kff-tvmg
//--------------------------------------------------------------

class GimliMut extends Mutator;

var KFPlayerController Player;
var KFSteamStatsAndAchievements SteamStatsAndAchievements;
var KFSteamWebApiFix SteamWebApi;
var KFSteamWebApiNew SteamWebApi;
var string userName;
var string steamID;

Expand All @@ -34,7 +34,7 @@ function SetupWebAPI()
Log("GIMLI FIX: Checking for" @ userName @ "id=" $ steamID);

if (SteamWebApi == None)
SteamWebApi = Spawn(class'KFSteamWebApiFix', self);
SteamWebApi = Spawn(class'KFSteamWebApiNew', self);

SteamWebApi.AchievementReport = SteamStatsAndAchievements.OnAchievementReport;
SteamWebApi.steamName = userName;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,65 +1,28 @@
class KFSteamWebApiFix extends KFSteamWebApi;
class KFSteamWebApiNew extends KFSteamWebApi;

var string steamName;
var string achievementName;
var string jsonSuccess;
var string jsonAchieved;

var ROBufferedTCPLinkFix myLinkFix;

protected function ROBufferedTCPLinkFix CreateNewLinkFix()
{
local class<ROBufferedTCPLinkFix> NewLinkClass;
local ROBufferedTCPLinkFix NewLink;

if (LinkClassName != "")
NewLinkClass = class<ROBufferedTCPLinkFix>(DynamicLoadObject(LinkClassName, class'Class'));

if (NewLinkClass != None)
NewLink = Spawn(NewLinkClass);

NewLink.ResetBuffer();

return NewLink;
}

function GetAchievements(string steamIDIn)
{
steamID = steamIDIn;
playerStats = "";

if(myLinkFix == None)
myLinkFix = CreateNewLinkFix();

if(myLinkFix != None)
{
myLinkFix.ServerIpAddr.Port = 0;

sendGet = true;
myLinkFix.Resolve(steamAPIAddr); // NOTE: This is a non-blocking operation

SetTimer(0.25, true);
}
}

event Timer()
{
local string command;
local bool bSuccess;

if (myLinkFix != None)
if (myLink != None)
{
if (myLinkFix.ServerIpAddr.Port != 0)
if (myLink.ServerIpAddr.Port != 0)
{
if (myLinkFix.IsConnected())
if (myLink.IsConnected())
{
if (sendGet)
{
command = getRequestLeft$appid$getRequestSteamID$steamID$getRequestRight$myLinkFix.CRLF$"Host: "$steamAPIAddr$myLinkFix.CRLF$myLinkFix.CRLF;
myLinkFix.SendCommand(command);
command = getRequestLeft$appid$getRequestSteamID$steamID$getRequestRight$myLink.CRLF$"Host: "$steamAPIAddr$myLink.CRLF$myLink.CRLF;
myLink.SendCommand(command);

pageWait = true;
myLinkFix.WaitForCount(1,20,1); // 20 sec timeout
myLink.WaitForCount(1,20,1); // 20 sec timeout
sendGet = false;
}
}
Expand All @@ -73,10 +36,10 @@ event Timer()
}
}
if (myLinkFix.PeekChar() != 0)
if (myLink.PeekChar() != 0)
{
pageWait = false;
playerStats = myLinkFix.InputBuffer;
playerStats = myLink.InputBuffer;
bSuccess = (InStr(playerStats, jsonSuccess) != -1);
if (bSuccess)
Expand All @@ -94,8 +57,8 @@ event Timer()
Log("webapi********playerstats", 'DevNet');
HasAchievement(achievementName);

myLinkFix.DestroyLink();
myLinkFix = none;
myLink.DestroyLink();
myLink = none;

return;
}
Expand All @@ -104,8 +67,8 @@ event Timer()
if (myRetryCount >= myRetryMax)
{
Log("GIMLI FIX: Too Many Retries" @ steamName @ "id=" $ steamID);
myLinkFix.DestroyLink();
myLinkFix = none;
myLink.DestroyLink();
myLink = none;
return;
}
else
Expand Down Expand Up @@ -140,5 +103,5 @@ DefaultProperties
jsonAchieved="\"apiname\":\"NotAWarhammer\",\"achieved\":1"
myRetryMax=5

LinkClassName="KFGimli.ROBufferedTCPLinkFix"
LinkClassName="KFGimli.ROBufferedTCPLinkNoSteam"
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
class ROBufferedTCPLinkFix extends ROBufferedTCPLink;
class ROBufferedTCPLinkNoSteam extends ROBufferedTCPLink;

function Resolved(IpAddr Addr)
{
Expand Down

0 comments on commit 0c2b3f8

Please sign in to comment.