diff options
Diffstat (limited to 'src/main/java/io')
-rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DungeonNpcProfitOverlay.java | 6 | ||||
-rw-r--r-- | src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java | 16 |
2 files changed, 19 insertions, 3 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DungeonNpcProfitOverlay.java b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DungeonNpcProfitOverlay.java index 96e0765d..8bd5e84d 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DungeonNpcProfitOverlay.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/miscfeatures/DungeonNpcProfitOverlay.java @@ -361,8 +361,10 @@ public class DungeonNpcProfitOverlay { return new SkyblockItem(internalName, amount); } else { // Remove Book (from hot potato book), as a perf optimization since "book" is a very common phrase - String id = ItemResolutionQuery.findInternalNameByDisplayName( - line.trim().replace("Book", ""), true); + String trimmedLine = line.trim(); + String id = + ItemResolutionQuery.filterInternalNameCandidates(ItemResolutionQuery.findInternalNameCandidatesForDisplayName( + trimmedLine.replace("Book", "")), trimmedLine, true); if (id == null) return null; return new SkyblockItem(id, 1); } 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 5dacf7ef..cf508a33 100644 --- a/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java +++ b/src/main/java/io/github/moulberry/notenoughupdates/util/ItemResolutionQuery.java @@ -37,6 +37,7 @@ import net.minecraft.nbt.NBTTagCompound; import javax.annotation.Nullable; import java.util.Arrays; +import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Locale; @@ -202,10 +203,23 @@ public class ItemResolutionQuery { */ public static String findInternalNameByDisplayName(String displayName, boolean mayBeMangled) { var cleanDisplayName = StringUtils.cleanColour(displayName); + return filterInternalNameCandidates( + findInternalNameCandidatesForDisplayName(cleanDisplayName), + displayName, + mayBeMangled + ); + } + + public static String filterInternalNameCandidates( + Collection<String> candidateInternalNames, + String displayName, + boolean mayBeMangled + ) { + var cleanDisplayName = StringUtils.cleanColour(displayName); var manager = NotEnoughUpdates.INSTANCE.manager; String bestMatch = null; int bestMatchLength = -1; - for (String internalName : findInternalNameCandidatesForDisplayName(cleanDisplayName)) { + for (String internalName : candidateInternalNames) { var cleanItemDisplayName = StringUtils.cleanColour(manager.getDisplayName(internalName)); if (cleanItemDisplayName.length() == 0) continue; if (mayBeMangled |