Added more information to upgrade items and notify players of what they upgraded and their remaining points after they purchase an upgrade

This commit is contained in:
Teriuihi 2023-09-26 23:26:02 +02:00
parent c42886b15a
commit 7baf9a7f97
2 changed files with 23 additions and 1 deletions

View File

@ -109,11 +109,15 @@ public class Messages extends AbstractConfig {
public static List<String> ROD_LORE = List.of(
"<green>A Fishing Rod specifically crafted for:</green>",
"<player>");
public static String PRIZE_NAME = "<green>Upgrade track: <track></green>";
public static List<String> PRIZE_LORE = List.of("<green>price: <gold><price></gold></green>");
@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 = "<green><gold><player></gold> just caught a new longest fish! They caught a <rarity> <fish> <gold><length> cm</gold></green>";
public static String PURCHASED_UPGRADE = "<green>You upgraded <track> to level <level> and have <remaining_points> remaining.</green>";
@SuppressWarnings("unused")
private static void load() {
NEW_LEADER = config.getString(prefix, "new-leader", NEW_LEADER);
PURCHASED_UPGRADE = config.getString(prefix, "pruchased-upgrade", PURCHASED_UPGRADE);
}
}

View File

@ -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();
}