add gs
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
-- TexturePack v1.0
|
||||
|
||||
local baseUrl, texturePackId = ...
|
||||
|
||||
local RCCTexturePackGenerator = game:GetService("RCCTexturePackGenerator")
|
||||
RCCTexturePackGenerator:AddProfilingCheckpoint("RCCTexturePackGeneratorScriptStarted")
|
||||
|
||||
pcall(function() game:GetService("ContentProvider"):SetBaseUrl(baseUrl) end)
|
||||
game:GetService("ScriptContext").ScriptsDisabled = true
|
||||
|
||||
local result, requestedUrls = RCCTexturePackGenerator:Process(baseUrl, texturePackId)
|
||||
RCCTexturePackGenerator:AddProfilingCheckpoint("RCCTexturePackGeneratorFinished")
|
||||
|
||||
return result, requestedUrls
|
||||
@@ -0,0 +1,95 @@
|
||||
local argumentsTable = ...
|
||||
|
||||
-- This flag enables local debugging. Debug mode will do the following:
|
||||
-- Expects gameserver.txt to contain an assetId instead of assetHash + checksum
|
||||
-- Provides output information for the result
|
||||
local FFlagDebugUGCServerValidation = game:DefineFastFlag("DebugUGCServerValidation", false)
|
||||
|
||||
local ScriptContext = game:GetService("ScriptContext")
|
||||
local HttpService = game:GetService("HttpService")
|
||||
local CorePackages = game:GetService("CorePackages")
|
||||
local ContentProvider = game:GetService("ContentProvider")
|
||||
|
||||
pcall(function() ContentProvider:SetBaseUrl(argumentsTable.BaseUrl) end)
|
||||
ScriptContext.ScriptsDisabled = true
|
||||
|
||||
assert(CorePackages, "CorePackages is not loaded!")
|
||||
local UGCValidation = require(CorePackages.UGCValidation)
|
||||
|
||||
local function parseBaseUrlInformation(baseUrl)
|
||||
-- keep a copy of the base url (https://www.roblox.com/)
|
||||
-- append a trailing slash if there isn't one
|
||||
if baseUrl:sub(#baseUrl) ~= "/" then
|
||||
baseUrl = baseUrl .. "/"
|
||||
end
|
||||
|
||||
-- parse out scheme (http, https)
|
||||
local _, schemeEnd = baseUrl:find("://")
|
||||
|
||||
-- parse out the prefix (www, kyle, ying, etc.)
|
||||
local prefixIndex, prefixEnd = baseUrl:find("%.", schemeEnd + 1)
|
||||
local basePrefix = baseUrl:sub(schemeEnd + 1, prefixIndex - 1)
|
||||
|
||||
-- parse out the domain (roblox.com/, sitetest1.robloxlabs.com/, etc.)
|
||||
local baseDomain = baseUrl:sub(prefixEnd + 1)
|
||||
|
||||
return baseUrl, basePrefix, baseDomain
|
||||
end
|
||||
|
||||
local function createAssetGameUrl(baseDomain)
|
||||
return "https://assetgame." .. baseDomain
|
||||
end
|
||||
|
||||
local _, _, BASE_DOMAIN = parseBaseUrlInformation(argumentsTable.BaseUrl)
|
||||
local ASSET_GAME = createAssetGameUrl(BASE_DOMAIN)
|
||||
|
||||
local ASSET_TYPE_MAP = {
|
||||
Hat = Enum.AssetType.Hat,
|
||||
HairAccessory = Enum.AssetType.HairAccessory,
|
||||
FaceAccessory = Enum.AssetType.FaceAccessory,
|
||||
NeckAccessory = Enum.AssetType.NeckAccessory,
|
||||
ShoulderAccessory = Enum.AssetType.ShoulderAccessory,
|
||||
FrontAccessory = Enum.AssetType.FrontAccessory,
|
||||
BackAccessory = Enum.AssetType.BackAccessory,
|
||||
WaistAccessory = Enum.AssetType.WaistAccessory,
|
||||
}
|
||||
|
||||
local function validateAsset(assetInfo)
|
||||
local assetUrl
|
||||
if FFlagDebugUGCServerValidation then
|
||||
assetUrl = ASSET_GAME .. string.format("asset/?id=%s", assetInfo.assetId)
|
||||
else
|
||||
assetUrl = ASSET_GAME .. string.format("asset/?marAssetHash=%s&marChecksum=%s", assetInfo.assetHash, assetInfo.checksum)
|
||||
end
|
||||
local objects = game:GetObjects(assetUrl)
|
||||
|
||||
local assetTypeEnum = assert(ASSET_TYPE_MAP[assetInfo.assetType], "Invalid Asset Type")
|
||||
|
||||
local success, reasons = UGCValidation.validate(objects, assetTypeEnum, true)
|
||||
if success then
|
||||
return true, "Success"
|
||||
else
|
||||
return false, table.concat(reasons, "\n")
|
||||
end
|
||||
end
|
||||
|
||||
local assetsToValidate = argumentsTable.Assets
|
||||
local resultData = {}
|
||||
|
||||
for i, assetInfo in ipairs(assetsToValidate) do
|
||||
local isValid, validationResult = validateAsset(assetInfo)
|
||||
|
||||
resultData[i] = {
|
||||
assetHash = assetInfo.assetHash,
|
||||
isValid = isValid,
|
||||
validationResult = validationResult
|
||||
}
|
||||
end
|
||||
|
||||
local resultJson = HttpService:JSONEncode(resultData)
|
||||
|
||||
if FFlagDebugUGCServerValidation then
|
||||
print("DEBUG", "resultData", resultJson)
|
||||
end
|
||||
|
||||
return resultJson
|
||||
Reference in New Issue
Block a user