Skip to content

Commit

Permalink
Improve mod name tooltip config and allow disabling
Browse files Browse the repository at this point in the history
  • Loading branch information
mezz committed Nov 10, 2016
1 parent 2531c35 commit 237aa67
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 9 deletions.
38 changes: 33 additions & 5 deletions src/main/java/mezz/jei/config/Config.java
Expand Up @@ -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;
Expand All @@ -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";
Expand All @@ -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;
Expand Down Expand Up @@ -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<TextFormatting> 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);
{
Expand All @@ -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;
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/mezz/jei/config/LocalizedConfiguration.java
Expand Up @@ -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();
}

Expand Down
8 changes: 7 additions & 1 deletion src/main/java/mezz/jei/util/ModIdUtil.java
Expand Up @@ -56,6 +56,11 @@ public <T> String getModNameForIngredient(T ingredient, IIngredientHelper<T> ing
}

public <T> List<String> addModNameToIngredientTooltip(List<String> tooltip, T ingredient, IIngredientHelper<T> 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);
Expand All @@ -64,8 +69,9 @@ public <T> List<String> addModNameToIngredientTooltip(List<String> tooltip, T in
return tooltip;
}
}

List<String> tooltipCopy = new ArrayList<String>(tooltip);
tooltipCopy.add(String.format(Config.getModNameFormat(), modName));
tooltipCopy.add(modNameFormat + modName);
return tooltipCopy;
}
}
2 changes: 1 addition & 1 deletion src/main/resources/assets/jei/lang/en_US.lang
Expand Up @@ -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:
Expand Down

0 comments on commit 237aa67

Please sign in to comment.