diff --git a/src/main/java/appeng/mixins/spatial/BiomesMixin.java b/src/main/java/appeng/mixins/spatial/BiomesMixin.java index 8b8eed998..61698c93d 100644 --- a/src/main/java/appeng/mixins/spatial/BiomesMixin.java +++ b/src/main/java/appeng/mixins/spatial/BiomesMixin.java @@ -1,13 +1,21 @@ package appeng.mixins.spatial; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import net.minecraft.util.registry.BuiltinRegistries; +import net.minecraft.util.registry.RegistryKey; +import net.minecraft.world.biome.Biome; import net.minecraft.world.biome.Biomes; +import it.unimi.dsi.fastutil.ints.Int2ObjectMap; + import appeng.spatial.SpatialStorageBiome; import appeng.spatial.SpatialStorageDimensionIds; @@ -18,10 +26,21 @@ import appeng.spatial.SpatialStorageDimensionIds; @Mixin(Biomes.class) public class BiomesMixin { + @Unique + private static final Logger LOGGER = LogManager.getLogger(); + + @Shadow + private static Int2ObjectMap> BIOMES; + @Inject(method = "", at = @At("TAIL")) private static void registerBiomes(CallbackInfo ci) { BuiltinRegistries.add(BuiltinRegistries.BIOME, SpatialStorageDimensionIds.BIOME_KEY.getValue(), SpatialStorageBiome.INSTANCE); + int rawId = BuiltinRegistries.BIOME.getRawId(SpatialStorageBiome.INSTANCE); + RegistryKey prev = BIOMES.put(rawId, SpatialStorageDimensionIds.BIOME_KEY); + if (prev != null) { + LOGGER.warn("Biome with raw-id {} was already registered: {}", rawId, prev); + } } }