diff --git a/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItem.java b/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItem.java index c38e561bf9..0592640a5a 100644 --- a/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItem.java +++ b/src/main/java/com/simibubi/create/content/equipment/extendoGrip/ExtendoGripItem.java @@ -19,6 +19,7 @@ import net.fabricmc.api.Environment; import net.minecraft.client.Minecraft; import net.minecraft.client.player.LocalPlayer; +import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.world.InteractionHand; import net.minecraft.world.damagesource.DamageSource; @@ -31,6 +32,10 @@ import net.minecraft.world.entity.projectile.ProjectileUtil; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.phys.AABB; import net.minecraft.world.phys.BlockHitResult; import net.minecraft.world.phys.EntityHitResult; @@ -158,23 +163,6 @@ public static void dontMissEntitiesWhenYouHaveHighReachDistance(/*ClickInputEven } } -// @SubscribeEvent(priority = EventPriority.LOWEST) -// public static void consumeDurabilityOnBlockBreak(BreakEvent event) { -// findAndDamageExtendoGrip(event.getPlayer()); -// } -// -// @SubscribeEvent(priority = EventPriority.LOWEST) -// public static void consumeDurabilityOnPlace(EntityPlaceEvent event) { -// Entity entity = event.getEntity(); -// if (entity instanceof Player) -// findAndDamageExtendoGrip((Player) entity); -// } - -// @SubscribeEvent(priority = EventPriority.LOWEST) -// public static void consumeDurabilityOnPlace(PlayerInteractEvent event) { -// findAndDamageExtendoGrip(event.getPlayer()); -// } - private static void findAndDamageExtendoGrip(Player player) { if (player == null) return; @@ -289,6 +277,14 @@ public static boolean isHoldingExtendoGrip(Player player) { return holdingGrip; } + public static void consumeDurabilityOnBreak(Level level, Player player, BlockPos blockPos, BlockState blockState, BlockEntity blockEntity) { + findAndDamageExtendoGrip(player); + } + + public static void consumeDurabilityOnPlace(BlockPlaceContext blockPlaceContext, BlockPos blockPos, BlockState blockState) { + findAndDamageExtendoGrip(blockPlaceContext.getPlayer()); + } + // @Override // @Environment(EnvType.CLIENT) // public void initializeClient(Consumer consumer) { diff --git a/src/main/java/com/simibubi/create/foundation/events/CommonEvents.java b/src/main/java/com/simibubi/create/foundation/events/CommonEvents.java index 32b41418db..8df58ef3ce 100644 --- a/src/main/java/com/simibubi/create/foundation/events/CommonEvents.java +++ b/src/main/java/com/simibubi/create/foundation/events/CommonEvents.java @@ -310,5 +310,7 @@ public static void register() { MinecartEvents.WRITE.register(AbstractMinecartExtensions::minecartWrite); MinecartEvents.REMOVE.register(AbstractMinecartExtensions::minecartRemove); PlayerBlockBreakEvents.BEFORE.register(SymmetryHandler::onBlockDestroyed); + PlayerBlockBreakEvents.AFTER.register(ExtendoGripItem::consumeDurabilityOnBreak); + BlockEvents.POST_PROCESS_PLACE.register(ExtendoGripItem::consumeDurabilityOnPlace); } }