2026-04-14 17:41:39 +02:00

62 lines
2.2 KiB
Lua

local localVersion = GetResourceMetadata(GetCurrentResourceName(), "version", 0)
local resourceName = GetCurrentResourceName()
local function splitString(str, sep)
local parts = {}
local pattern = string.format("([^%s]+)", sep or ":")
str:gsub(pattern, function(part)
parts[#parts + 1] = part
end)
return parts
end
string.split = splitString
local function versionToNumber(versionStr)
local parts = versionStr:split(".")
local result = ""
for i = 1, #parts do
result = result .. parts[i]
end
return tonumber(result)
end
local function compareVersions(remoteVersion, descriptions)
local remote = versionToNumber(remoteVersion)
local local_ = versionToNumber(localVersion)
return remote - local_, descriptions
end
if localVersion then
local versionUrl = "https://raw.githubusercontent.com/quasar-scripts/version/main/" .. resourceName .. ".json"
PerformHttpRequest(versionUrl, function(statusCode, responseBody, headers)
if statusCode == 404 then
print("^1API is not available. Unable to check the version.^0")
return
end
if statusCode == 200 then
local data = json.decode(responseBody)
local remoteVersion = data.version
local descriptions = data.descriptions
local diff, changeLog = compareVersions(remoteVersion, descriptions)
if diff == 0 then
print("^2You are using the latest version of " .. resourceName .. "!^0")
elseif diff > 0 then
print("^3New version available for " .. resourceName .. "!^0")
for _, change in pairs(changeLog) do
print("^3- " .. change .. "^0")
end
print("^3You have version " .. localVersion .. ", upgrade to version " .. remoteVersion .. "!^0")
else
print("^1You are using a newer version of " .. resourceName .. " than the one available on GitHub.^0")
end
end
end, "GET", "", {}, {})
else
print("Unable to obtain the version of " .. resourceName .. ". Make sure it is defined in your fxmanifest.lua.")
end