@@ -36,18 +36,18 @@ public static Predicate<WorldProvider> createWorldPredicate(JsonElement element)
3636 allPredicates .add (wp -> wp .isNether () || wp .getDimensionType () == DimensionType .NETHER );
3737 continue ;
3838 }
39- Function <WorldProvider , String > stringSupplier ;
39+ Function <WorldProvider , String > stringSupplier = null ;
4040 if (stringValue .startsWith ("dimension_id:" )) {
4141 String filterValue = stringValue .substring (13 );
4242 if (filterValue .indexOf (':' ) == -1 ) {
4343 int dimensionId = Integer .parseInt (filterValue );
44- return provider -> provider .getDimension () == dimensionId ;
44+ allPredicates . add ( provider -> provider .getDimension () == dimensionId ) ;
4545 } else {
4646 int indexOf = filterValue .indexOf (':' );
4747 int indexOfExclusive = indexOf + 1 ;
4848 int minDimensionId = indexOf == 0 ? -Integer .MAX_VALUE : Integer .parseInt (filterValue .substring (0 , indexOf ));
4949 int maxDimensionId = indexOfExclusive == filterValue .length () ? Integer .MAX_VALUE : Integer .parseInt (filterValue .substring (indexOfExclusive ));
50- return provider -> provider .getDimension () >= minDimensionId && provider .getDimension () <= maxDimensionId ;
50+ allPredicates . add ( provider -> provider .getDimension () >= minDimensionId && provider .getDimension () <= maxDimensionId ) ;
5151 }
5252 } else if (stringValue .startsWith ("name:" )) {
5353 stringSupplier = provider -> provider .getDimensionType ().getName ();
@@ -56,12 +56,16 @@ public static Predicate<WorldProvider> createWorldPredicate(JsonElement element)
5656 stringSupplier = provider -> provider .getClass ().getSimpleName ();
5757 stringValue = stringValue .substring (15 );
5858 } else throw new IllegalArgumentException ("Unknown world predicate: " + stringValue );
59- if (stringValue .startsWith ("*" )) {
60- Pattern pattern = Pattern .compile (stringValue .substring (1 ));
61- return provider -> pattern .matcher (stringSupplier .apply (provider )).matches ();
62- } else {
63- String finalStringValue = stringValue ;
64- return provider -> finalStringValue .equalsIgnoreCase (stringSupplier .apply (provider ));
59+ if (stringSupplier != null ) {
60+ if (stringValue .startsWith ("*" )) {
61+ Pattern pattern = Pattern .compile (stringValue .substring (1 ));
62+ Function <WorldProvider , String > finalStringSupplier = stringSupplier ;
63+ allPredicates .add (provider -> pattern .matcher (finalStringSupplier .apply (provider )).matches ());
64+ } else {
65+ String finalStringValue = stringValue ;
66+ Function <WorldProvider , String > finalStringSupplier1 = stringSupplier ;
67+ allPredicates .add (provider -> finalStringValue .equalsIgnoreCase (finalStringSupplier1 .apply (provider )));
68+ }
6569 }
6670 }
6771
0 commit comments