Oyuncular ve takımlar
Kadroyu okuyun, oyuncuları takımlar arasında taşıyın ve takımları biçimlendirin.
Takımlar sayılardır: 0 izleyiciler, 1 kırmızı ve 2 mavidir. Oyuncular sabit ID'lerle tanımlanır; bkz. HostPlayer. Odanın host oyuncusu varsa, bu oyuncu 0'dır.
Oyuncuları okuma
getPlayerList()
room.getPlayerList(): HostPlayer[]Odanın host oyuncusu varsa onu da içerir. Oda kapandıktan sonra [] döndürür.
Döndürür
HostPlayer[]Kadro sırasına göre her oyuncunun kopyaları.
const fielded = room
.getPlayerList()
.filter((p) => p.team !== 0);
console.log(
`${fielded.length} players on the pitch`,
);getPlayer()
room.getPlayer(id: number): HostPlayer | nullParametreler
numberzorunluDöndürür
HostPlayer | nullOyuncunun bir kopyası veya bu ID'ye sahip oyuncu yoksa null.
const player = room.getPlayer(id);
if (player?.admin) await room.startGame();Takımlar
setPlayerTeam()
room.setPlayerTeam(id: number, team: 0 | 1 | 2): Promise<void>Bir oyuncuyu, maç sırasında ve takımlar kilitliyken de dahil olmak üzere taşır. Takım değiştiren bir oyuncu kadronun sonuna taşınır. Bilinmeyen ID'ler ve mevcut takıma yapılan taşımalar hiçbir şey yapmaz. byPlayer null olarak ayarlanmış şekilde onPlayerTeamChange tetiklenir.
Parametreler
numberzorunlu0 | 1 | 2zorunlu0 izleyiciler, 1 kırmızı veya 2 mavi.Döndürür
Promise<void>
room.onPlayerJoin = (player) => {
const red = room
.getPlayerList()
.filter((p) => p.team === 1).length;
const blue = room
.getPlayerList()
.filter((p) => p.team === 2).length;
void room.setPlayerTeam(
player.id,
red <= blue ? 1 : 2,
);
};setTeamsLock()
room.setTeamsLock(locked: boolean): Promise<void>Kilit, yalnızca oyuncuların kendileri için takım seçmesini etkiler. Siz ve oda yöneticileri hâlâ herkesi taşıyabilirsiniz. Değer değiştiğinde onTeamsLockChange tetiklenir.
Parametreler
booleanzorunlutrue, oyuncuların kendi takımlarını seçmesini durdurur.Döndürür
Promise<void>
await room.setTeamsLock(true);setTeamColors()
room.setTeamColors(team: number, angle: number, textColor: number, colors: number[]): Promise<void>Bir takımın forma renklerini ayarlar. Geçersiz renkler Invalid team colors ile reddedilir; 1 veya 2 dışında bir takım Invalid team ile reddedilir.
Parametreler
numberzorunlu1 kırmızı veya 2 mavi.numberzorunlunumberzorunlu0x000000 ile 0xffffff arasında bir RGB tam sayısı olarak.number[]zorunluDöndürür
Promise<void>
// Red: vertical white and red stripes,
// black numbers.
await room.setTeamColors(
1,
90,
0x000000,
[0xffffff, 0xd9574a],
);
// Blue: plain navy with white numbers.
await room.setTeamColors(
2,
0,
0xffffff,
[0x1f3a8a],
);Roller ve sıralama
setPlayerAdmin()
room.setPlayerAdmin(id: number, admin: boolean): Promise<void>Oyunun arayüzünden yöneticiler maçları başlatabilir, duraklatabilir ve durdurabilir, oyuncuları taşıyabilir, stadyumu ve oda ayarlarını değiştirebilir, diğer oyuncuları susturabilir, odadan atabilir veya yasaklayabilir. Oda sahibine karşı işlem yapamazlar. Yöneticiliği yalnızca kodunuz verebilir: oyuncular birbirlerini terfi ettiremez, bu nedenle onPlayerAdminChange her zaman byPlayer'ı null olarak bildirir.
Parametreler
numberzorunlubooleanzorunlutrue, kaldırmak için false.Döndürür
Promise<void>
const owners = new Set(['captain', 'referee']);
room.onPlayerJoin = (player) => {
if (owners.has(player.name))
void room.setPlayerAdmin(player.id, true);
};setPlayerAvatar()
room.setPlayerAvatar(id: number, avatar: string | null): Promise<void>Bir oyuncunun diski üzerine çizilen metnin üzerine yazar. Kontrol ve biçimlendirme karakterleri reddedilir.
Parametreler
numberzorunlustring | nullzorunluGK veya bir emoji, ya da oyuncunun kendi avatarını geri yüklemek için null.Döndürür
Promise<void>
await room.setPlayerAvatar(keeper.id, 'GK');reorderPlayers()
room.reorderPlayers(playerIdList: number[], moveToTop: boolean): Promise<void>Kadro sırasını değiştirir; bu sıra aynı zamanda fizik API'sindeki oyuncu disklerinin sırasıdır.
Parametreler
number[]zorunlubooleanzorunlutrue, listelenen oyuncuları bu sırayla önce koyar; false onları sona koyar.Döndürür
Promise<void>
// Bring the captains to the top of the list.
await room.reorderPlayers(
[captainRed.id, captainBlue.id],
true,
);