From 7f3f01eda39fa91f767d894c9a860347517ac85a Mon Sep 17 00:00:00 2001 From: Len <40720638+destro174@users.noreply.github.com> Date: Sun, 4 Aug 2024 11:27:49 +0200 Subject: [PATCH] Fix NPE in Gambleshops and add missing messages for gamble shops. --- .../com/alttd/playershops/config/ShopTypeConfig.java | 1 + .../playershops/listener/TransactionListener.java | 11 +++++------ .../java/com/alttd/playershops/shop/PlayerShop.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java b/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java index 96d6c7d..8c31803 100644 --- a/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java +++ b/src/main/java/com/alttd/playershops/config/ShopTypeConfig.java @@ -57,6 +57,7 @@ public class ShopTypeConfig { public String playerNoFunds = "You do not have sufficient funds to trade with this shop."; public String playerNoItems = "You do not have sufficient items to trade with this shop."; public String playerBought = "You bought (s) from for ."; + public String playerGambled = "You gambled (s) from for ."; public String playerSold = "You sold (s) to for ."; public String shopBought = " sold (s) to you for ."; public String shopSold = " bought (s) from you for ."; diff --git a/src/main/java/com/alttd/playershops/listener/TransactionListener.java b/src/main/java/com/alttd/playershops/listener/TransactionListener.java index fc9cd9a..be5d0a9 100644 --- a/src/main/java/com/alttd/playershops/listener/TransactionListener.java +++ b/src/main/java/com/alttd/playershops/listener/TransactionListener.java @@ -208,12 +208,11 @@ public class TransactionListener extends EventListener { } return; } - if (shop.getType().equals(ShopType.BUY)) - player.sendActionBar(Util.parseMiniMessage(shop.getType().getShopTypeConfig().playerSold, placeholders)); - else if (shop.getType().equals(ShopType.SELL)) { - player.sendActionBar(Util.parseMiniMessage(shop.getType().getShopTypeConfig().playerBought, placeholders)); - } else { //TODO add messages for all shop types - player.sendActionBar(Util.parseMiniMessage("NOT IMPLEMENTED", placeholders)); + switch (shop.getType()) { + case BUY -> player.sendActionBar(Util.parseMiniMessage(shop.getType().getShopTypeConfig().playerSold, placeholders)); + case SELL -> player.sendActionBar(Util.parseMiniMessage(shop.getType().getShopTypeConfig().playerBought, placeholders)); + case GAMBLE -> player.sendActionBar(Util.parseMiniMessage(shop.getType().getShopTypeConfig().playerGambled, placeholders)); + default -> player.sendActionBar(Util.parseMiniMessage("NOT IMPLEMENTED", placeholders)); } plugin.getDatabaseHelper().logTransaction(player, shop, orders); } diff --git a/src/main/java/com/alttd/playershops/shop/PlayerShop.java b/src/main/java/com/alttd/playershops/shop/PlayerShop.java index fd35c26..f00a430 100644 --- a/src/main/java/com/alttd/playershops/shop/PlayerShop.java +++ b/src/main/java/com/alttd/playershops/shop/PlayerShop.java @@ -308,7 +308,7 @@ public class PlayerShop { private TransactionError executeGambleTransaction(Player player) { ItemStack itemStack = getRandomItem(); if (itemStack == null) - return null; + return TransactionError.INSUFFICIENT_FUNDS_SHOP; itemStack = itemStack.clone(); double price = getPrice();