aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java
index cfeecf66..33ed176e 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java
@@ -46,7 +46,7 @@ import java.util.regex.Pattern;
public class ItemResolutionQuery {
- private static final Pattern ENCHANTED_BOOK_NAME_PATTERN = Pattern.compile("^((?:§.)+)([^§]+) ([IVXL]+)$");
+ private static final Pattern ENCHANTED_BOOK_NAME_PATTERN = Pattern.compile("^((?:§.)*)([^§]+) ([IVXL]+)$");
private static final String EXTRA_ATTRIBUTES = "ExtraAttributes";
private static final List<String> PET_RARITIES = Arrays.asList(
"COMMON",
@@ -203,9 +203,7 @@ public class ItemResolutionQuery {
String bestMatch = null;
int bestMatchLength = -1;
for (String internalName : findInternalNameCandidatesForDisplayName(cleanDisplayName)) {
- var item = manager.createItem(internalName);
- if (item.getDisplayName() == null) continue;
- var cleanItemDisplayName = StringUtils.cleanColour(item.getDisplayName());
+ var cleanItemDisplayName = StringUtils.cleanColour(manager.getDisplayName(internalName));
if (cleanItemDisplayName.length() == 0) continue;
if (mayBeMangled
? !cleanDisplayName.contains(cleanItemDisplayName)
@@ -234,6 +232,7 @@ public class ItemResolutionQuery {
var titleWordMap = NotEnoughUpdates.INSTANCE.manager.titleWordMap;
var candidates = new HashSet<String>();
for (var partialDisplayName : cleanDisplayName.split(" ")) {
+ if ("".equals(partialDisplayName)) continue;
if (!titleWordMap.containsKey(partialDisplayName)) continue;
candidates.addAll(titleWordMap.get(partialDisplayName).keySet());
}
@@ -253,7 +252,7 @@ public class ItemResolutionQuery {
return null;
}
- private String resolveEnchantmentByName(String name) {
+ public static String resolveEnchantmentByName(String name) {
Matcher matcher = ENCHANTED_BOOK_NAME_PATTERN.matcher(name);
if (!matcher.matches()) return null;
String format = matcher.group(1).toLowerCase(Locale.ROOT);
@@ -261,12 +260,12 @@ public class ItemResolutionQuery {
String romanLevel = matcher.group(3);
boolean ultimate = (format.contains("§l"));
- return ((ultimate && !name.equals("Ultimate Wise")) ? "ULTIMATE_" : "")
+ return ((ultimate && !enchantmentName.equals("Ultimate Wise")) ? "ULTIMATE_" : "")
+ turboCheck(enchantmentName).replace(" ", "_").replace("-", "_").toUpperCase(Locale.ROOT)
+ ";" + Utils.parseRomanNumeral(romanLevel);
}
- private String turboCheck(String text) {
+ private static String turboCheck(String text) {
if (text.equals("Turbo-Cocoa")) return "Turbo-Coco";
if (text.equals("Turbo-Cacti")) return "Turbo-Cactus";