Skip to content

Commit ccaf6c1

Browse files
authored
Fix multi dimensions (#1713)
1 parent 62faa27 commit ccaf6c1

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/main/java/gregtech/api/worldgen/config/WorldConfigUtils.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)