aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt2
-rw-r--r--src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt12
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt18
-rw-r--r--src/main/java/at/hannibal2/skyhanni/utils/UtilsPatterns.kt4
4 files changed, 21 insertions, 15 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
index 90c4a03ae..eb269da5b 100644
--- a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
+++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.kt
@@ -350,6 +350,7 @@ import at.hannibal2.skyhanni.utils.EntityOutlineRenderer
import at.hannibal2.skyhanni.utils.KeyboardManager
import at.hannibal2.skyhanni.utils.LorenzUtils
import at.hannibal2.skyhanni.utils.MinecraftConsoleFilter.Companion.initLogging
+import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.NEUVersionCheck.checkIfNeuIsLoaded
import at.hannibal2.skyhanni.utils.TabListData
import at.hannibal2.skyhanni.utils.UtilsPatterns
@@ -455,6 +456,7 @@ class SkyHanniMod {
loadModule(FishingAPI)
loadModule(FishingDetection)
loadModule(LorenzUtils)
+ loadModule(NEUItems)
// features
loadModule(BazaarOrderHelper())
diff --git a/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt b/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt
index 2419d6161..e70a572df 100644
--- a/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt
+++ b/src/main/java/at/hannibal2/skyhanni/test/HighlightMissingRepoItems.kt
@@ -3,14 +3,11 @@ package at.hannibal2.skyhanni.test
import at.hannibal2.skyhanni.SkyHanniMod
import at.hannibal2.skyhanni.config.ConfigUpdaterMigrator
import at.hannibal2.skyhanni.events.GuiContainerEvent
-import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.utils.ItemUtils.getInternalNameOrNull
import at.hannibal2.skyhanni.utils.LorenzColor
import at.hannibal2.skyhanni.utils.LorenzUtils
-import at.hannibal2.skyhanni.utils.MultiFilter
import at.hannibal2.skyhanni.utils.NEUItems
import at.hannibal2.skyhanni.utils.RenderUtils.highlight
-import at.hannibal2.skyhanni.data.jsonobjects.repo.MultiFilterJson
import net.minecraft.client.Minecraft
import net.minecraft.client.gui.inventory.GuiChest
import net.minecraft.client.gui.inventory.GuiInventory
@@ -19,7 +16,6 @@ import net.minecraftforge.fml.common.eventhandler.EventPriority
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
class HighlightMissingRepoItems {
- private val ignoreItems = MultiFilter()
@SubscribeEvent(priority = EventPriority.LOWEST)
fun onBackgroundDrawn(event: GuiContainerEvent.BackgroundDrawnEvent) {
@@ -41,7 +37,7 @@ class HighlightMissingRepoItems {
for (slot in slots) {
val internalName = slot.stack?.getInternalNameOrNull() ?: continue
if (NEUItems.allInternalNames.contains(internalName)) continue
- if (ignoreItems.match(internalName.asString())) continue
+ if (NEUItems.ignoreItemsFilter.match(internalName.asString())) continue
slot highlight LorenzColor.RED
}
@@ -53,12 +49,6 @@ class HighlightMissingRepoItems {
}
@SubscribeEvent
- fun onRepoReload(event: RepositoryReloadEvent) {
- val ignoredItems = event.getConstant<MultiFilterJson>("IgnoredItems")
- ignoreItems.load(ignoredItems)
- }
-
- @SubscribeEvent
fun onConfigFix(event: ConfigUpdaterMigrator.ConfigFixEvent) {
event.move(3, "dev.highlightMissingRepo", "dev.debug.highlightMissingRepo")
}
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt
index 8a909f15e..cd1838bdc 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/NEUItems.kt
@@ -1,6 +1,8 @@
package at.hannibal2.skyhanni.utils
import at.hannibal2.skyhanni.config.ConfigManager
+import at.hannibal2.skyhanni.data.jsonobjects.repo.MultiFilterJson
+import at.hannibal2.skyhanni.events.RepositoryReloadEvent
import at.hannibal2.skyhanni.features.bazaar.BazaarDataHolder
import at.hannibal2.skyhanni.test.command.ErrorManager
import at.hannibal2.skyhanni.utils.ItemBlink.checkBlinkItem
@@ -29,8 +31,8 @@ import net.minecraft.init.Blocks
import net.minecraft.init.Items
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NBTTagCompound
+import net.minecraftforge.fml.common.eventhandler.SubscribeEvent
import org.lwjgl.opengl.GL11
-import java.util.regex.Pattern
object NEUItems {
val manager: NEUManager get() = NotEnoughUpdates.INSTANCE.manager
@@ -38,9 +40,10 @@ object NEUItems {
private val multiplierCache = mutableMapOf<NEUInternalName, Pair<NEUInternalName, Int>>()
private val recipesCache = mutableMapOf<NEUInternalName, Set<NeuRecipe>>()
private val ingredientsCache = mutableMapOf<NeuRecipe, Set<Ingredient>>()
- private val enchantmentNamePattern = Pattern.compile("^(?<format>(?:§.)+)(?<name>[^§]+) (?<level>[IVXL]+)$")
+
var allItemsCache = mapOf<String, NEUInternalName>() // item name -> internal name
var allInternalNames = mutableListOf<NEUInternalName>()
+ val ignoreItemsFilter = MultiFilter()
private val fallbackItem by lazy {
Utils.createItemStack(
@@ -50,6 +53,12 @@ object NEUItems {
)
}
+ @SubscribeEvent
+ fun onRepoReload(event: RepositoryReloadEvent) {
+ val ignoredItems = event.getConstant<MultiFilterJson>("IgnoredItems")
+ ignoreItemsFilter.load(ignoredItems)
+ }
+
// TODO remove
@Deprecated("Use NEUInternalName rather than String", ReplaceWith("getInternalNameFromItemName()"))
fun getRawInternalName(itemName: String): String {
@@ -190,7 +199,8 @@ object NEUItems {
fun NEUInternalName.getItemStack(): ItemStack =
getItemStackOrNull() ?: run {
- if (getPriceOrNull() == null) return@run fallbackItem
+ getPriceOrNull() ?: return@run fallbackItem
+ if (ignoreItemsFilter.match(this.asString())) return@run fallbackItem
ErrorManager.logError(
IllegalStateException("Something went wrong!"),
"Encountered an error getting the item for §7$this§c. " +
@@ -348,7 +358,7 @@ object NEUItems {
// Taken and edited from NEU
private fun resolveEnchantmentByName(enchantmentName: String) =
- enchantmentNamePattern.matchMatcher(enchantmentName) {
+ UtilsPatterns.enchantmentNamePattern.matchMatcher(enchantmentName) {
val name = group("name").trim { it <= ' ' }
val ultimate = group("format").lowercase().contains("§l")
((if (ultimate && name != "Ultimate Wise") "ULTIMATE_" else "")
diff --git a/src/main/java/at/hannibal2/skyhanni/utils/UtilsPatterns.kt b/src/main/java/at/hannibal2/skyhanni/utils/UtilsPatterns.kt
index b391c07ac..b381ddf1c 100644
--- a/src/main/java/at/hannibal2/skyhanni/utils/UtilsPatterns.kt
+++ b/src/main/java/at/hannibal2/skyhanni/utils/UtilsPatterns.kt
@@ -30,6 +30,10 @@ object UtilsPatterns {
"item.name.enchanted.book",
".{2}?Enchanted Book"
)
+ val enchantmentNamePattern by patternGroup.pattern(
+ "item.neuitems.enchantmentname",
+ "^(?<format>(?:§.)+)(?<name>[^§]+) (?<level>[IVXL]+)$"
+ )
val potionPattern by patternGroup.pattern(
"item.name.potion",