> ## 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.

# プレイヤー禁止 (Ban) システム

> Game Manager、ReportPlayer、およびサーバー API の禁止管理呼び出しを使用して、ルールを破ったプレイヤーに PlayFab のプレイヤー禁止を適用し、認証トークンを無効化します。

プレイヤー禁止機能を使用すると、ルールを破った特定のプレイヤーに対するゲームへのアクセスを制限できます。プレイヤーに禁止が適用されると、既存のプレイヤー認証トークンはすべて無効になり、プレイヤーが今後試みる認証は拒否されます。プレイヤー禁止は、永続的または指定された時間範囲で一時的なものであり、プレイヤー ID または IP アドレスに適用できます。禁止はタイトルにスコープが設定されており、[名前空間](/services/playfab/live-service-management/game-configuration/entities) 内の他のタイトルには適用されません。

<Note>
  新しい統合の場合、プレイヤー禁止で IP アドレスを指定する代わりに、専用の [IP 禁止システム](/services/playfab/player-progression/player-data/ip-bans) を使用することをお勧めします。
</Note>

次のチュートリアルでは、PlayFab API と Game Manager を使用して禁止システムを活用する方法を示します。

## 特定

ゲームには不正行為者やルール違反者を特定するカスタムシステムがあるかもしれませんが、PlayFab はプレイヤー間の報告メカニズムを提供します。基本的には、問題のあるプレイヤーを報告することをプレイヤーに依存します。

クライアントが特定のプレイヤーを報告できるようにするには、クライアントコードで次のスニペットを使用します。

```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());
    });
}
```

この API 呼び出しは次を生成します:

* **Analytics** ツール **(1)** を介して見つけることができる**報告イベント**。
* **player\_reported\_as\_abusive** イベントタイプを選択します **(2)**。
* これは以下を表示します:
  * **イベント名 (3)**。
  * 報告された**プレイヤー ID (4)**。

<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 - Event History" width="2560" height="1039" data-path="images/playfab/player-progression/player-data/tutorials/game-manager-event-history-player-reported-as-abusive.png" />

## 禁止の適用

問題のあるプレイヤーが特定されたら、禁止を適用します。禁止を適用する方法は 2 つあります: Game Manager を介して手動で行う方法と、コードを介してプログラム的に行う方法です。

### Game Manager からの禁止の作成

コミュニティ管理担当者は、Game Manager を使用して禁止を適用したい場合があります。

1. Players セクションに移動します。
2. 問題のあるプレイヤーを特定して選択します。
3. **Bans** タブに移動します。
4. **Add Ban** を選択して **Add Ban** フォームを表示します。
5. 禁止の**理由**と、希望する期間を入力します。オプションで、特定の **IP アドレス (4)** で**禁止**することもできます。
6. 最後に、**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 - Players - Add Ban" width="1280" height="900" data-path="images/playfab/player-progression/player-data/tutorials/game-manager-players-add-ban.png" />

すべてが正しく設定されると、テーブルに新しい**禁止**が表示されます。**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 - Players - Bans - Revoke Ban" width="860" height="450" data-path="images/playfab/player-progression/player-data/tutorials/game-manager-players-bans-revoke-ban.png" />

### サーバーまたはサービスからの禁止の作成

または、[Services SDK](/services/playfab/sdks/playfab-sdk-intro) を使用して、下記のスニペットを使用してコードで禁止を適用することもできます。

```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());
    });
}
```

コードで適用された禁止も、Game Manager のターゲットプレイヤーの禁止テーブルに表示されます。

<Note>
  PlayFab Server SDK メソッドは、**IP** アドレス禁止など、より多くのオプションを提供します。
</Note>

適用する各禁止には ID が割り当てられます。正確な禁止管理のために、次の Server SDK API メソッドを検討してください:

* [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>
  CloudScript 関数を、プレイヤーを禁止できる自動化システムの一部として使用できます。CloudScript の詳細については、チュートリアル [カスタム CloudScript の作成](/services/playfab/live-service-management/service-gateway/automation/cloudscript/writing-custom-cloudscript) を参照してください。
</Note>

## 関連項目

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