Menghapus pengguna tertentu dari Ruangan
4 mnt
Anda dapat mengeluarkan pengguna tertentu dari ruangan saat runtime.
- Silakan buat kode server index.ts Sandbox.
Definisi fungsi
kick(client: SandboxPlayer, reason?: string): Promise; | Ini adalah fungsi untuk mengeluarkan SandboxPlayer setelah menerima SandboxPlayer dengan SessionID. - Jika Anda dikeluarkan, pop-up akan muncul memberi tahu Anda bahwa Anda dikeluarkan, tetapi pop-up adalah UI dari aplikasi ZEPETO dan tidak dapat diperiksa oleh editor. |
|---|
📘 Silakan merujuk ke panduan berikut. [ZEPETO.Multiplay(Server) API]
Pertama, untuk mendapatkan informasi pengguna, definisikan Tipe Skema dan RoomState sebagai berikut:

Contoh penggunaan
- Gunakan data di UserInfos untuk mendapatkan ID sesi pengguna yang akan dikeluarkan dari userId.
- Setelah mengimpor pemain sandbox dengan ID sesi, panggil fungsi kick.
- Saya bisa memberi tahu Anda siapa yang dikeluarkan melalui siaran.
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}`);
}
}👍 Secara default, pengguna yang telah dikeluarkan dapat masuk kembali ke ruangan
- Untuk mencegah ini, gunakan fungsi manajemen DataStorage berdasarkan UserId untuk menyimpan informasi ruangan yang dikeluarkan oleh pengguna.
- Anda dapat mengimplementasikannya dengan memanggil kick saat Anda mencoba masuk ke ruangan.