kickPlayer method

bool kickPlayer(
  1. Channel requester,
  2. Channel targetPlayer, {
  3. String message = '',
})

Implementation

bool kickPlayer(
  Channel requester,
  Channel targetPlayer, {
  String message = '',
}) {
  final room = getChannelRoom(requester);
  if (room == null || room.getChannel(requester) != kAuthorityChannel) {
    return false;
  }
  if (targetPlayer == kAuthorityChannel) return false;
  final targetChannel = room.getPlayer(targetPlayer);
  if (targetChannel == null) return false;

  _joined.remove(targetChannel);
  room._removePlayer(targetChannel);
  _playerCount--;
  _sendKickMessage(targetChannel, KickReason.kicked, message);
  _sendPacketToRoom(
    room,
    RpcNetworkerPacket.named(
      name: SwampEvent.playerLeft,
      data: Uint8List.fromList([targetPlayer >> 8, targetPlayer & 0xFF]),
    ),
  );
  return true;
}