From 3e59fc56592e079bfff04319fc3fa27aec909d45 Mon Sep 17 00:00:00 2001 From: PikaMug <2267126+PikaMug@users.noreply.github.com> Date: Thu, 11 Jan 2024 17:23:39 -0500 Subject: [PATCH] Parse format tokens in objective message --- .../quests/item/BukkitQuestJournal.java | 69 ++++++++++--------- .../pikamug/quests/player/BukkitQuester.java | 3 +- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/core/src/main/java/me/pikamug/quests/item/BukkitQuestJournal.java b/core/src/main/java/me/pikamug/quests/item/BukkitQuestJournal.java index 96b182abe..12ecac620 100644 --- a/core/src/main/java/me/pikamug/quests/item/BukkitQuestJournal.java +++ b/core/src/main/java/me/pikamug/quests/item/BukkitQuestJournal.java @@ -57,8 +57,8 @@ public class BukkitQuestJournal { } public List getPages() { + final Player player = owner.getPlayer(); if (owner.getCurrentQuests().isEmpty()) { - final Player player = owner.getPlayer(); final String title = BukkitLang.get(player, "journalTitle"); return Collections.singletonList(new BookUtil.PageBuilder().add(new TextComponent(ChatColor.DARK_RED + BukkitLang.get(player, "journalNoQuests").replace("", title))).build()); @@ -74,47 +74,50 @@ public class BukkitQuestJournal { final BookUtil.PageBuilder builder = new BookUtil.PageBuilder().add(title).newLine(); for (final Objective obj : owner.getCurrentObjectives(quest, false, false)) { final BukkitObjective objective = (BukkitObjective) obj; - if (!plugin.getConfigSettings().canShowCompletedObjs() - && objective.getMessage().startsWith(ChatColor.GRAY.toString())) { + if (objective.getMessage() == null) { continue; } - if (objective.getMessage() != null) { - String[] split = null; - if (objective.getMessage().contains("") && objective.getGoalAsItem() != null) { - split = objective.getMessage().split(""); - builder.add(split[0]); - final ItemStack goal = objective.getGoalAsItem(); - if (goal.getItemMeta() != null && goal.getItemMeta().hasDisplayName()) { - builder.add("" + ChatColor.DARK_AQUA + ChatColor.ITALIC - + goal.getItemMeta().getDisplayName()); - } else { - if (plugin.getConfigSettings().canTranslateNames()) { - final TranslatableComponent tc = new TranslatableComponent(plugin.getLocaleManager() - .queryItemStack(goal)); - tc.setColor(net.md_5.bungee.api.ChatColor.DARK_AQUA); - builder.add(tc); - } else { - builder.add(ChatColor.AQUA + BukkitItemUtil.getPrettyItemName(goal.getType().name())); - } - } - builder.add(split[1]).newLine(); - } - if (objective.getMessage().contains("") && objective.getGoalAsMob() != null) { - split = objective.getMessage().split(""); - builder.add(split[0]); + final String message = "- " + BukkitLang.BukkitFormatToken.convertString(player, + objective.getMessage()); + if (!plugin.getConfigSettings().canShowCompletedObjs() + && message.startsWith(ChatColor.GRAY.toString())) { + continue; + } + String[] split = null; + if (message.contains("") && objective.getGoalAsItem() != null) { + split = message.split(""); + builder.add(split[0]); + final ItemStack goal = objective.getGoalAsItem(); + if (goal.getItemMeta() != null && goal.getItemMeta().hasDisplayName()) { + builder.add("" + ChatColor.DARK_AQUA + ChatColor.ITALIC + + goal.getItemMeta().getDisplayName()); + } else { if (plugin.getConfigSettings().canTranslateNames()) { final TranslatableComponent tc = new TranslatableComponent(plugin.getLocaleManager() - .queryEntityType(objective.getGoalAsMob().getEntityType(), null)); // TODO extra data - tc.setColor(net.md_5.bungee.api.ChatColor.DARK_RED); + .queryItemStack(goal)); + tc.setColor(net.md_5.bungee.api.ChatColor.DARK_AQUA); builder.add(tc); } else { - builder.add(BukkitMiscUtil.snakeCaseToUpperCamelCase(objective.getGoalAsMob().getEntityType().name())); + builder.add(ChatColor.AQUA + BukkitItemUtil.getPrettyItemName(goal.getType().name())); } - builder.add(split[1]).newLine(); } - if (split == null) { - builder.add(objective.getMessage()).newLine(); + builder.add(split[1]).newLine(); + } + if (message.contains("") && objective.getGoalAsMob() != null) { + split = message.split(""); + builder.add(split[0]); + if (plugin.getConfigSettings().canTranslateNames()) { + final TranslatableComponent tc = new TranslatableComponent(plugin.getLocaleManager() + .queryEntityType(objective.getGoalAsMob().getEntityType(), null)); // TODO extra data + tc.setColor(net.md_5.bungee.api.ChatColor.DARK_RED); + builder.add(tc); + } else { + builder.add(BukkitMiscUtil.snakeCaseToUpperCamelCase(objective.getGoalAsMob().getEntityType().name())); } + builder.add(split[1]).newLine(); + } + if (split == null) { + builder.add(message).newLine(); } } pages.add(builder.build()); diff --git a/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java b/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java index a7a255c4a..ce1e26553 100644 --- a/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java +++ b/core/src/main/java/me/pikamug/quests/player/BukkitQuester.java @@ -1714,7 +1714,8 @@ public class BukkitQuester implements Quester { } for (final Objective obj : q.getCurrentObjectives(quest, false, false)) { final BukkitObjective objective = (BukkitObjective) obj; - final String message = "- " + objective.getMessage(); + final String message = "- " + BukkitLang.BukkitFormatToken.convertString(quester.getPlayer(), + objective.getMessage()); if (objective.getProgressAsItem() != null && objective.getGoalAsItem() != null) { final ItemStack progress = objective.getProgressAsItem(); final ItemStack goal = objective.getGoalAsItem();