@@ -87,35 +87,27 @@ public static final MavenMetadataParser oslModuleMetadataParser(String module) {
8787 return new MavenMetadataParser (ORNITHE_MAVEN_URL , "net.ornithemc.osl" , module );
8888 }
8989
90- public static StableVersionIdentifier filterFabricLoaderVersions (int generation ) {
91- return versions -> {
92- boolean foundStableVersion = false ;
93-
94- for (Iterator <? extends BaseVersion > it = versions .iterator (); it .hasNext (); ) {
95- BaseVersion version = it .next ();
96-
97- if (generation >= 2 && INVALID_FABRIC_LOADER_VERSIONS_GEN2 .matcher (version .getVersion ()).matches ()) {
98- it .remove ();
99- } else if (!foundStableVersion && isPublicLoaderVersion (version )) {
100- foundStableVersion = true ;
101- version .setStable (true );
102- }
103- }
104- };
90+ public static Pattern invalidLoaderVersionsPattern (LoaderType loaderType ) {
91+ switch (loaderType ) {
92+ case FABRIC :
93+ return INVALID_FABRIC_LOADER_VERSIONS_GEN2 ;
94+ case QUILT :
95+ return INVALID_QUILT_LOADER_VERSIONS_GEN2 ;
96+ default :
97+ throw new IllegalStateException ("no invalid loader versions pattern for loader type " + loaderType .getName ());
98+ }
10599 }
106100
107- public static StableVersionIdentifier filterQuiltLoaderVersions (int generation ) {
101+ public static StableVersionIdentifier filterLoaderVersions (int generation , LoaderType loaderType ) {
108102 return versions -> {
109103 boolean foundStableVersion = false ;
110104
111105 for (Iterator <? extends BaseVersion > it = versions .iterator (); it .hasNext (); ) {
112106 BaseVersion version = it .next ();
113107
114- if (generation >= 2 && INVALID_QUILT_LOADER_VERSIONS_GEN2 .matcher (version .getVersion ()).matches ()) {
108+ if (generation >= 2 && invalidLoaderVersionsPattern ( loaderType ) .matcher (version .getVersion ()).matches ()) {
115109 it .remove ();
116- } else
117- // Quilt publishes beta versions of their loader, filter those out
118- if (!foundStableVersion && isPublicLoaderVersion (version ) && !version .getVersion ().contains ("-" )) {
110+ } else if (!foundStableVersion && isPublicLoaderVersion (loaderType , version )) {
119111 foundStableVersion = true ;
120112 version .setStable (true );
121113 }
@@ -193,8 +185,8 @@ public static VersionDatabase generate() throws Exception {
193185 database .intermediary .put (generation , intermediaryMetadataParser (generation ).getVersions (MavenVersion ::new ));
194186 database .feather .put (generation , featherMetadataParser (generation ).getVersions (MavenBuildGameVersion ::new ));
195187 database .loader .put (generation , new EnumMap <>(LoaderType .class ));
196- database .loader .get (generation ).put (LoaderType .FABRIC , FABRIC_LOADER_METADATA_PARSER .getVersions (MavenBuildVersion ::new , filterFabricLoaderVersions (generation )));
197- database .loader .get (generation ).put (LoaderType .QUILT , QUILT_LOADER_METADATA_PARSER .getVersions (MavenBuildVersion ::new , filterQuiltLoaderVersions (generation )));
188+ database .loader .get (generation ).put (LoaderType .FABRIC , FABRIC_LOADER_METADATA_PARSER .getVersions (MavenBuildVersion ::new , filterLoaderVersions (generation , LoaderType . FABRIC )));
189+ database .loader .get (generation ).put (LoaderType .QUILT , QUILT_LOADER_METADATA_PARSER .getVersions (MavenBuildVersion ::new , filterLoaderVersions (generation , LoaderType . QUILT )));
198190 }
199191 database .raven = RAVEN_METADATA_PARSER .getVersions (MavenBuildGameVersion ::new );
200192 database .sparrow = SPARROW_METADATA_PARSER .getVersions (MavenBuildGameVersion ::new );
@@ -215,8 +207,9 @@ public static VersionDatabase generate() throws Exception {
215207 return database ;
216208 }
217209
218- private static boolean isPublicLoaderVersion (BaseVersion version ) {
219- return true ;
210+ private static boolean isPublicLoaderVersion (LoaderType type , BaseVersion version ) {
211+ // Quilt publishes beta versions of their loader, filter those out
212+ return !(type == LoaderType .QUILT && version .getVersion ().contains ("-" ));
220213 }
221214
222215 private void loadMcData () throws IOException {
@@ -325,7 +318,7 @@ public List<MavenBuildGameVersion> getFeather(int generation) {
325318 }
326319
327320 public List <MavenBuildVersion > getLoader (int generation , LoaderType type ) {
328- return loader .get (generation ).get (type ).stream ().filter (VersionDatabase :: isPublicLoaderVersion ).collect (Collectors .toList ());
321+ return loader .get (generation ).get (type ).stream ().filter (v -> isPublicLoaderVersion ( type , v ) ).collect (Collectors .toList ());
329322 }
330323
331324 public List <MavenVersion > getOslDependencies (String version ) {
0 commit comments