From 49820490b60592da7cef210101b18b0c682f8233 Mon Sep 17 00:00:00 2001 From: Jottyfan Date: Sun, 25 Jan 2026 08:57:25 +0100 Subject: [PATCH] fixed bug on path creation --- gradle.properties | 2 +- .../java/de/jottyfan/minecraft/item/QShovel.java | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index 89f25b8..55b6fbe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,7 +12,7 @@ loader_version=0.18.4 loom_version=1.15-SNAPSHOT # Mod Properties -mod_version=26.1.4 +mod_version=26.1.4.1 maven_group=de.jottyfan.minecraft archives_base_name=quickly diff --git a/src/main/java/de/jottyfan/minecraft/item/QShovel.java b/src/main/java/de/jottyfan/minecraft/item/QShovel.java index 8b02136..587f3a3 100644 --- a/src/main/java/de/jottyfan/minecraft/item/QShovel.java +++ b/src/main/java/de/jottyfan/minecraft/item/QShovel.java @@ -1,6 +1,7 @@ package de.jottyfan.minecraft.item; import java.util.List; +import java.util.Set; import com.google.common.collect.Lists; @@ -26,7 +27,7 @@ public class QShovel extends ShovelItem implements ToolRangeable { this.range = properties.getHarvestRange(); } - private void createPathOnGrass(Level level, BlockPos pos, Direction side) { + private void createPath(Level level, BlockPos pos, Direction side, Set validBlocks) { BlockState blockState = level.getBlockState(pos); if (blockState.isAir()) { // try to find one underneath @@ -39,7 +40,9 @@ public class QShovel extends ShovelItem implements ToolRangeable { if (side != Direction.DOWN) { if (blockState != null && level.getBlockState(pos.above()).isAir()) { if (!level.isClientSide()) { - level.setBlockAndUpdate(pos, Blocks.DIRT_PATH.defaultBlockState()); + if (validBlocks.contains(blockState.getBlock())) { + level.setBlockAndUpdate(pos, Blocks.DIRT_PATH.defaultBlockState()); + } } } } @@ -47,10 +50,13 @@ public class QShovel extends ShovelItem implements ToolRangeable { @Override public InteractionResult useOn(UseOnContext context) { - for (BlockPos pos : range.getRangeAsBlockPosArray(context.getClickedPos(), true, new BlockPos(1, 1, 1))) { - createPathOnGrass(context.getLevel(), pos, context.getClickedFace()); + InteractionResult result = super.useOn(context); + if (InteractionResult.SUCCESS.equals(result)) { + for (BlockPos pos : range.getRangeAsBlockPosArray(context.getClickedPos(), true, new BlockPos(1, 1, 1))) { + createPath(context.getLevel(), pos, context.getClickedFace(), FLATTENABLES.keySet()); + } } - return super.useOn(context); + return result; } @Override