@@ -57,8 +57,6 @@ public class VersionDatabase {
5757 public static final MavenMetadataParser FABRIC_LOADER_METADATA_PARSER = new MavenMetadataParser (FABRIC_MAVEN_URL , "net.fabricmc" , "fabric-loader" );
5858 public static final MavenMetadataParser QUILT_LOADER_METADATA_PARSER = new MavenMetadataParser (QUILT_MAVEN_URL , "org.quiltmc" , "quilt-loader" );
5959 public static final MavenMetadataParser INSTALLER_METADATA_PARSER = new MavenMetadataParser (ORNITHE_MAVEN_URL , "net.ornithemc" , "ornithe-installer" );
60- public static final MavenMetadataParser OSL_METADATA_PARSER = new MavenMetadataParser (ORNITHE_MAVEN_URL , "net.ornithemc" , "osl" );
61- public static final MavenPomParser OSL_POM_PARSER = new MavenPomParser (ORNITHE_MAVEN_URL , "net.ornithemc" , "osl" );
6260
6361 public static ConfigV3 config ;
6462
@@ -70,6 +68,10 @@ private static final MavenMetadataParser generationalMavenMetadataParser(int gen
7068 return new MavenMetadataParser (ORNITHE_MAVEN_URL , groupId , modifyForIntermediaryGeneration (artifactId , generation ), generation <= config .stableIntermediaryGeneration );
7169 }
7270
71+ private static final MavenPomParser generationalMavenPomParser (int generation , String groupId , String artifactId ) {
72+ return new MavenPomParser (ORNITHE_MAVEN_URL , groupId , modifyForIntermediaryGeneration (artifactId , generation ), generation <= config .stableIntermediaryGeneration );
73+ }
74+
7375 public static final MavenMetadataParser intermediaryMetadataParser (int generation ) {
7476 return generationalMavenMetadataParser (generation , "net.ornithemc" , "calamus-intermediary" );
7577 }
@@ -78,15 +80,23 @@ public static final MavenMetadataParser featherMetadataParser(int generation) {
7880 return generationalMavenMetadataParser (generation , "net.ornithemc" , "feather" );
7981 }
8082
81- public static final MavenMetadataParser oslModuleMetadataParser (String module ) {
82- return new MavenMetadataParser (ORNITHE_MAVEN_URL , "net.ornithemc.osl" , module );
83+ public static final MavenMetadataParser oslMetadataParser (int generation ) {
84+ return generationalMavenMetadataParser (generation , "net.ornithemc" , "osl" );
85+ }
86+
87+ public static final MavenPomParser oslPomParser (int generation ) {
88+ return generationalMavenPomParser (generation , "net.ornithemc" , "osl" );
8389 }
8490
85- private static List <String > oslModules () {
91+ public static final MavenMetadataParser oslModuleMetadataParser (int generation , String module ) {
92+ return new MavenMetadataParser (ORNITHE_MAVEN_URL , modifyForIntermediaryGeneration ("net.ornithemc.osl" , generation ), module , generation <= config .stableIntermediaryGeneration );
93+ }
94+
95+ private static List <String > oslModules (int generation ) {
8696 List <String > modules = new ArrayList <>();
8797
8898 try {
89- URL url = new URL (ORNITHE_MAVEN_DETAILS_URL + "net/ornithemc/osl" );
99+ URL url = new URL (modifyForIntermediaryGeneration ( ORNITHE_MAVEN_DETAILS_URL + "net/ornithemc/osl" , generation ) );
90100
91101 try (InputStreamReader input = new InputStreamReader (url .openStream ())) {
92102 JsonNode json = OrnitheMeta .MAPPER .readTree (input );
@@ -123,25 +133,26 @@ private static List<String> oslModules() {
123133 private final Int2ObjectMap <List <BaseVersion >> game ;
124134 private final Int2ObjectMap <List <MavenVersion >> intermediary ;
125135 private final Int2ObjectMap <List <MavenBuildGameVersion >> feather ;
136+ private final Int2ObjectMap <List <MavenVersion >> osl ;
137+ private final Int2ObjectMap <Map <String , List <MavenVersion >>> oslDependencies ;
138+ private final Int2ObjectMap <Map <String , List <MavenVersion >>> oslModules ;
126139 private final Map <LoaderType , List <MavenBuildVersion >> loader ;
127- private final Map <String , List <MavenVersion >> oslDependencies ;
128- private final Map <String , List <MavenVersion >> oslModules ;
129140
130141 public List <MavenBuildGameVersion > raven ;
131142 public List <MavenBuildGameVersion > sparrow ;
132143 public List <MavenBuildGameVersion > nests ;
133144 public List <MavenUrlVersion > installer ;
134- public List <MavenVersion > osl ;
135145 public List <LibraryUpgrade > libraryUpgrades ;
136146
137147 private VersionDatabase () {
138148 this .manifest = new VersionManifest ();
139149 this .game = new Int2ObjectOpenHashMap <>();
140150 this .intermediary = new Int2ObjectOpenHashMap <>();
141151 this .feather = new Int2ObjectOpenHashMap <>();
152+ this .osl = new Int2ObjectOpenHashMap <>();
153+ this .oslDependencies = new Int2ObjectOpenHashMap <>();
154+ this .oslModules = new Int2ObjectOpenHashMap <>();
142155 this .loader = new EnumMap <>(LoaderType .class );
143- this .oslDependencies = new HashMap <>();
144- this .oslModules = new HashMap <>();
145156 }
146157
147158 public static VersionDatabase generate () throws Exception {
@@ -151,6 +162,15 @@ public static VersionDatabase generate() throws Exception {
151162 for (int generation = 1 ; generation <= config .latestIntermediaryGeneration ; generation ++) {
152163 database .intermediary .put (generation , intermediaryMetadataParser (generation ).getVersions (MavenVersion ::new ));
153164 database .feather .put (generation , featherMetadataParser (generation ).getVersions (MavenBuildGameVersion ::new ));
165+ database .osl .put (generation , oslMetadataParser (generation ).getVersions (MavenVersion ::new ));
166+ for (MavenVersion version : database .osl .get (generation )) {
167+ database .oslDependencies .computeIfAbsent (generation , key -> new HashMap <>()).put (version .getVersion (), oslPomParser (generation ).getDependencies (MavenVersion ::new , version .getVersion (), v -> {
168+ return v .getMaven ().startsWith ("net.ornithemc.osl" );
169+ }));
170+ }
171+ for (String module : oslModules (generation )) {
172+ database .oslModules .computeIfAbsent (generation , key -> new HashMap <>()).put (module , oslModuleMetadataParser (generation , module ).getVersions (MavenVersion ::new ));
173+ }
154174 }
155175 database .raven = RAVEN_METADATA_PARSER .getVersions (MavenBuildGameVersion ::new );
156176 database .sparrow = SPARROW_METADATA_PARSER .getVersions (MavenBuildGameVersion ::new );
@@ -173,15 +193,6 @@ public static VersionDatabase generate() throws Exception {
173193 }
174194 }));
175195 database .installer = INSTALLER_METADATA_PARSER .getVersions (MavenUrlVersion ::new );
176- database .osl = OSL_METADATA_PARSER .getVersions (MavenVersion ::new );
177- for (MavenVersion version : database .osl ) {
178- database .oslDependencies .put (version .getVersion (), OSL_POM_PARSER .getDependencies (MavenVersion ::new , version .getVersion (), v -> {
179- return v .getMaven ().startsWith ("net.ornithemc.osl" );
180- }));
181- }
182- for (String module : oslModules ()) {
183- database .oslModules .put (module , oslModuleMetadataParser (module ).getVersions (MavenVersion ::new ));
184- }
185196 database .libraryUpgrades = LibraryUpgradesV3 .get ();
186197 database .loadMcData ();
187198 OrnitheMeta .LOGGER .info ("DB update took {}ms" , System .currentTimeMillis () - start );
@@ -297,16 +308,20 @@ public List<MavenBuildGameVersion> getFeather(int generation) {
297308 return feather .get (generation );
298309 }
299310
300- public List <MavenBuildVersion > getLoader ( LoaderType type ) {
301- return loader .get (type ). stream (). filter ( VersionDatabase :: isPublicLoaderVersion ). collect ( Collectors . toList () );
311+ public List <MavenVersion > getOsl ( int generation ) {
312+ return osl .get (generation );
302313 }
303314
304- public List <MavenVersion > getOslDependencies (String version ) {
305- return oslDependencies .get (version );
315+ public List <MavenVersion > getOslDependencies (int generation , String version ) {
316+ return oslDependencies .get (generation ). get ( version );
306317 }
307318
308- public List <MavenVersion > getOslModule (String module ) {
309- return oslModules .get (module );
319+ public List <MavenVersion > getOslModule (int generation , String module ) {
320+ return oslModules .get (generation ).get (module );
321+ }
322+
323+ public List <MavenBuildVersion > getLoader (LoaderType type ) {
324+ return loader .get (type ).stream ().filter (VersionDatabase ::isPublicLoaderVersion ).collect (Collectors .toList ());
310325 }
311326
312327 public List <MavenBuildVersion > getAllLoader (LoaderType type ) {
0 commit comments