diff --git a/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java b/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java new file mode 100644 index 00000000..4aad6dbd --- /dev/null +++ b/src/main/java/ru/bclib/mixin/common/shears/ItemPredicateBuilderMixin.java @@ -0,0 +1,34 @@ +package ru.bclib.mixin.common.shears; + +import net.minecraft.advancements.critereon.ItemPredicate; +import net.minecraft.advancements.critereon.ItemPredicate.Builder; +import net.minecraft.tags.Tag; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.level.ItemLike; +import org.jetbrains.annotations.Nullable; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; +import ru.bclib.api.TagAPI; + +import java.util.Set; + +@Mixin(ItemPredicate.class) +public abstract class ItemPredicateBuilderMixin { + + @Shadow @Final private @Nullable Set items; + + @Inject(method = "matches", at = @At("HEAD"), cancellable = true) + void bclib_of(ItemStack itemStack, CallbackInfoReturnable cir) { + if (this.items != null && this.items.size() == 1 && this.items.contains(Items.SHEARS)) { + if (itemStack.is(TagAPI.ITEM_COMMON_SHEARS) || itemStack.is(TagAPI.ITEM_SHEARS)){ + cir.setReturnValue(true); + } + } + } +} diff --git a/src/main/resources/bclib.mixins.common.json b/src/main/resources/bclib.mixins.common.json index 2a4f41c2..5c9565c3 100644 --- a/src/main/resources/bclib.mixins.common.json +++ b/src/main/resources/bclib.mixins.common.json @@ -7,6 +7,7 @@ "SimpleReloadableResourceManagerMixin", "BiomeGenerationSettingsAccessor", "shears.DiggingEnchantmentMixin", + "shears.ItemPredicateBuilderMixin", "LayerLightSectionStorageMixin", "NoiseBasedChunkGeneratorMixin", "NoiseGeneratorSettingsMixin",