diff options
| author | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-06-24 13:57:03 +0100 |
|---|---|---|
| committer | LMBishop <13875753+LMBishop@users.noreply.github.com> | 2021-06-24 13:57:03 +0100 |
| commit | a253e16c348f3607aaa5e860b6dd50267a1f5f6f (patch) | |
| tree | ce4c6622ed23303508a8c1a9cf5a0583aba4c714 /bukkit/src/main | |
| parent | 367cbbede13140cc7c5e13de1041fdf4bd62f105 (diff) | |
Add hex support
- Closes #171
Diffstat (limited to 'bukkit/src/main')
21 files changed, 114 insertions, 63 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/QuestsCommand.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/QuestsCommand.java index 488f91f0..d3a9bc5a 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/QuestsCommand.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/QuestsCommand.java @@ -1,7 +1,7 @@ package com.leonardobishop.quests.bukkit.command; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.bukkit.util.Messages; import com.leonardobishop.quests.common.config.ConfigProblem; import com.leonardobishop.quests.common.enums.QuestStartResult; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java index e80b30e1..1cd8b789 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java @@ -4,6 +4,7 @@ import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.hook.itemgetter.ItemGetter; import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStack; import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStackRegistry; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.config.ConfigProblem; import com.leonardobishop.quests.common.config.ConfigProblemDescriptions; import com.leonardobishop.quests.common.config.QuestsLoader; @@ -321,11 +322,11 @@ public class BukkitQuestsLoader implements QuestsLoader { List<String> cLoreNormal = config.getStringList(path + ".lore-normal"); List<String> cLoreStarted = config.getStringList(path + ".lore-started"); - List<String> loreNormal = translateColoursInList(cLoreNormal); - List<String> loreStarted = translateColoursInList(cLoreStarted); + List<String> loreNormal = Chat.color(cLoreNormal); + List<String> loreStarted = Chat.color(cLoreStarted); String name; - name = ChatColor.translateAlternateColorCodes('&', cName); + name = Chat.color(cName); ItemStack is = plugin.getItemStack(path, config, ItemGetter.Filter.DISPLAY_NAME, ItemGetter.Filter.LORE, ItemGetter.Filter.ENCHANTMENTS, ItemGetter.Filter.ITEM_FLAGS); @@ -333,11 +334,4 @@ public class BukkitQuestsLoader implements QuestsLoader { return new QItemStack(plugin, name, loreNormal, loreStarted, is); } - private List<String> translateColoursInList(List<String> list) { - List<String> coloured = new ArrayList<>(); - for (String s : list) { - coloured.add(ChatColor.translateAlternateColorCodes('&', s)); - } - return coloured; - } } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetterLatest.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetterLatest.java index 4f87c2ac..91c96968 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetterLatest.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetterLatest.java @@ -1,6 +1,6 @@ package com.leonardobishop.quests.bukkit.hook.itemgetter; -import org.bukkit.ChatColor; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import org.bukkit.Material; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeModifier; @@ -11,7 +11,6 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Map; @@ -59,19 +58,13 @@ public class ItemGetterLatest implements ItemGetter { // name if (!filters.contains(Filter.DISPLAY_NAME)) { - name = ChatColor.translateAlternateColorCodes('&', cName); + name = Chat.color(cName); ism.setDisplayName(name); } // lore if (!filters.contains(Filter.LORE)) { - List<String> lore = new ArrayList<>(); - if (cLore != null) { - for (String s : cLore) { - lore.add(ChatColor.translateAlternateColorCodes('&', s)); - } - } - ism.setLore(lore); + ism.setLore(Chat.color(cLore)); } // attribute modifiers diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_1_13.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_1_13.java index a645f810..ec77e548 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_1_13.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_1_13.java @@ -1,5 +1,6 @@ package com.leonardobishop.quests.bukkit.hook.itemgetter; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.attribute.Attribute; @@ -55,19 +56,13 @@ public class ItemGetter_1_13 implements ItemGetter { // name if (!filters.contains(Filter.DISPLAY_NAME)) { - name = ChatColor.translateAlternateColorCodes('&', cName); + name = Chat.color(cName); ism.setDisplayName(name); } // lore if (!filters.contains(Filter.LORE)) { - List<String> lore = new ArrayList<>(); - if (cLore != null) { - for (String s : cLore) { - lore.add(ChatColor.translateAlternateColorCodes('&', s)); - } - } - ism.setLore(lore); + ism.setLore(Chat.color(cLore)); } // attribute modifiers diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_Late_1_8.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_Late_1_8.java index ea80deea..a971503f 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_Late_1_8.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_Late_1_8.java @@ -1,5 +1,6 @@ package com.leonardobishop.quests.bukkit.hook.itemgetter; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import org.apache.commons.lang.StringUtils; import org.bukkit.ChatColor; import org.bukkit.Material; @@ -48,18 +49,12 @@ public class ItemGetter_Late_1_8 implements ItemGetter { // lore if (!filters.contains(Filter.LORE)) { - List<String> lore = new ArrayList<>(); - if (cLore != null) { - for (String s : cLore) { - lore.add(ChatColor.translateAlternateColorCodes('&', s)); - } - } - ism.setLore(lore); + ism.setLore(Chat.color(cLore)); } // name if (!filters.contains(Filter.DISPLAY_NAME)) { - name = ChatColor.translateAlternateColorCodes('&', cName); + name = Chat.color(cName); ism.setDisplayName(name); } diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java index ad015dc5..fdd3a7d0 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java @@ -2,7 +2,7 @@ package com.leonardobishop.quests.bukkit.hook.papi; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStack; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.enums.QuestStartResult; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgressFile; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CancelQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CancelQMenu.java index 3c811bff..51a36dc4 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CancelQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CancelQMenu.java @@ -2,7 +2,7 @@ package com.leonardobishop.quests.bukkit.menu; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.quest.Quest; import org.bukkit.Bukkit; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java index 03693657..a31352f3 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java @@ -6,7 +6,7 @@ import com.leonardobishop.quests.bukkit.menu.element.CategoryMenuElement; import com.leonardobishop.quests.bukkit.menu.element.CustomMenuElement; import com.leonardobishop.quests.bukkit.menu.element.MenuElement; import com.leonardobishop.quests.bukkit.menu.element.SpacerMenuElement; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.bukkit.util.MenuUtils; import com.leonardobishop.quests.bukkit.util.Messages; import com.leonardobishop.quests.common.player.QPlayer; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java index e9c361f0..98cd649b 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java @@ -6,7 +6,7 @@ import com.leonardobishop.quests.bukkit.menu.element.CustomMenuElement; import com.leonardobishop.quests.bukkit.menu.element.MenuElement; import com.leonardobishop.quests.bukkit.menu.element.QuestMenuElement; import com.leonardobishop.quests.bukkit.menu.element.SpacerMenuElement; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.bukkit.util.MenuUtils; import com.leonardobishop.quests.common.enums.QuestStartResult; import com.leonardobishop.quests.common.player.QPlayer; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java index cc8df604..8171ac19 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java @@ -2,7 +2,7 @@ package com.leonardobishop.quests.bukkit.menu; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.bukkit.util.MenuUtils; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java index 96f20560..34091013 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java @@ -3,7 +3,7 @@ package com.leonardobishop.quests.bukkit.menu.element; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStack; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.enums.QuestStartResult; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java index 52059b29..4275d934 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java @@ -1,7 +1,7 @@ package com.leonardobishop.quests.bukkit.menu.itemstack; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.common.quest.Quest; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java index d32218b6..01a9f7b7 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java @@ -9,8 +9,9 @@ import com.leonardobishop.quests.bukkit.api.event.PlayerStopTrackQuestEvent; import com.leonardobishop.quests.bukkit.api.event.PreStartQuestEvent; import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig; import com.leonardobishop.quests.bukkit.menu.itemstack.QItemStack; -import com.leonardobishop.quests.bukkit.util.Chat; +import com.leonardobishop.quests.bukkit.util.Format; import com.leonardobishop.quests.bukkit.util.Messages; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.enums.QuestStartResult; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; @@ -18,9 +19,7 @@ import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; import com.leonardobishop.quests.common.quest.Quest; import com.leonardobishop.quests.common.quest.Task; import com.leonardobishop.quests.common.questcontroller.QuestController; -import com.leonardobishop.quests.bukkit.util.Format; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.entity.Player; import java.util.ArrayList; @@ -121,7 +120,7 @@ public class NormalQuestController implements QuestController { Messages.TITLE_QUEST_START_SUBTITLE.getMessage().replace("{quest}", displayName)); } for (String s : quest.getStartString()) { - player.sendMessage(ChatColor.translateAlternateColorCodes('&', s)); + player.sendMessage(Chat.color(s)); } } for (Task task : quest.getTasks()) { @@ -216,7 +215,7 @@ public class NormalQuestController implements QuestController { Messages.TITLE_QUEST_COMPLETE_SUBTITLE.getMessage().replace("{quest}", displayName)); } for (String s : quest.getRewardString()) { - player.sendMessage(ChatColor.translateAlternateColorCodes('&', s)); + player.sendMessage(Chat.color(s)); } } if ((config.getBoolean("options.allow-quest-track") && config.getBoolean("options.quest-autotrack") && !(quest.isRepeatable() && !quest.isCooldownEnabled())) diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java index 1dca3e8b..7a5958a2 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java @@ -3,6 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType; import com.leonardobishop.quests.bukkit.util.TaskUtils; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.config.ConfigProblem; import com.leonardobishop.quests.common.config.ConfigProblemDescriptions; import com.leonardobishop.quests.common.player.QPlayer; @@ -10,7 +11,6 @@ import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; import com.leonardobishop.quests.common.quest.Quest; import com.leonardobishop.quests.common.quest.Task; -import org.bukkit.ChatColor; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -101,7 +101,7 @@ public final class MobkillingCertainTaskType extends BukkitTaskType { boolean validName = false; for (String name : configNames) { - name = ChatColor.translateAlternateColorCodes('&', name); + name = Chat.color(name); if (mob.getCustomName() == null || !mob.getCustomName().equals(name)) { validName = true; break; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java index cc4aafa4..aba6c985 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java @@ -3,6 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType; import com.leonardobishop.quests.bukkit.util.TaskUtils; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.config.ConfigProblem; import com.leonardobishop.quests.common.config.ConfigProblemDescriptions; import com.leonardobishop.quests.common.player.QPlayer; @@ -12,7 +13,6 @@ import com.leonardobishop.quests.common.quest.Quest; import com.leonardobishop.quests.common.quest.Task; import net.citizensnpcs.api.event.NPCRightClickEvent; import org.bukkit.Bukkit; -import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.configuration.ConfigurationSection; import org.bukkit.entity.Player; @@ -88,8 +88,8 @@ public final class CitizensDeliverTaskType extends BukkitTaskType { QuestProgress questProgress = qPlayer.getQuestProgressFile().getQuestProgress(quest); for (Task task : quest.getTasksOfType(super.getType())) { - if (!ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', String.valueOf(task.getConfigValue("npc-name")))).equals(ChatColor - .stripColor(ChatColor.translateAlternateColorCodes('&', citizenName)))) { + if (!Chat.strip(Chat.color(String.valueOf(task.getConfigValue("npc-name")))) + .equals(Chat.strip(Chat.color(citizenName)))) { return; } if (!TaskUtils.validateWorld(player, task)) continue; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java index 5c6e6be2..73cb195c 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java @@ -3,6 +3,7 @@ package com.leonardobishop.quests.bukkit.tasktype.type.dependent; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; import com.leonardobishop.quests.bukkit.tasktype.BukkitTaskType; import com.leonardobishop.quests.bukkit.util.TaskUtils; +import com.leonardobishop.quests.bukkit.util.chat.Chat; import com.leonardobishop.quests.common.config.ConfigProblem; import com.leonardobishop.quests.common.player.QPlayer; import com.leonardobishop.quests.common.player.questprogressfile.QuestProgress; @@ -10,7 +11,6 @@ import com.leonardobishop.quests.common.player.questprogressfile.TaskProgress; import com.leonardobishop.quests.common.quest.Quest; import com.leonardobishop.quests.common.quest.Task; import net.citizensnpcs.api.event.NPCRightClickEvent; -import org.bukkit.ChatColor; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -49,8 +49,8 @@ public final class CitizensInteractTaskType extends BukkitTaskType { for (Task task : quest.getTasksOfType(super.getType())) { if (!TaskUtils.validateWorld(event.getClicker(), task)) continue; - if (!ChatColor.stripColor(ChatColor.translateAlternateColorCodes('&', String.valueOf(task.getConfigValue("npc-name")))).equals(ChatColor - .stripColor(ChatColor.translateAlternateColorCodes('&', event.getNPC().getName())))) { + if (!Chat.strip(Chat.color(String.valueOf(task.getConfigValue("npc-name")))) + .equals(Chat.strip(Chat.color(event.getNPC().getName())))) { return; } TaskProgress taskProgress = questProgress.getTaskProgress(task.getId()); diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Messages.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Messages.java index be99920e..be7a727b 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Messages.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Messages.java @@ -1,7 +1,7 @@ package com.leonardobishop.quests.bukkit.util; import com.leonardobishop.quests.bukkit.BukkitQuestsPlugin; -import org.bukkit.ChatColor; +import com.leonardobishop.quests.bukkit.util.chat.Chat; //TODO refactor this public enum Messages { @@ -75,7 +75,7 @@ public enum Messages { if (plugin.getConfig().contains(path)) { String message = plugin.getQuestsConfig().getString(path); if (message != null) { - return ChatColor.translateAlternateColorCodes('&', message); + return Chat.color(message); } } return path; diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Chat.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java index 36fe0d2d..a2125a74 100644 --- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Chat.java +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java @@ -1,6 +1,7 @@ -package com.leonardobishop.quests.bukkit.util; +package com.leonardobishop.quests.bukkit.util.chat; import com.leonardobishop.quests.common.config.ConfigProblem; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; import java.util.ArrayList; @@ -8,8 +9,21 @@ import java.util.List; public class Chat { + private static final ColorAdapter colorAdapter; + + static { + String version = Bukkit.getServer().getClass().getPackage().getName().replace(".", ",").split(",")[3];; + if (version.startsWith("v1_7") || version.startsWith("v1_8") || version.startsWith("v1_9") + || version.startsWith("v1_10") || version.startsWith("v1_11") || version.startsWith("v1_12") + || version.startsWith("v1_13") || version.startsWith("v1_14") || version.startsWith("v1_15")) { + colorAdapter = new CodedColorAdapter(); + } else { + colorAdapter = new HexColorAdapter(); + } + } + public static String color(String s) { - return ChatColor.translateAlternateColorCodes('&', s); + return colorAdapter.color(s); } public static List<String> color(List<String> s) { @@ -17,13 +31,13 @@ public class Chat { List<String> colored = new ArrayList<>(); for (String line : s) { - colored.add(ChatColor.translateAlternateColorCodes('&', line)); + colored.add(colorAdapter.color(line)); } return colored; } public static String strip(String s) { - return ChatColor.stripColor(s); + return colorAdapter.strip(s); } public static ChatColor matchConfigProblemToColor(ConfigProblem.ConfigProblemType configProblem) { diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java new file mode 100644 index 00000000..f71ffaa1 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java @@ -0,0 +1,17 @@ +package com.leonardobishop.quests.bukkit.util.chat; + +import org.bukkit.ChatColor; + +public class CodedColorAdapter implements ColorAdapter { + + @Override + public String color(String s) { + return ChatColor.translateAlternateColorCodes('&', s); + } + + @Override + public String strip(String s) { + return ChatColor.stripColor(s); + } + +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java new file mode 100644 index 00000000..5d0ff6bc --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java @@ -0,0 +1,9 @@ +package com.leonardobishop.quests.bukkit.util.chat; + +public interface ColorAdapter { + + String color(String s); + + String strip(String s); + +} diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java new file mode 100644 index 00000000..d506b466 --- /dev/null +++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java @@ -0,0 +1,35 @@ +package com.leonardobishop.quests.bukkit.util.chat; + +import net.md_5.bungee.api.ChatColor; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class HexColorAdapter implements ColorAdapter { + + private static final Pattern HEX_PATTERN = Pattern.compile("&#([A-Fa-f0-9]{6})"); + + @Override + public String color(String s) { + Matcher matcher = HEX_PATTERN.matcher(s); + while (matcher.find()) { + final ChatColor hexColor; + try { + hexColor = ChatColor.of(matcher.group().substring(1)); + } catch (IllegalArgumentException ex) { + continue; + } + final String before = s.substring(0, matcher.start()); + final String after = s.substring(matcher.end()); + s = before + hexColor + after; + matcher = HEX_PATTERN.matcher(s); + } + return ChatColor.translateAlternateColorCodes('&', s); + } + + @Override + public String strip(String s) { + return ChatColor.stripColor(s); + } + +} |
