diff options
author | Thunderblade73 <85900443+Thunderblade73@users.noreply.github.com> | 2024-08-23 11:12:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-08-23 11:12:56 +0200 |
commit | 67060aeab991ebb18c3bba19adfa66c09e1acdcd (patch) | |
tree | 72a91bbd4c19a5c793fb6826f432dd04ed5f6ffc | |
parent | c4e2893426a3e4ebe94d26199d1e23935fed9d73 (diff) | |
download | skyhanni-67060aeab991ebb18c3bba19adfa66c09e1acdcd.tar.gz skyhanni-67060aeab991ebb18c3bba19adfa66c09e1acdcd.tar.bz2 skyhanni-67060aeab991ebb18c3bba19adfa66c09e1acdcd.zip |
Fix: ItemCategory error spam (#2392)
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/test/command/ErrorManager.kt | 16 | ||||
-rw-r--r-- | src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt | 17 |
2 files changed, 26 insertions, 7 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/test/command/ErrorManager.kt b/src/main/java/at/hannibal2/skyhanni/test/command/ErrorManager.kt index fbb163caa..df3d85267 100644 --- a/src/main/java/at/hannibal2/skyhanni/test/command/ErrorManager.kt +++ b/src/main/java/at/hannibal2/skyhanni/test/command/ErrorManager.kt @@ -74,10 +74,12 @@ object ErrorManager { errorMessages[errorId] } val name = if (fullErrorMessage) "Full error" else "Error" - ChatUtils.chat(errorMessage?.let { - OSUtils.copyToClipboard(it) - "$name copied into the clipboard, please report it on the SkyHanni discord!" - } ?: "Error id not found!") + ChatUtils.chat( + errorMessage?.let { + OSUtils.copyToClipboard(it) + "$name copied into the clipboard, please report it on the SkyHanni discord!" + } ?: "Error id not found!", + ) } fun logErrorStateWithData( @@ -87,6 +89,7 @@ object ErrorManager { ignoreErrorCache: Boolean = false, noStackTrace: Boolean = false, betaOnly: Boolean = false, + condition: () -> Boolean = { true }, ) { logError( IllegalStateException(internalMessage), @@ -95,6 +98,7 @@ object ErrorManager { noStackTrace, *extraData, betaOnly = betaOnly, + condition = condition, ) } @@ -116,6 +120,7 @@ object ErrorManager { noStackTrace: Boolean, vararg extraData: Pair<String, Any?>, betaOnly: Boolean = false, + condition: () -> Boolean = { true }, ) { if (betaOnly && !LorenzUtils.isBetaVersion()) return if (!ignoreErrorCache) { @@ -125,6 +130,7 @@ object ErrorManager { if (pair in cache) return cache.add(pair) } + if (!condition()) return Error(message, throwable).printStackTrace() Minecraft.getMinecraft().thePlayer ?: return @@ -152,7 +158,7 @@ object ErrorManager { "§c[SkyHanni-${SkyHanniMod.version}]: $message§c. Click here to copy the error into the clipboard.", onClick = { copyError(randomId) }, "§eClick to copy!", - prefix = false + prefix = false, ) } diff --git a/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt index 09f77ebce..8b6203aaa 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/ItemUtils.kt @@ -18,6 +18,7 @@ import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.getEnchantments import at.hannibal2.skyhanni.utils.SkyBlockItemModifierUtils.isRecombobulated import at.hannibal2.skyhanni.utils.StringUtils.removeColor import at.hannibal2.skyhanni.utils.StringUtils.removeResets +import at.hannibal2.skyhanni.utils.repopatterns.RepoPattern import com.google.common.collect.Lists import io.github.moulberry.notenoughupdates.recipes.NeuRecipe import io.github.moulberry.notenoughupdates.util.NotificationHandler @@ -179,6 +180,15 @@ object ItemUtils { fun ItemStack.getItemRarityOrCommon() = getItemRarityOrNull() ?: LorenzRarity.COMMON + private val itemCategoryRepoCheckPattern by RepoPattern.pattern( + "itemcategory.repocheck", + ItemCategory.entries.joinToString(separator = "|") { it.name }, + ) + private val rarityCategoryRepoCheckPattern by RepoPattern.pattern( + "rarity.repocheck", + LorenzRarity.entries.joinToString(separator = "|") { it.name }, + ) + private fun ItemStack.readItemCategoryAndRarity(): Pair<LorenzRarity?, ItemCategory?> { val cleanName = this.cleanName() @@ -204,6 +214,8 @@ object ItemUtils { "inventory name" to InventoryUtils.openInventoryName(), "pattern result" to category, "lore" to getLore(), + betaOnly = true, + condition = { !itemCategoryRepoCheckPattern.matches(category) }, ) } if (itemRarity == null) { @@ -213,7 +225,10 @@ object ItemUtils { "internal name" to getInternalName(), "item name" to name, "inventory name" to InventoryUtils.openInventoryName(), + "pattern result" to rarity, "lore" to getLore(), + betaOnly = true, + condition = { !rarityCategoryRepoCheckPattern.matches(rarity) }, ) } @@ -352,14 +367,12 @@ object ItemUtils { return getInternalName().itemName } - fun ItemStack.getAttributeFromShard(): Pair<String, Int>? { if (getInternalName().asString() != "ATTRIBUTE_SHARD") return null val attributes = getAttributes() ?: return null return attributes.firstOrNull() } - val ItemStack.itemNameWithoutColor: String get() = itemName.removeColor() // use when showing the item name to the user (in guis, chat message, etc.), not for comparing |