add gs
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
--[[
|
||||
CLILUACORE-311: We need to find a proper way to encapsulate this;
|
||||
conditionally depending on PlatformService is bad!
|
||||
]]
|
||||
local PlatformService = nil
|
||||
pcall(function()
|
||||
PlatformService = game:GetService("PlatformService")
|
||||
end)
|
||||
|
||||
local Promise = require(script.Parent.Parent.Promise)
|
||||
|
||||
local function parseRobuxValue(productInfo)
|
||||
local rawText = productInfo and productInfo.Name
|
||||
local noJunk = string.gsub(rawText, ",", "")
|
||||
noJunk = noJunk and string.match(noJunk, "[0-9]+") or nil
|
||||
return noJunk and tonumber(noJunk) or 1000
|
||||
end
|
||||
|
||||
local XboxCatalogData = {}
|
||||
|
||||
function XboxCatalogData.GetCatalogInfoAsync()
|
||||
if PlatformService == nil then
|
||||
error("PlatformService unavailable; are you on XboxOne?")
|
||||
end
|
||||
|
||||
local promisified = Promise.promisify(function()
|
||||
return PlatformService:BeginGetCatalogInfo()
|
||||
end)
|
||||
|
||||
return promisified()
|
||||
:andThen(function(catalogInfo)
|
||||
local availableProducts = {}
|
||||
|
||||
for _, productInfo in pairs(catalogInfo) do
|
||||
local product = {
|
||||
robuxValue = parseRobuxValue(productInfo),
|
||||
productId = productInfo.ProductId
|
||||
}
|
||||
table.insert(availableProducts, product)
|
||||
end
|
||||
|
||||
return Promise.resolve(availableProducts)
|
||||
end)
|
||||
:catch(function(errorReason)
|
||||
return Promise.reject(errorReason)
|
||||
end)
|
||||
end
|
||||
|
||||
return XboxCatalogData
|
||||
Reference in New Issue
Block a user