From ee83471bf6a2cc8e8e7f5ff1f8dabf7e21d22cb1 Mon Sep 17 00:00:00 2001 From: Leijurv Date: Fri, 15 Mar 2019 14:25:59 -0700 Subject: [PATCH] fix being unable to place or pick up water buckets --- src/api/java/baritone/api/utils/IPlayerController.java | 2 ++ src/main/java/baritone/utils/BlockPlaceHelper.java | 3 +++ .../java/baritone/utils/player/PrimaryPlayerController.java | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/src/api/java/baritone/api/utils/IPlayerController.java b/src/api/java/baritone/api/utils/IPlayerController.java index dced52865..14334d5e2 100644 --- a/src/api/java/baritone/api/utils/IPlayerController.java +++ b/src/api/java/baritone/api/utils/IPlayerController.java @@ -50,4 +50,6 @@ public interface IPlayerController { } EnumActionResult processRightClickBlock(EntityPlayerSP player, World world, BlockPos pos, EnumFacing direction, Vec3d vec, EnumHand hand); + + EnumActionResult processRightClick(EntityPlayerSP player, World world, EnumHand hand); } diff --git a/src/main/java/baritone/utils/BlockPlaceHelper.java b/src/main/java/baritone/utils/BlockPlaceHelper.java index 8e7ef44a6..ed472d57a 100644 --- a/src/main/java/baritone/utils/BlockPlaceHelper.java +++ b/src/main/java/baritone/utils/BlockPlaceHelper.java @@ -46,6 +46,9 @@ public class BlockPlaceHelper implements Helper { ctx.player().swingArm(hand); return; } + if (!ctx.player().getHeldItem(hand).isEmpty() && ctx.playerController().processRightClick(ctx.player(), ctx.world(), hand) == EnumActionResult.SUCCESS) { + return; + } } } } diff --git a/src/main/java/baritone/utils/player/PrimaryPlayerController.java b/src/main/java/baritone/utils/player/PrimaryPlayerController.java index 76e389e77..b9828c803 100644 --- a/src/main/java/baritone/utils/player/PrimaryPlayerController.java +++ b/src/main/java/baritone/utils/player/PrimaryPlayerController.java @@ -72,4 +72,9 @@ public enum PrimaryPlayerController implements IPlayerController, Helper { // primaryplayercontroller is always in a WorldClient so this is ok return mc.playerController.processRightClickBlock(player, (WorldClient) world, pos, direction, vec, hand); } + + @Override + public EnumActionResult processRightClick(EntityPlayerSP player, World world, EnumHand hand) { + return mc.playerController.processRightClick(player, world, hand); + } }