diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java index 9e0ebba86..8edbc5d9e 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/items/ItemDrill.java @@ -106,14 +106,14 @@ public class ItemDrill extends ItemEnergy{ if(StackUtil.isValid(equip) && equip != stack){ ItemStack toPlaceStack = equip.copy(); - player.setHeldItem(hand, toPlaceStack); + WorldUtil.setHandItemWithoutAnnoyingSound(player, hand, toPlaceStack); //tryPlaceItemIntoWorld could throw an Exception try{ //Places the Block into the World if(toPlaceStack.onItemUse(player, world, pos, hand, side, hitX, hitY, hitZ) != EnumActionResult.FAIL){ if(!player.capabilities.isCreativeMode){ - player.setHeldItem(hand, StackUtil.validateCopy(toPlaceStack)); + WorldUtil.setHandItemWithoutAnnoyingSound(player, hand, StackUtil.validateCopy(toPlaceStack)); } } } @@ -123,7 +123,7 @@ public class ItemDrill extends ItemEnergy{ } player.inventory.setInventorySlotContents(slot, player.getHeldItem(hand)); - player.setHeldItem(hand, stack); + WorldUtil.setHandItemWithoutAnnoyingSound(player, hand, stack); return EnumActionResult.SUCCESS; } diff --git a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java index 3362d118d..806ff4653 100644 --- a/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java +++ b/src/main/java/de/ellpeck/actuallyadditions/mod/util/WorldUtil.java @@ -242,12 +242,12 @@ public final class WorldUtil{ if(world instanceof WorldServer){ FakePlayer fake = FakePlayerFactory.getMinecraft((WorldServer)world); ItemStack heldBefore = fake.getHeldItemMainhand(); - fake.setHeldItem(EnumHand.MAIN_HAND, stack.copy()); + setHandItemWithoutAnnoyingSound(fake, EnumHand.MAIN_HAND, stack.copy()); fake.getHeldItemMainhand().onItemUse(fake, world, offsetPos, fake.getActiveHand(), side.getOpposite(), 0.5F, 0.5F, 0.5F); ItemStack result = fake.getHeldItem(EnumHand.MAIN_HAND); - fake.setHeldItem(EnumHand.MAIN_HAND, heldBefore); + setHandItemWithoutAnnoyingSound(fake, EnumHand.MAIN_HAND, heldBefore); return result; } } @@ -469,4 +469,13 @@ public final class WorldUtil{ } return 0F; } + + public static void setHandItemWithoutAnnoyingSound(EntityPlayer player, EnumHand hand, ItemStack stack){ + if(hand == EnumHand.MAIN_HAND){ + player.inventory.mainInventory.set(player.inventory.currentItem, stack); + } + else if(hand == EnumHand.OFF_HAND){ + player.inventory.offHandInventory.set(0, stack); + } + } }