Files
pulse/mod/scripts/vscripts/pulse-common-func.gnut
T

80 lines
2.8 KiB
Plaintext

globalize_all_functions
global string pulsePrefix
void function pulsePrefixSet() //Sets our prefix
{
pulsePrefix = format("\x1b[38;2;%i;%i;%im[PULSE]\x1b[0m", 255, 178, 102)
}
void function pulsePrintt(string content) //Prints whatever we want printed with given prefix (by standard [PULSE]).
{
printt(format("%s " + content, pulsePrefix))
}
table function pulseGetCurrentVersionAsTable() //Gets our version numbers from mod.json and puts them in a table for use with pulseFormatAsVersion().
{
table result = ["MajorVersion" = GetConVarString("MajorVersion"), "MinorVersion" = GetConVarString("MinorVersion"), "PatchVersion" = GetConVarString("PatchVersion")]
return result
}
string function pulseFormatAsVersion(table Version) //Formats given version numbers into one neat string (example: v2.0.0).
{
return format("v%s.%s.%s", Version["MajorVersion"], Version["MinorVersion"], Version["PatchVersion"])
}
bool function pulseIsUpToDate(string givenURL) //Compares version contained in our mod.json with a version.json contained on a remote GitHub repo (see VersionURL within mod.json).
{
bool result = false
void functionref (HttpRequestResponse) onSuccess = void function(HttpRequestResponse response)
{
table DecodedJSON = DecodeJSON(response.body)
if (pulseFormatAsVersion(DecodedJSON) == pulseFormatAsVersion(pulseGetCurrentVersionAsTable()))
{
result = true
} else {
result = false
}
}
void functionref (HttpRequestFailure) onFailure = void function(HttpRequestFailure failure)
{
pulsePrintt("Something went wrong while getting latest version.")
}
NSHttpGet(givenURL, onSuccess, onFailure)
return result
}
bool function pulseRequestData(string givenURL, table parameterTable) //Gets data from API (see ToneURL within mod.json) and puts it into one table for processing.
{
table<string, array<string> > params
foreach (parameter in paramTable)
{
params[parameter] <- [paramTable(parameter)]
}
void functionref (HttpRequestResponse) onSuccess = void function(HttpRequestResponse response)
{
table DecodedJSON = DecodeJSON(response.body)
pulseData += DecodedJSON
}
void functionref (HttpRequestFailure) onFailure = void function(HttpRequestFailure failure)
{
pulsePrintt("Something went wrong while getting data.")
}
return NSHttpGet(givenURL, params, onSuccess, onFailure)
}
int function pulseParse(string parameter, string key, string value)
{
if (key == "maps") {
parameter = parameter.slice(3)
}
if (key in pulseData) {
table keyandvalTable = expect table(pulseData[key])
if (parameter in keyandvalTable) {
table valTable = expect table(keyandvalTable[parameter])
return expect int(valTable[value])
}
}
return 0
}