PolicyService

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Não criável
Serviço
Não replicado

PolicyService ajuda você a consultar informações sobre conformidade com a política para jogadores ao redor do mundo com base na faixa etária, localização e digitarde plataforma.

Resumo

Métodos

Propriedades

Métodos

CanViewBrandProjectAsync

Rendimentos

Determina se um usuário pode ver recursos de projeto da marca dentro da sua experiência.Este método permite que você trabalhe com marcas para mostrar apenas recursos comerciais a audiências compatíveis com as marcas.

Para usar CanViewBrandProjectAsync, você deve usar um ID de projeto de marca fornecido pelo Roblox. Para solicitar um ID de projeto de marca, entre em contato conosco .

Você deve chamar este método em um script do lado do servidor e envolvê-lo em um pcall() .

Parâmetros

player: Player

O objeto Player que você está tentando mostrar ao projeto da marca.

Valor Padrão: ""
brandProjectId: string

O ID do projeto de marca fornecido pela Roblox. Representa todos os recursos associados a um projeto de marca.

Valor Padrão: ""

Devolução

Se o projeto da marca pode ou não ser mostrado ao usuário específico.

Amostras de código

You must call CanViewBrandProjectAsync from the server-side and then fire an event on the client. Calling this method from the client-side returns an error.

Server-side code sample

-- In ServerScriptService
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local PolicyService = game:GetService("PolicyService")
-- Pre-created RemoteEvent in ReplicatedStorage
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
local brandedAsset = ReplicatedStorage:WaitForChild("BrandedAsset")
local defaultAsset = Instance.new("Part")
Players.PlayerAdded:Connect(function(player)
-- PolicyService:CanViewBrandProjectAsync can only be called from the Server
local success, canView = pcall(function()
return PolicyService:CanViewBrandProjectAsync(player, "BRP-0123456789")
end)
if success and canView then
RemoteEvent:FireClient(player, brandedAsset)
else
RemoteEvent:FireClient(player, defaultAsset)
end
end)
Client-side code sample

-- In StarterPlayerScripts
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Pre-created RemoteEvent in ReplicatedStorage
local RemoteEvent = ReplicatedStorage:WaitForChild("RemoteEvent")
RemoteEvent.OnClientEvent:Connect(function(partToLoad)
local clonedPart = partToLoad:Clone()
clonedPart.Parent = workspace
end)

GetPolicyInfoForPlayerAsync

Rendimentos

Retorna informações de política sobre um jogador com base em geolocalização, grupo etário e plataforma. A estrutura do dicionário retornado é a seguinte:


<th>Tipo</th>
<th>Requerido para</th>
<th>Descrição</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>AreAdsAllowed</code></td>
<td>Booleano</td>
<td>Qualquer experiência que inclua <a href="../../../production/monetization/immersive-ads.md">anúncios imersivos</a>.</td>
<td>Quando <code>verdade</code>, o jogador pode ver anúncios imersivos dentro de uma experiência.</td>
</tr>
<tr>
<td><code>ArePaidRandomItemsRestricted</code></td>
<td>Booleano</td>
<td>Qualquer experiência que tenha itens aleatórios pagos.</td>
<td>Quando <code>verdade</code>, o jogador pode <b>não</b> interagir com geradores de itens aleatórios pagos, via moeda na experiência comprada com Robux ou Robux diretamente.</td>
</tr>
<tr>
<td><code>Permitidas Referências de Link Externo</code></td>
<td>Matriz</td>
<td>Qualquer experiência que referencie links externos.</td>
<td>Uma lista de referências de links externos, como links de mídia social, alças ou iconografia que um jogador é permitido ver.Os valores possíveis incluem <code>"Discord"</code> , <code>"Facebook"</code> , <code>"Twitch"</code> , <code>"YouTube"</code> , <code>"X"</code> , <code>"GitHub"</code> e <code>"Guilded"</code>.</td>
</tr>
<tr>
<td><code>IsContentSharingAllowed</code></td>
<td>Booleano</td>
<td>Qualquer experiência que permita que os usuários compartilhem conteúdo fora da plataforma.</td>
<td>Quando <code>verdade</code>, o jogador é permitido compartilhar conteúdo usando APIs que abrem fluxos de compartilhamento externo, como <code>Class.CaptureService:PromptShareCapture()|PromptShareCapture()</code>.</td>
</tr>
<tr>
<td><code>Tem Direito de Comprar Subscrição</code></td>
<td>Booleano</td>
<td>Qualquer experiência que queira vender subscrições.</td>
<td>Quando <code>verdade</code>, o jogador tem direito de comprar assinaturas dentro de uma experiência.</td>
</tr>
<tr>
<td><code>IsPaidItemTradingAllowed</code></td>
<td>Booleano</td>
<td>Qualquer experiência que permita que os usuários comprem itens virtuais que possam trocar com outros jogadores.</td>
<td>Quando <code>verdade</code>, o jogador pode trocar itens virtuais que compraram com moeda da experiência ou Robux.</td>
</tr>
<tr>
<td><code>EstáSujeito às Políticas da China</code></td>
<td>Booleano</td>
<td>Qualquer experiência que está disponível na China.</td>
<td>Quando <code>verdade</code>, uma experiência deve impor mudanças de conformidade. Veja <a href="https://devforum.roblox.com/t/new-programs-available-roblox-china-licensed-to-operate/1023361">esta postagem no fórum</a> para mais informações.</td>
</tr>
</tbody>
Qual o nome
Exceções

Como qualquer chamada assíncrona, este método precisa ser embalado em pcall() e lidado com erros corretamente.Uma lista completa de mensagens de erro possíveis e suas razões é:


<th>Motivo</th>
</tr>
</thead>
<tbody>
<tr>
<td>Instância não era um jogador</td>
<td>O parâmetro <code>jogador</code> não é uma instância <code>Class.Player</code>.</td>
</tr>
<tr>
<td>Jogadores não encontrados</td>
<td>Erro interno que o objeto <code>Class.Players</code> está faltando.</td>
</tr>
<tr>
<td>Este método não pode ser chamado no cliente para um jogador não local</td>
<td>Este método não pode ser chamado no cliente para uma classe não local <code>Class.Player</code>.</td>
</tr>
<tr>
<td>GetPolicyInfoForPlayerAsync é chamado muitas vezes</td>
<td>Erro interno que <code>GetPolicyInfoForPlayerAsync()</code> é chamado mais de 100 (configuração atual) vezes antes que uma resposta HTTP volte.</td>
</tr>
</tbody>
Mensagem

Veja também LocalizationService:GetCountryRegionForPlayerAsync() que retorna uma string de código de país/região de acordo com a localização geográfica do IP do jogador.

Parâmetros

player: Instance
Valor Padrão: ""

Devolução

Um dicionário que contém informações sobre a informação de política do jogador solicitado; veja acima para a estrutura do dicionário.

Amostras de código

This code sample gets policy information for the local player and warns if they cannot interact with paid random item generators.

Getting Policy Information for a Player

local PolicyService = game:GetService("PolicyService")
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local success, result = pcall(function()
return PolicyService:GetPolicyInfoForPlayerAsync(player)
end)
if not success then
warn("PolicyService error: " .. result)
elseif result.ArePaidRandomItemsRestricted then
warn("Player cannot interact with paid random item generators")
end

Eventos