Limited borrowed types to modded

- Pack validation rejects borrowedDimensionType on platforms that generate their own Iris dimension type, with an error naming the supported loaders
- Dimension type keys and registry contracts honor borrowedDimensionType only when the platform generation registry supports borrowed types, so Bukkit always derives its generated iris type
- The Bukkit runtime contract always expects the generated Iris type; hotload still refuses a borrowedDimensionType change
This commit is contained in:
Brian Neumann-Fopiano committed 2026-10-14 21:10:25 -04:00
1 parent 9481a9ecf0
commit aedef3c38a
11 files changed
+133 -22

No files matched your search

@@ -76,6 +76,10 @@ public interface IrisPlatform {
return false;
}
default boolean supportsBorrowedDimensionTypes() {
return false;
}
/**
* Root folder Iris owns for packs, settings and generated data. Created if missing. Never null.
*/
@@ -25,6 +25,10 @@ public interface PlatformGenerationRegistry extends NativeGenerationRegistry {
String dimensionTypeResourceKey(String packName, String dimensionKey, String dimensionTypeKey);
default boolean supportsBorrowedDimensionTypes() {
return false;
}
static String contentAddressedCustomBiomeResourceKey(String identitySha256) {
String requiredFingerprint = Objects.requireNonNull(identitySha256, "identitySha256");
if (!SHA_256_PATTERN.matcher(requiredFingerprint).matches()) {