---
title: 特定のユーザーをルームから削除
slug: world-sdk-guide-ja/cfTtGD8qr2NIBdWET7Nbo
docTags: 
createdAt: 2024-09-02T08:34:13.135Z
---

特定のユーザーをランタイム中にルームからキックすることができます。

:::hint{type="danger"}
- サーバーコード index.ts Sandbox を作成してください。
:::

## 関数定義

| kick(client: SandboxPlayer, reason?: string): Promise; | これは、SessionIDを持つSandboxPlayerを受け取った後にSandboxPlayerをキックするための関数です。<br /><br />- キックされると、キックされたことを知らせるポップアップが表示されますが、そのポップアップはZEPETOアプリのUIであり、エディターでは確認できません。 |
| ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |

:::hint{type="info"}
**📘&#x20;**&#x6B21;のガイドを参照してください。 \[[ZEPETO.Multiplay(Server) API](https://developer.zepeto.me/docs/multiplay-server/classes/ZEPETO_Multiplay.Sandbox#kick)]
:::



まず、ユーザー情報を取得するために、Schema TypesとRoomStateを次のように定義します：

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-oVK3n8knNlRPitGOhHD1y-20240904-102428.png)

## 使用例

- UserInfosのデータを使用して、ユーザーIDから追い出されるユーザーのセッションIDを取得します。
- セッションIDを持つサンドボックスプレイヤーをインポートした後、キック関数を呼び出します。
- 誰が追い出されたかをブロードキャストを通じてお知らせできます。

```typescript
import { Sandbox, SandboxOptions, SandboxPlayer } from 'ZEPETO.Multiplay';
import { DataStorage, loadDataStorage } from 'ZEPETO.Multiplay.DataStorage';
import { UserInfo } from 'ZEPETO.Multiplay.Schema';

export default class extends Sandbox {

    onCreate(options: SandboxOptions) {
        this.onMessage("Kick", (client: SandboxPlayer, message: string) => {
            this.tryKick(client, message);
        });
    }

    onJoin(client: SandboxPlayer) {
        const user = new UserInfo();
        user.sessionId = client.sessionId;
        user.userId = client.userId;

        this.state.UserInfos.set(client.userId, user);
    }

    async tryKick(client: SandboxPlayer, userId: string) {
        let player: SandboxPlayer;
        if (userId == null) {
            player = client;
        } else {
            const kickPlayerSessionId: string = this.state.UserInfos.get(userId).sessionId;
            player = this.loadPlayer(kickPlayerSessionId);
        }

        console.log(`try kick : ${player.userId}`);
        await this.kick(player);

        this.broadcast("Log", `kick : ${player.userId}`);
    }
}
```

:::hint{type="success"}
**👍  デフォルトでは、追い出されたユーザーは再度部屋に入ることができます**

- これを防ぐために、UserIdに基づいてデータストレージ管理機能を使用して、ユーザーによって追い出された部屋の情報を保存します。
- 部屋に入ろうとする際にキックを呼び出すことで実装できます。
:::

