From a2b3efe8a22815884b07c5e26d1036b20dc668e6 Mon Sep 17 00:00:00 2001 From: Misat11 <20199703+Misat11@users.noreply.github.com> Date: Sat, 4 May 2024 19:57:28 +0200 Subject: [PATCH] fix: (not tested) placing a block on a bed without shift does not remove the item from the inventory if the amount is one port of 0.2.32 commit c43bbcc --- .../bedwars/listener/PlayerListener.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/plugin/common/src/main/java/org/screamingsandals/bedwars/listener/PlayerListener.java b/plugin/common/src/main/java/org/screamingsandals/bedwars/listener/PlayerListener.java index 2ba2f154b..4bcf1303d 100644 --- a/plugin/common/src/main/java/org/screamingsandals/bedwars/listener/PlayerListener.java +++ b/plugin/common/src/main/java/org/screamingsandals/bedwars/listener/PlayerListener.java @@ -58,6 +58,7 @@ import org.screamingsandals.lib.event.OnEvent; import org.screamingsandals.lib.event.entity.*; import org.screamingsandals.lib.event.player.*; +import org.screamingsandals.lib.item.builder.ItemStackFactory; import org.screamingsandals.lib.lang.Message; import org.screamingsandals.lib.placeholders.PlaceholderManager; import org.screamingsandals.lib.player.Player; @@ -1005,7 +1006,15 @@ public void onPlayerInteract(PlayerInteractEvent event) { originalState.updateBlock(true, false); } else { if (!player.getGameMode().is("creative")) { - stack.changeAmount(stack.getAmount() - 1); + if (stack.getAmount() > 1) { + stack.changeAmount(stack.getAmount() - 1); + } else { + if (player.getPlayerInventory().getItemInOffHand().equals(stack)) { + player.getPlayerInventory().setItemInOffHand(ItemStackFactory.getAir()); + } else { + player.getPlayerInventory().setItemInMainHand(ItemStackFactory.getAir()); + } + } } if (!player.isSneaking()) { // TODO get right block place sound