From 7baf9a7f974f58edf1e9c2032daef937c41cff8f Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Tue, 26 Sep 2023 23:26:02 +0200 Subject: [PATCH] Added more information to upgrade items and notify players of what they upgraded and their remaining points after they purchase an upgrade --- .../alttd/fishingevent/config/Messages.java | 6 ++++++ .../gui/windows/UpgradeWindow.java | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/fishingevent/config/Messages.java b/src/main/java/com/alttd/fishingevent/config/Messages.java index da63e3d..5d25d88 100644 --- a/src/main/java/com/alttd/fishingevent/config/Messages.java +++ b/src/main/java/com/alttd/fishingevent/config/Messages.java @@ -109,11 +109,15 @@ public class Messages extends AbstractConfig { public static List ROD_LORE = List.of( "A Fishing Rod specifically crafted for:", ""); + public static String PRIZE_NAME = "Upgrade track: "; + public static List PRIZE_LORE = List.of("price: "); @SuppressWarnings("unused") private static void load() { ROD_NAME = config.getString(prefix, "rod-name", ROD_NAME); ROD_LORE = config.getStringList(prefix, "rod-lore", ROD_LORE); + PRIZE_NAME = config.getString(prefix, "prize-name", PRIZE_NAME); + PRIZE_LORE = config.getStringList(prefix, "prize-lore", PRIZE_LORE); } } @@ -152,10 +156,12 @@ public class Messages extends AbstractConfig { private static final String prefix = "other-messages."; public static String NEW_LEADER = " just caught a new longest fish! They caught a cm"; + public static String PURCHASED_UPGRADE = "You upgraded to level and have remaining."; @SuppressWarnings("unused") private static void load() { NEW_LEADER = config.getString(prefix, "new-leader", NEW_LEADER); + PURCHASED_UPGRADE = config.getString(prefix, "pruchased-upgrade", PURCHASED_UPGRADE); } } diff --git a/src/main/java/com/alttd/fishingevent/gui/windows/UpgradeWindow.java b/src/main/java/com/alttd/fishingevent/gui/windows/UpgradeWindow.java index efbe0c0..1cfd137 100644 --- a/src/main/java/com/alttd/fishingevent/gui/windows/UpgradeWindow.java +++ b/src/main/java/com/alttd/fishingevent/gui/windows/UpgradeWindow.java @@ -25,6 +25,7 @@ import java.util.Arrays; import java.util.List; import java.util.Objects; import java.util.Optional; +import java.util.stream.Collectors; public class UpgradeWindow extends GUI { @@ -97,6 +98,15 @@ public class UpgradeWindow extends GUI { } EnchantmentData enchantmentData = optionalEnchantmentData.get(); itemStack.addUnsafeEnchantment(enchantmentData.enchantment(), enchantmentData.level()); + + TagResolver.Single pricePlaceholder = Placeholder.parsed("price", String.valueOf(enchantmentData.price())); + MiniMessage miniMessage = MiniMessage.miniMessage(); + ItemMeta itemMeta = itemStack.getItemMeta(); + + itemMeta.displayName(miniMessage.deserialize(Messages.ITEMS.PRIZE_NAME, Placeholder.component("track", enchantmentTrack.getName()))); + itemMeta.lore(Messages.ITEMS.PRIZE_LORE.stream().map(line -> miniMessage.deserialize(line, pricePlaceholder)).collect(Collectors.toList())); + itemStack.setItemMeta(itemMeta); + return Optional.of(itemStack); } @@ -138,8 +148,9 @@ public class UpgradeWindow extends GUI { return; } + int remainingPoints; try { - PointsManagement.getInstance().removePoints(player.getUniqueId(), enchantmentData.price()); + remainingPoints = PointsManagement.getInstance().removePoints(player.getUniqueId(), enchantmentData.price()); } catch (IllegalArgumentException e) { player.sendMiniMessage(Messages.GUI.NOT_ENOUGH_POINTS, TagResolver.resolver( Placeholder.parsed("price", String.valueOf(enchantmentData.price())), @@ -155,6 +166,11 @@ public class UpgradeWindow extends GUI { } inventory.setItem(fishingRodSlot, fishingRod); + player.sendMiniMessage(Messages.OTHER_MESSAGES.PURCHASED_UPGRADE, TagResolver.resolver( + Placeholder.parsed("remaining_points", String.valueOf(remainingPoints)), + Placeholder.component("track", enchantmentTrack.getName()), + Placeholder.parsed("level", String.valueOf(trackLevel)) + )); updateGUI(); player.updateInventory(); }