aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/command/QuestsCommand.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/config/BukkitQuestsLoader.java14
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetterLatest.java13
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_1_13.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/itemgetter/ItemGetter_Late_1_8.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/papi/QuestsPlaceholders.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CancelQMenu.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/CategoryQMenu.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/QuestQMenu.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/StartedQMenu.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/element/QuestMenuElement.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/menu/itemstack/QItemStack.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/questcontroller/NormalQuestController.java9
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/MobkillingCertainTaskType.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensDeliverTaskType.java6
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/tasktype/type/dependent/CitizensInteractTaskType.java6
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Messages.java4
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/Chat.java (renamed from bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/Chat.java)22
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/CodedColorAdapter.java17
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/ColorAdapter.java9
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/util/chat/HexColorAdapter.java35
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);
+ }
+
+}