From 581d03d79bad80e939876d2facee4dd88eb6adad Mon Sep 17 00:00:00 2001 From: Stijn Date: Wed, 31 Aug 2022 18:49:18 +0200 Subject: [PATCH] Added a way to display all info on a shop --- .../listener/TransactionListener.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/playershops/listener/TransactionListener.java b/src/main/java/com/alttd/playershops/listener/TransactionListener.java index a53a94d..d57746a 100644 --- a/src/main/java/com/alttd/playershops/listener/TransactionListener.java +++ b/src/main/java/com/alttd/playershops/listener/TransactionListener.java @@ -43,7 +43,7 @@ public class TransactionListener extends EventListener { return; Player player = event.getPlayer(); - if (!(event.getAction() == Action.RIGHT_CLICK_BLOCK)) + if (!(event.getAction() == Action.RIGHT_CLICK_BLOCK) && !(event.getAction() == Action.LEFT_CLICK_BLOCK)) return; Block block = event.getClickedBlock(); @@ -76,6 +76,11 @@ public class TransactionListener extends EventListener { return; } + if (event.getAction() == Action.LEFT_CLICK_BLOCK) { + giveInfo(playerShop, player); + return; + } + if (ShopUtil.canManageShop(player, playerShop)) { if (player.isSneaking()) return; @@ -91,6 +96,31 @@ public class TransactionListener extends EventListener { executeTransaction(player, playerShop); } + private void giveInfo(PlayerShop playerShop, Player player) { + if (player.isSneaking()) + return; + if (!playerShop.isInitialized()) + return; + + String message = "This shop () for "; + + TagResolver.Single action; + switch (playerShop.getType()) { + case SELL -> action = Placeholder.unparsed("action", "sells"); + case BUY -> action = Placeholder.unparsed("action", "buys"); + case GAMBLE -> action = Placeholder.unparsed("action", "gambles"); + default -> action = Placeholder.unparsed("action", "UNKNOWN"); + } + TagResolver placeholders = TagResolver.resolver(action, + Placeholder.parsed("amount", "" + playerShop.getAmount()), + Placeholder.component("item", playerShop.getItemStack().displayName()), + Placeholder.parsed("material", Util.capitalize(playerShop.getItemStack().getType().name())), + Placeholder.parsed("price", "" + playerShop.getPrice()) + ); + + player.sendMiniMessage(message, placeholders); + } + private void executeTransaction(Player player, PlayerShop shop) { if (shop == null || shop.getItemStack() == null) return;