> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sistema de banimento de jogadores

> Aplique banimentos de jogadores do PlayFab para invalidar os tokens de autenticação de quem viola as regras, usando o Game Manager, ReportPlayer e as chamadas de gerenciamento de banimentos da API de servidor.

O recurso de banimento de jogadores permite restringir o acesso ao jogo para determinados jogadores que violam as regras. Quando um banimento é aplicado a um jogador, todos os tokens de autenticação existentes do jogador são invalidados, e as tentativas futuras de autenticação feitas pelo jogador serão rejeitadas. Os banimentos de jogadores podem ser permanentes ou temporários, por um intervalo de tempo especificado, e podem ser aplicados a uma ID de jogador ou a um endereço IP. Um banimento tem escopo para um título e não se aplica a nenhum outro título do seu [namespace](/pt-BR/services/playfab/live-service-management/game-configuration/entities).

<Note>
  Para novas integrações, recomendamos usar o [sistema de banimento de IP](/pt-BR/services/playfab/player-progression/player-data/ip-bans) dedicado em vez de especificar endereços IP nos banimentos de jogadores.
</Note>

O tutorial a seguir mostra como utilizar o sistema de banimento, usando a API do PlayFab e o Game Manager.

## Identificar

Embora o seu jogo possa ter um sistema personalizado para identificar trapaceiros e infratores, o PlayFab oferece um mecanismo de denúncia de jogador para jogador. Em essência, você conta com seus jogadores para denunciar outros jogadores problemáticos.

Para permitir que o cliente denuncie um jogador específico, use o trecho a seguir no código do seu cliente.

```csharp theme={null}
public void ReportPlayer(string problematicPlayerId, string reason) {
    PlayFabClientAPI.ReportPlayer(new ReportPlayerClientRequest() {
        ReporteeId = problematicPlayerId,
        Comment = reason
    }, result => {
        //... Handle success
    }, error => {
        Debug.Log(error.GenerateErrorReport());
    });
}
```

Essa chamada de API produz:

* Um **evento de denúncia**, que você pode localizar por meio da ferramenta **Analytics** **(1)**.
* Selecione o tipo de evento **player\_reported\_as\_abusive** **(2)**.
* Isso mostra:
  * O **nome do evento (3)**.
  * A **ID do jogador (4)** denunciado.

<img src="https://mintcdn.com/microsoft-4404708b/U1LR64ZWxo45eXwl/images/playfab/player-progression/player-data/tutorials/game-manager-event-history-player-reported-as-abusive.png?fit=max&auto=format&n=U1LR64ZWxo45eXwl&q=85&s=2d2e5165fee8b1923bd8e693be322296" alt="Game Manager - Analytics - Histórico de eventos" width="2560" height="1039" data-path="images/playfab/player-progression/player-data/tutorials/game-manager-event-history-player-reported-as-abusive.png" />

## Aplicando banimentos

Depois que o jogador problemático for identificado, você poderá aplicar um banimento. Há duas maneiras de aplicar banimentos: manualmente pelo Game Manager ou programaticamente por meio de código.

### Criando um banimento no Game Manager

Seu representante de gerenciamento da comunidade pode querer aplicar um banimento usando o Game Manager.

1. Navegue até a seção Players.
2. Localize e selecione o jogador problemático.
3. Navegue até a guia **Bans**.
4. Selecione **Add Ban** para exibir o formulário **Add Ban**.
5. Digite o **Reason** do banimento e a duração desejada. Opcionalmente, você pode aplicar o **Ban** por um **IP ADDRESS (4)** específico.
6. Por último, selecione o botão **ADD BAN**.

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/player-progression/player-data/tutorials/game-manager-players-add-ban.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=c281ac3e7daaf347d81fde5681c3af87" alt="Game Manager - Jogadores - Adicionar banimento" width="1280" height="900" data-path="images/playfab/player-progression/player-data/tutorials/game-manager-players-add-ban.png" />

Se tudo estiver configurado corretamente, você verá um novo **Ban** na tabela. Opcionalmente, você pode remover um **Ban** manualmente selecionando-o no campo **REVOKE BANS**.

<img src="https://mintcdn.com/microsoft-4404708b/N3T1ucKV7zIMBudj/images/playfab/player-progression/player-data/tutorials/game-manager-players-bans-revoke-ban.png?fit=max&auto=format&n=N3T1ucKV7zIMBudj&q=85&s=7ce3408617095f8f4a7434e5048e4c7d" alt="Game Manager - Jogadores - Banimentos - Revogar banimento" width="860" height="450" data-path="images/playfab/player-progression/player-data/tutorials/game-manager-players-bans-revoke-ban.png" />

### Criando um banimento a partir de um servidor ou serviço

Como alternativa, você pode usar o [Services SDK](/pt-BR/services/playfab/sdks/playfab-sdk-intro) para aplicar um banimento por código usando o trecho fornecido abaixo.

```csharp theme={null}
public void AddBan(string playerId, uint hours) {
    PlayFabServerAPI.BanUsers(new BanUsersRequest() {
        Bans = new List<BanRequest>() {
            new BanRequest() {
                DurationInHours = hours,
                PlayFabId = playerId,
                Reason = "Automatic ban for WH",
            }
        }
    }, result => {
        //... Handle success
    }, error => {
        Debug.Log(error.GenerateErrorReport());
    });
}
```

Os banimentos aplicados por código também são exibidos na tabela de banimentos do jogador de destino no Game Manager.

<Note>
  Os métodos do SDK de servidor do PlayFab oferecem mais opções, como banimentos por endereço **IP**.
</Note>

Cada banimento que você aplica recebe uma ID atribuída. Considere os seguintes métodos da API do SDK de servidor para um gerenciamento preciso dos banimentos:

* [GetUserBans](xref:titleid.playfabapi.com.server.accountmanagement.getuserbans)
* [RevokeAllBansForUser](xref:titleid.playfabapi.com.server.accountmanagement.revokeallbansforuser)
* [RevokeBans](xref:titleid.playfabapi.com.server.accountmanagement.revokebans)
* [UpdateBans](xref:titleid.playfabapi.com.server.accountmanagement.updatebans)

<Note>
  Você pode usar funções do CloudScript como parte de um sistema automatizado que pode banir um jogador. Para saber mais sobre o CloudScript, consulte nosso tutorial [Escrevendo um CloudScript personalizado](/pt-BR/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript).
</Note>

## Confira também

[BanUsers](xref:titleid.playfabapi.com.server.accountmanagement.banusers)


## Related topics

- [Sistema de banimento de IP](/pt-BR/services/playfab/player-progression/player-data/ip-bans.md)
- [Visão geral do sistema de pessoas (lista de amigos)](/pt-BR/services/xbox-services/community/people-system/live-people-system-overview.md)
- [Revogar banimento de IP](/pt-BR/services/playfab/api-references/rest/admin/account-management/revoke-ip-ban.md)
- [Atualizar banimento de IP](/pt-BR/services/playfab/api-references/rest/admin/account-management/update-ip-ban.md)
- [Criar banimento de IP](/pt-BR/services/playfab/api-references/rest/admin/account-management/create-ip-ban.md)
