From 237aa67b16689a9f9b2e74271c4d10091cfc1074 Mon Sep 17 00:00:00 2001 From: mezz Date: Thu, 10 Nov 2016 00:19:33 -0800 Subject: [PATCH] Improve mod name tooltip config and allow disabling --- src/main/java/mezz/jei/config/Config.java | 38 ++++++++++++++++--- .../jei/config/LocalizedConfiguration.java | 3 +- src/main/java/mezz/jei/util/ModIdUtil.java | 8 +++- src/main/resources/assets/jei/lang/en_US.lang | 2 +- 4 files changed, 42 insertions(+), 9 deletions(-) diff --git a/src/main/java/mezz/jei/config/Config.java b/src/main/java/mezz/jei/config/Config.java index 1d3601155..f2b1c0d8d 100644 --- a/src/main/java/mezz/jei/config/Config.java +++ b/src/main/java/mezz/jei/config/Config.java @@ -4,7 +4,9 @@ import java.awt.Color; import java.io.File; import java.util.Collections; +import java.util.EnumSet; import java.util.HashSet; +import java.util.Locale; import java.util.Set; import com.google.common.collect.ImmutableMap; @@ -16,12 +18,12 @@ import mezz.jei.util.Translator; import mezz.jei.util.color.ColorGetter; import mezz.jei.util.color.ColorNamer; +import net.minecraft.util.text.TextFormatting; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.config.ConfigCategory; import net.minecraftforge.common.config.Configuration; import net.minecraftforge.common.config.Property; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; -import org.apache.commons.lang3.StringEscapeUtils; public class Config { private static final String configKeyPrefix = "config.jei"; @@ -43,7 +45,8 @@ public class Config { private static boolean debugModeEnabled = false; private static boolean colorSearchEnabled = false; private static boolean centerSearchBarEnabled = false; - private static String modNameFormat = "\u00A79\u00A7o%s"; + private static final String defaultModNameFormatFriendly = "blue italic"; + private static String modNameFormat = parseFriendlyModNameFormat(defaultModNameFormatFriendly); // search private static boolean prefixRequiredForModNameSearch = true; @@ -314,9 +317,17 @@ private static boolean syncConfig() { } centerSearchBarEnabled = config.getBoolean(CATEGORY_ADVANCED, "centerSearchBarEnabled", centerSearchBarEnabled); - modNameFormat = StringEscapeUtils.unescapeJava(config.getString("modNameFormat", CATEGORY_ADVANCED, StringEscapeUtils.escapeJava(modNameFormat))); - if (!modNameFormat.contains("%s")) - modNameFormat = "\u00A79\u00A7o%s"; + + EnumSet validFormatting = EnumSet.allOf(TextFormatting.class); + validFormatting.remove(TextFormatting.RESET); + String[] validValues = new String[validFormatting.size()]; + int i = 0; + for (TextFormatting formatting : validFormatting) { + validValues[i] = formatting.getFriendlyName().toLowerCase(Locale.ENGLISH); + i++; + } + String modNameFormatFriendly = config.getString("modNameFormat", CATEGORY_ADVANCED, defaultModNameFormatFriendly, validValues); + modNameFormat = parseFriendlyModNameFormat(modNameFormatFriendly); debugModeEnabled = config.getBoolean(CATEGORY_ADVANCED, "debugModeEnabled", debugModeEnabled); { @@ -340,6 +351,23 @@ private static boolean syncConfig() { return needsReload; } + private static String parseFriendlyModNameFormat(String formatWithEnumNames) { + String format = ""; + if (formatWithEnumNames.isEmpty()) { + return format; + } + String[] strings = formatWithEnumNames.split(" "); + for (String string : strings) { + TextFormatting valueByName = TextFormatting.getValueByName(string); + if (valueByName != null) { + format += valueByName.toString(); + } else { + Log.error("Invalid format: {}", string); + } + } + return format; + } + private static boolean syncItemBlacklistConfig() { if (itemBlacklistConfig == null) { return false; diff --git a/src/main/java/mezz/jei/config/LocalizedConfiguration.java b/src/main/java/mezz/jei/config/LocalizedConfiguration.java index 7ef75d87f..3f3c6feb2 100644 --- a/src/main/java/mezz/jei/config/LocalizedConfiguration.java +++ b/src/main/java/mezz/jei/config/LocalizedConfiguration.java @@ -48,9 +48,8 @@ public String getString(String name, String category, String defaultValue, Strin String comment = Translator.translateToLocal(commentKey); Property prop = get(category, name, defaultValue); - prop.setValidValues(validValues); prop.setLanguageKey(langKey); - prop.setComment(comment + " [" + defaultLocalized + ": " + defaultValue + "] [" + validLocalized + ": " + Arrays.toString(prop.getValidValues()) + ']'); + prop.setComment(comment + " [" + defaultLocalized + ": " + defaultValue + "] [" + validLocalized + ": " + Arrays.toString(validValues) + ']'); return prop.getString(); } diff --git a/src/main/java/mezz/jei/util/ModIdUtil.java b/src/main/java/mezz/jei/util/ModIdUtil.java index ae35b821b..ebca2b5bf 100644 --- a/src/main/java/mezz/jei/util/ModIdUtil.java +++ b/src/main/java/mezz/jei/util/ModIdUtil.java @@ -56,6 +56,11 @@ public String getModNameForIngredient(T ingredient, IIngredientHelper ing } public List addModNameToIngredientTooltip(List tooltip, T ingredient, IIngredientHelper ingredientHelper) { + String modNameFormat = Config.getModNameFormat(); + if (modNameFormat.isEmpty()) { + return tooltip; + } + String modName = getModNameForIngredient(ingredient, ingredientHelper); if (tooltip.size() > 1) { String lastTooltipLine = tooltip.get(tooltip.size() - 1); @@ -64,8 +69,9 @@ public List addModNameToIngredientTooltip(List tooltip, T in return tooltip; } } + List tooltipCopy = new ArrayList(tooltip); - tooltipCopy.add(String.format(Config.getModNameFormat(), modName)); + tooltipCopy.add(modNameFormat + modName); return tooltipCopy; } } diff --git a/src/main/resources/assets/jei/lang/en_US.lang b/src/main/resources/assets/jei/lang/en_US.lang index 3b05f124e..00d36e293 100644 --- a/src/main/resources/assets/jei/lang/en_US.lang +++ b/src/main/resources/assets/jei/lang/en_US.lang @@ -76,7 +76,7 @@ config.jei.advanced.debugModeEnabled.comment=Only useful for JEI developers, add config.jei.advanced.centerSearchBarEnabled=Center Search Bar config.jei.advanced.centerSearchBarEnabled.comment=Move the JEI search bar to the bottom center of the screen. config.jei.advanced.modNameFormat=Mod Name Format -config.jei.advanced.modNameFormat.comment=How the mod name should be formatted in the tooltip. +config.jei.advanced.modNameFormat.comment=How the mod name should be formatted in the tooltip for JEI guis. Leave blank to disable. # Edit Mode gui.jei.editMode.description=JEI Item List Edit Mode: