Added support for RGB color codes

This commit is contained in:
Auxilor
2020-11-06 10:07:06 +00:00
parent 63c258984a
commit 97f7fe8198
6 changed files with 38 additions and 13 deletions

View File

@@ -7,6 +7,7 @@ import com.willfp.ecoenchants.config.ConfigManager;
import com.willfp.ecoenchants.display.EnchantmentCache;
import com.willfp.ecoenchants.enchantments.EcoEnchant;
import com.willfp.ecoenchants.enchantments.EcoEnchants;
import com.willfp.ecoenchants.util.StringUtils;
import org.apache.commons.lang.WordUtils;
import org.bukkit.ChatColor;
import org.bukkit.Material;
@@ -77,7 +78,7 @@ public final class CommandEnchantinfo extends AbstractCommand {
if(allConflicts.length() >= 2) {
allConflicts = allConflicts.substring(0, allConflicts.length() -2);
} else {
allConflicts = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("no-conflicts"));
allConflicts = StringUtils.translate(ConfigManager.getLang().getString("no-conflicts"));
}
Set<Material> targets = enchantment.getTarget();
@@ -110,7 +111,7 @@ public final class CommandEnchantinfo extends AbstractCommand {
if(allTargets.length() >= 2) {
allTargets = allTargets.substring(0, allTargets.length() - 2);
} else {
allTargets = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("no-targets"));
allTargets = StringUtils.translate(ConfigManager.getLang().getString("no-targets"));
}
String maxLevel = String.valueOf(enchantment.getMaxLevel());

View File

@@ -7,6 +7,7 @@ import com.willfp.ecoenchants.enchantments.EcoEnchant;
import com.willfp.ecoenchants.enchantments.EcoEnchants;
import com.willfp.ecoenchants.enchantments.meta.EnchantmentTarget;
import com.willfp.ecoenchants.util.NumberUtils;
import com.willfp.ecoenchants.util.StringUtils;
import org.bukkit.ChatColor;
import org.bukkit.NamespacedKey;
import org.bukkit.enchantments.Enchantment;
@@ -73,11 +74,11 @@ public final class EnchantDisplay {
* Update config values
*/
public static void update() {
descriptionColor = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("description-color"));
curseColor = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("curse-color"));
specialColor = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("special-color"));
artifactColor = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("artifact-color"));
normalColor = ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("not-curse-color"));
descriptionColor = StringUtils.translate(ConfigManager.getLang().getString("description-color"));
curseColor = StringUtils.translate(ConfigManager.getLang().getString("curse-color"));
specialColor = StringUtils.translate(ConfigManager.getLang().getString("special-color"));
artifactColor = StringUtils.translate(ConfigManager.getLang().getString("artifact-color"));
normalColor = StringUtils.translate(ConfigManager.getLang().getString("not-curse-color"));
useNumerals = ConfigManager.getConfig().getBool("lore.use-numerals");
numbersThreshold = ConfigManager.getConfig().getInt("lore.use-numbers-above-threshold");

View File

@@ -5,6 +5,7 @@ import com.willfp.ecoenchants.config.ConfigManager;
import com.willfp.ecoenchants.config.configs.EnchantmentConfig;
import com.willfp.ecoenchants.enchantments.meta.EnchantmentRarity;
import com.willfp.ecoenchants.enchantments.util.Watcher;
import com.willfp.ecoenchants.util.StringUtils;
import com.willfp.ecoenchants.util.interfaces.Registerable;
import com.willfp.ecoenchants.util.optional.Prerequisite;
import net.md_5.bungee.api.ChatColor;
@@ -82,8 +83,8 @@ public abstract class EcoEnchant extends Enchantment implements Listener, Regist
canGetFromVillager = config.getBool(EcoEnchants.OBTAINING_LOCATION + "villager");
canGetFromLoot = config.getBool(EcoEnchants.OBTAINING_LOCATION + "loot");
maxLvl = config.getInt(EcoEnchants.GENERAL_LOCATION + "maximum-level", 1);
name = ChatColor.translateAlternateColorCodes('&', config.getString("name"));
description = ChatColor.translateAlternateColorCodes('&', config.getString("description"));
name = StringUtils.translate(config.getString("name"));
description = StringUtils.translate(config.getString("description"));
target.clear();
targetMaterials.clear();
target.addAll(config.getTargets());

View File

@@ -1,6 +1,7 @@
package com.willfp.ecoenchants.enchantments.meta;
import com.willfp.ecoenchants.config.ConfigManager;
import com.willfp.ecoenchants.util.StringUtils;
import com.willfp.ecoenchants.util.interfaces.Registerable;
import org.bukkit.ChatColor;
@@ -128,7 +129,7 @@ public class EnchantmentRarity implements Registerable {
double lootProbability = ConfigManager.getRarity().getDouble("rarities." + rarity + ".loot-probability");
String customColor = null;
if(ConfigManager.getRarity().getBool("rarities." + rarity + ".custom-color.enabled")) {
customColor = ChatColor.translateAlternateColorCodes('&', ConfigManager.getRarity().getString("rarities." + rarity + ".custom-color.color"));
customColor = StringUtils.translate(ConfigManager.getRarity().getString("rarities." + rarity + ".custom-color.color"));
}
new EnchantmentRarity(name, probability, minimumLevel, villagerProbability, lootProbability, customColor).register();

View File

@@ -44,6 +44,7 @@ import com.willfp.ecoenchants.nms.Cooldown;
import com.willfp.ecoenchants.nms.RepairCost;
import com.willfp.ecoenchants.nms.TridentStack;
import com.willfp.ecoenchants.util.Logger;
import com.willfp.ecoenchants.util.StringUtils;
import com.willfp.ecoenchants.util.UpdateChecker;
import com.willfp.ecoenchants.util.interfaces.EcoRunnable;
import com.willfp.ecoenchants.util.optional.Prerequisite;
@@ -213,9 +214,9 @@ public class Loader {
Logger.info(EcoEnchants.getAll().size() + " Enchantments Loaded:");
EcoEnchants.getAll().forEach((ecoEnchant -> {
if(ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.SPECIAL)) {
Logger.info(ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("special-color")) + "- " + ecoEnchant.getName() + ": " + ecoEnchant.getKey().toString());
Logger.info(StringUtils.translate(ConfigManager.getLang().getString("special-color")) + "- " + ecoEnchant.getName() + ": " + ecoEnchant.getKey().toString());
} else if(ecoEnchant.getType().equals(EcoEnchant.EnchantmentType.ARTIFACT)) {
Logger.info(ChatColor.translateAlternateColorCodes('&', ConfigManager.getLang().getString("artifact-color")) + "- " + ecoEnchant.getName() + ": " + ecoEnchant.getKey().toString());
Logger.info(StringUtils.translate(ConfigManager.getLang().getString("artifact-color")) + "- " + ecoEnchant.getName() + ": " + ecoEnchant.getKey().toString());
} else {
Logger.info("- " + ecoEnchant.getName() + ": " + ecoEnchant.getKey().toString());
}

View File

@@ -2,8 +2,28 @@ package com.willfp.ecoenchants.util;
import net.md_5.bungee.api.ChatColor;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import static net.md_5.bungee.api.ChatColor.COLOR_CHAR;
public class StringUtils {
public static String translate(String message){
return ChatColor.translateAlternateColorCodes('&', message);
return ChatColor.translateAlternateColorCodes('&', translateHexColorCodes("&#", "", message));
}
private static String translateHexColorCodes(String startTag, String endTag, String message) {
Pattern hexPattern = Pattern.compile(startTag + "([A-Fa-f0-9]{6})" + endTag);
Matcher matcher = hexPattern.matcher(message);
StringBuffer buffer = new StringBuffer(message.length() + 4 * 8);
while(matcher.find()) {
String group = matcher.group(1);
matcher.appendReplacement(buffer, COLOR_CHAR + "x"
+ COLOR_CHAR + group.charAt(0) + COLOR_CHAR + group.charAt(1)
+ COLOR_CHAR + group.charAt(2) + COLOR_CHAR + group.charAt(3)
+ COLOR_CHAR + group.charAt(4) + COLOR_CHAR + group.charAt(5));
}
return matcher.appendTail(buffer).toString();
}
}