From 0f1f2f10e11fcd6fa1f7d569d6af34e7f919dece Mon Sep 17 00:00:00 2001 From: Jason Date: Sun, 12 Oct 2025 11:40:23 +0200 Subject: [PATCH] Format food item lore to wrap every 5 entries per line for improved readability --- .../menus/fitness/AdminToolFitnessMenu.java | 45 +++++++++++++------ 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/src/main/java/nl/openminetopia/modules/staff/admintool/menus/fitness/AdminToolFitnessMenu.java b/src/main/java/nl/openminetopia/modules/staff/admintool/menus/fitness/AdminToolFitnessMenu.java index f833838a..c0e132c9 100644 --- a/src/main/java/nl/openminetopia/modules/staff/admintool/menus/fitness/AdminToolFitnessMenu.java +++ b/src/main/java/nl/openminetopia/modules/staff/admintool/menus/fitness/AdminToolFitnessMenu.java @@ -12,11 +12,12 @@ import nl.openminetopia.modules.staff.admintool.menus.AdminToolInfoMenu; import nl.openminetopia.utils.item.ItemBuilder; import nl.openminetopia.utils.menu.Menu; -import org.bukkit.Material; -import org.bukkit.OfflinePlayer; -import org.bukkit.Statistic; +import org.bukkit.*; import org.bukkit.entity.Player; +import java.util.*; +import java.util.stream.Collectors; + @Getter public class AdminToolFitnessMenu extends Menu { @@ -77,18 +78,26 @@ public AdminToolFitnessMenu(Player player, OfflinePlayer offlinePlayer, Minetopi .addLoreLine("Luxe eten genuttigd: " + eatingStatistic.getTertiaryPoints().intValue()) .addLoreLine("Goedkoop eten genuttigd: " + eatingStatistic.getSecondaryPoints().intValue()) .addLoreLine(" ") - .addLoreLine("Luxe eten:") - .addLoreLine("" + configuration.getLuxuryFood() - .stream().map(fitnessFood -> fitnessFood.getMaterial().name()) - .toString().replace("[", "").replace("]", "")) + .addLoreLine("Luxe eten:"); + this.splitLoreLines(configuration.getLuxuryFood().stream() + .map(fitnessFood -> fitnessFood.getMaterial().name()) + .collect(Collectors.toList()), "") + .forEach(foodItemBuilder::addLoreLine); + + foodItemBuilder .addLoreLine(" ") - .addLoreLine("Goedkoop eten:") - .addLoreLine("" + configuration.getCheapFood() - .stream().map(fitnessFood -> fitnessFood.getMaterial().name()) - .toString().replace("[", "").replace("]", "")) + .addLoreLine("Goedkoop eten:"); + this.splitLoreLines(configuration.getCheapFood().stream() + .map(fitnessFood -> fitnessFood.getMaterial().name()) + .collect(Collectors.toList()), "") + .forEach(foodItemBuilder::addLoreLine); + + foodItemBuilder .addLoreLine(" ") - .addLoreLine("Spelers krijgen " + configuration.getPointsAbove9Hearts() + " voor het eten van luxe voedsel.") - .addLoreLine("Spelers krijgen " + configuration.getPointsBelow5Hearts() + " voor het eten van goedkoop voedsel.") + .addLoreLine("Spelers krijgen " + configuration.getPointsAbove9Hearts() + + " voor het eten van luxe voedsel.") + .addLoreLine("Spelers krijgen " + configuration.getPointsBelow5Hearts() + + " voor het eten van goedkoop voedsel.") .addLoreLine(" "); GuiItem targetFoodItem = new GuiItem(foodItemBuilder.toItemStack()); @@ -180,4 +189,14 @@ public AdminToolFitnessMenu(Player player, OfflinePlayer offlinePlayer, Minetopi }); gui.setItem(22, backItem); } + + private List splitLoreLines(List items, String color) { + List lines = new ArrayList<>(); + for (int i = 0; i < items.size(); i += 5) { + int end = Math.min(i + 5, items.size()); + String line = color + String.join(", " + color, items.subList(i, end)); + lines.add(line); + } + return lines; + } } \ No newline at end of file