Makes sure to not display portal information when placing a block

This commit is contained in:
Kristian Knarvik 2021-11-08 15:14:21 +01:00
parent 88bb02dfbd
commit 1efd89cdb0

View File

@ -28,6 +28,8 @@ import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
/** /**
* This listener listens to any player-related events related to stargates * This listener listens to any player-related events related to stargates
@ -186,7 +188,7 @@ public class PlayerEventListener implements Listener {
} }
if (event.getAction() == Action.RIGHT_CLICK_BLOCK) { if (event.getAction() == Action.RIGHT_CLICK_BLOCK) {
handleRightClickBlock(event, player, block); handleRightClickBlock(event, player, block, event.getHand());
} else if (event.getAction() == Action.LEFT_CLICK_BLOCK && block.getBlockData() instanceof WallSign) { } else if (event.getAction() == Action.LEFT_CLICK_BLOCK && block.getBlockData() instanceof WallSign) {
//Handle left click of a wall sign //Handle left click of a wall sign
handleSignClick(event, player, block, true); handleSignClick(event, player, block, true);
@ -259,8 +261,9 @@ public class PlayerEventListener implements Listener {
* @param event <p>The event triggering the right-click</p> * @param event <p>The event triggering the right-click</p>
* @param player <p>The player doing the right-click</p> * @param player <p>The player doing the right-click</p>
* @param block <p>The block the player clicked</p> * @param block <p>The block the player clicked</p>
* @param hand <p>The hand the player used to interact with the stargate</p>
*/ */
private void handleRightClickBlock(PlayerInteractEvent event, Player player, Block block) { private void handleRightClickBlock(PlayerInteractEvent event, Player player, Block block, EquipmentSlot hand) {
if (block.getBlockData() instanceof WallSign) { if (block.getBlockData() instanceof WallSign) {
handleSignClick(event, player, block, false); handleSignClick(event, player, block, false);
return; return;
@ -272,7 +275,6 @@ public class PlayerEventListener implements Listener {
} }
if (MaterialHelper.isButtonCompatible(block.getType())) { if (MaterialHelper.isButtonCompatible(block.getType())) {
Portal portal = PortalHandler.getByBlock(block); Portal portal = PortalHandler.getByBlock(block);
if (portal == null) { if (portal == null) {
return; return;
@ -293,9 +295,12 @@ public class PlayerEventListener implements Listener {
} }
} else { } else {
//Display information about the portal if it has no sign //Display information about the portal if it has no sign
ItemStack heldItem = player.getInventory().getItem(hand);
if (heldItem.getType().isAir() || !heldItem.getType().isBlock()) {
displayPortalInfo(block, player); displayPortalInfo(block, player);
} }
} }
}
/** /**
* Displays information about a clicked portal * Displays information about a clicked portal