diff --git a/src/main/java/carpet/mixins/StructureGeneratorFactory_plopMixin.java b/src/main/java/carpet/mixins/StructureGeneratorFactory_plopMixin.java new file mode 100644 index 00000000..b1f55208 --- /dev/null +++ b/src/main/java/carpet/mixins/StructureGeneratorFactory_plopMixin.java @@ -0,0 +1,23 @@ +package carpet.mixins; + +import carpet.CarpetSettings; +import net.minecraft.structure.StructureGeneratorFactory; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Redirect; + +import java.util.function.Predicate; + +@Mixin(StructureGeneratorFactory.class) +public interface StructureGeneratorFactory_plopMixin +{ + @SuppressWarnings("UnresolvedMixinReference") + @Redirect(method = "method_39845(Ljava/util/function/Predicate;Ljava/util/Optional;Lnet/minecraft/structure/StructureGeneratorFactory$Context;)Ljava/util/Optional;", at = @At( + value = "INVOKE", + target = "java/util/function/Predicate.test(Ljava/lang/Object;)Z" + )) + private static boolean checkMate(Predicate predicate, Object o) + { + return CarpetSettings.skipGenerationChecks.get() || predicate.test(o); + } +} diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 072fb832..8c7bd0e5 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -102,6 +102,7 @@ "ChunkRegion_scarpetPlopMixin", "StructurePiece_scarpetPlopMixin", "PlacedFeature_scarpetMixin", + "StructureGeneratorFactory_plopMixin", "ServerPlayNetworkHandler_scarpetEventsMixin", "ServerPlayerInteractionManager_scarpetEventsMixin",