public String whoHasLongestRoad() {
        //if (roadSet.containsKey("John")) {
        //    longestRoadOwner = "John";
        //}
        
        // The current owner of the road keeps the road in the event of a tie
        String defendingOwner = this.longestRoadOwner;
        int defendingOwnerLength = this.longestRoadLength;
        
        
        String updatedLongestRoadPlayer = null;
        int updatedLongestRoadLength = 0;
        
        for (Player player: userArray) {
            int playersLongestRoad = 
                            myBoard.getPlayersLongestRoad(player.getUsername());
            
            // If the player is the defending owner, store the length of the
            // defending owner's road
            if (player.getUsername().equals(defendingOwner)) {
                defendingOwnerLength = playersLongestRoad;
            }
            
            // If this player has the longest road so far, set the road length
            // as the longest length and the player as the owner of the longest
            // road so far
            if (playersLongestRoad > updatedLongestRoadLength) {
                updatedLongestRoadLength = playersLongestRoad;
                
                updatedLongestRoadPlayer = player.getUsername();
            }
            
            // DEBUG MESSAGE
            System.out.println(player.getUsername() + "'s longest road: " + 
                               playersLongestRoad);
        }
        
        this.longestRoadLength = updatedLongestRoadLength;
        
        // If all of the roads have length less than 5, no one has longest road
        if (updatedLongestRoadLength < 5) {
            this.longestRoadOwner = null;
        } else {
            // If the defending owner still has the longest road length, keep
            // the defending owner (even in the event of a tie). Otherwise,
            // choose the player with the greatest longest road.
            if (defendingOwnerLength != updatedLongestRoadLength) {
                this.longestRoadOwner = updatedLongestRoadPlayer;
            }
        }
        
        return longestRoadOwner;
    }