This commit is contained in:
lx
2026-07-06 14:01:11 -04:00
commit c4f97d729d
16468 changed files with 935321 additions and 0 deletions
@@ -0,0 +1,56 @@
local Modules = game:GetService("CoreGui").RobloxGui.Modules
local ShellModules = Modules:FindFirstChild("Shell")
local MakeSafeAsyncRodux = require(ShellModules:FindFirstChild('SafeAsyncRodux'))
local PlatformService = nil
pcall(function() PlatformService = game:GetService('PlatformService') end)
local FetchPrivilegeSettings = require(ShellModules.Actions.FetchPrivilegeSettings)
local SetPrivilegeSettings = require(ShellModules.Actions.SetPrivilegeSettings)
local Privileges =
{
USER_CREATED_CONTENT = 247,
MULTIPLAYER_SESSIONS = 254
}
local GetPrivilegeSettingsAsync = MakeSafeAsyncRodux({
asyncFunc = function(store)
local newPrivilegeSettings = {}
local success = pcall(function()
local multiplayerSettings = PlatformService:BeginCheckXboxPrivilege(Privileges.MULTIPLAYER_SESSIONS)
local sharedContentSettings = PlatformService:BeginCheckXboxPrivilege(Privileges.USER_CREATED_CONTENT)
newPrivilegeSettings.Multiplayer =
{
hasPrivilege = multiplayerSettings.CanJoinGame,
status = multiplayerSettings.PrivilegeCheckResult,
}
newPrivilegeSettings.SharedContent =
{
hasPrivilege = sharedContentSettings.CanJoinGame,
status = sharedContentSettings.PrivilegeCheckResult,
}
end)
if not success then
newPrivilegeSettings.Multiplayer = { hasPrivilege = false, status = "Error"}
newPrivilegeSettings.SharedContent = { hasPrivilege = false, status = "Error"}
end
newPrivilegeSettings.timestamp = tick()
return newPrivilegeSettings
end,
callback = function(store, newPrivilegeSettings)
store:dispatch(SetPrivilegeSettings(newPrivilegeSettings))
end,
userRelated = true
})
return function()
return function(store)
--Note: we don't check isRequesting state for privilege settings update,
--as we always want to fetch the latest privilege settings
store:dispatch(FetchPrivilegeSettings())
spawn(function()
GetPrivilegeSettingsAsync(store)
end)
end
end