diff --git a/src/main/java/com/tcn/dimensionalpocketsii/core/management/PocketsGameEventsManager.java b/src/main/java/com/tcn/dimensionalpocketsii/core/management/PocketsGameEventsManager.java index 2f3cc8f..63d1f1d 100644 --- a/src/main/java/com/tcn/dimensionalpocketsii/core/management/PocketsGameEventsManager.java +++ b/src/main/java/com/tcn/dimensionalpocketsii/core/management/PocketsGameEventsManager.java @@ -37,6 +37,7 @@ import net.minecraft.world.item.component.CustomData; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; +import net.minecraft.world.level.block.Block; import net.minecraft.world.level.dimension.BuiltinDimensionTypes; import net.minecraft.world.level.dimension.DimensionType; import net.neoforged.api.distmarker.Dist; @@ -44,8 +45,10 @@ import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.common.EventBusSubscriber; import net.neoforged.neoforge.client.event.InputEvent.Key; +import net.neoforged.neoforge.common.util.TriState; import net.neoforged.neoforge.event.entity.living.LivingEquipmentChangeEvent; import net.neoforged.neoforge.event.entity.player.PlayerEvent; +import net.neoforged.neoforge.event.entity.player.PlayerInteractEvent; import net.neoforged.neoforge.event.level.LevelEvent; import net.neoforged.neoforge.network.PacketDistributor; @@ -285,5 +288,18 @@ public static void onPlayerLoggedOutEvent(final PlayerEvent.PlayerLoggedOutEvent @SubscribeEvent public static void onPlayerLoggedInEvent(final PlayerEvent.PlayerLoggedInEvent event) { } - + + @SubscribeEvent + public static void onRightClickBlock(PlayerInteractEvent.RightClickBlock event) { + Block block = (event.getLevel().getBlockState(event.getPos()).getBlock()); + // force use block even if hand is not empty + if (block == PocketsRegistrationManager.BLOCK_POCKET.get() || + block == PocketsRegistrationManager.BLOCK_POCKET_ENHANCED.get() || + block == PocketsRegistrationManager.BLOCK_WALL.get()|| + block == PocketsRegistrationManager.BLOCK_WALL_EDGE.get() + ) { + event.setUseItem(TriState.FALSE); + event.setUseBlock(TriState.TRUE); + } + } } \ No newline at end of file