Fixed Shears test
This commit is contained in:
parent
194e78c960
commit
2021063c6f
2 changed files with 18 additions and 14 deletions
|
@ -3,32 +3,40 @@ package org.betterx.bclib.mixin.common.shears;
|
|||
import org.betterx.worlds.together.tag.v3.CommonItemTags;
|
||||
|
||||
import net.minecraft.advancements.critereon.ItemPredicate;
|
||||
import net.minecraft.core.HolderSet;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
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.CallbackInfoReturnable;
|
||||
|
||||
import java.util.Set;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import java.util.Optional;
|
||||
|
||||
@Mixin(ItemPredicate.class)
|
||||
public abstract class ItemPredicateBuilderMixin {
|
||||
|
||||
@Shadow
|
||||
@Final
|
||||
private @Nullable Set<Item> items;
|
||||
private Optional<HolderSet<Item>> items;
|
||||
|
||||
@Unique
|
||||
private static final ResourceLocation BCL_SHEARS = new ResourceLocation("shears");
|
||||
|
||||
@Inject(method = "matches", at = @At("HEAD"), cancellable = true)
|
||||
void bclib_isShears(ItemStack itemStack, CallbackInfoReturnable<Boolean> info) {
|
||||
if (this.items != null && this.items.size() == 1 && this.items.contains(Items.SHEARS)) {
|
||||
if (this.items != null && this.items.isPresent()) {
|
||||
final HolderSet<Item> items = this.items.get();
|
||||
if (items.size() == 1 && items.get(0) != null && items.get(0).is(BCL_SHEARS)) {
|
||||
if (itemStack.is(CommonItemTags.SHEARS)) {
|
||||
info.setReturnValue(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,17 +13,13 @@ import net.minecraft.world.level.block.state.BlockState;
|
|||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(TripWireBlock.class)
|
||||
public class TripWireBlockMixin {
|
||||
@Inject(method = "playerWillDestroy(Lnet/minecraft/world/level/Level;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/entity/player/Player;)V", at = @At("HEAD"))
|
||||
@Inject(method = "playerWillDestroy", at = @At("HEAD"))
|
||||
private void bclib_isShears(
|
||||
Level level,
|
||||
BlockPos blockPos,
|
||||
BlockState blockState,
|
||||
Player player,
|
||||
CallbackInfo info
|
||||
Level level, BlockPos blockPos, BlockState blockState, Player player, CallbackInfoReturnable<BlockState> cir
|
||||
) {
|
||||
MethodReplace.addItemReplace(Items.SHEARS, BaseShearsItem::isShear);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue