From f542e8639ce2ae7b69595393c0552b8223765990 Mon Sep 17 00:00:00 2001 From: mezz Date: Tue, 5 Jul 2016 18:19:46 -0700 Subject: [PATCH] Fix #344 Add config to hide player skulls (on by default) to prevent lag --- src/main/java/mezz/jei/ItemFilter.java | 24 ++++++++++++------- src/main/java/mezz/jei/config/Config.java | 10 ++++++++ src/main/resources/assets/jei/lang/en_US.lang | 2 ++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/main/java/mezz/jei/ItemFilter.java b/src/main/java/mezz/jei/ItemFilter.java index 3df45cb1c..d947e1f80 100644 --- a/src/main/java/mezz/jei/ItemFilter.java +++ b/src/main/java/mezz/jei/ItemFilter.java @@ -24,6 +24,7 @@ import net.minecraft.client.renderer.RenderItem; import net.minecraft.client.renderer.block.model.IBakedModel; import net.minecraft.item.Item; +import net.minecraft.item.ItemSkull; import net.minecraft.item.ItemStack; public class ItemFilter { @@ -154,14 +155,6 @@ public boolean isItemStackHidden(@Nonnull ItemStack itemStack) { return true; } - return isItemStackHiddenByMissingModel(itemStack); - } - - public Multiset getBrokenItems() { - return brokenItems; - } - - private boolean isItemStackHiddenByMissingModel(@Nonnull ItemStack itemStack) { Item item = itemStack.getItem(); if (brokenItems.contains(item)) { return true; @@ -180,12 +173,25 @@ private boolean isItemStackHiddenByMissingModel(@Nonnull ItemStack itemStack) { } if (Config.isHideMissingModelsEnabled()) { - return itemModel == null || itemModel == missingModel; + if (itemModel == null || itemModel == missingModel) { + return true; + } + } + + if (Config.isHideLaggyModelsEnabled()) { + // Game freezes when loading player skulls, see https://bugs.mojang.com/browse/MC-65587 + if (item instanceof ItemSkull && itemStack.getMetadata() == 3) { + return true; + } } return false; } + public Multiset getBrokenItems() { + return brokenItems; + } + private boolean isItemHiddenByBlacklist(@Nonnull ItemStack itemStack) { try { if (!itemBlacklist.isItemBlacklisted(itemStack)) { diff --git a/src/main/java/mezz/jei/config/Config.java b/src/main/java/mezz/jei/config/Config.java index d0cc56d43..247e42787 100644 --- a/src/main/java/mezz/jei/config/Config.java +++ b/src/main/java/mezz/jei/config/Config.java @@ -37,6 +37,7 @@ public class Config { private static boolean debugModeEnabled = false; private static boolean debugItemEnabled = false; private static boolean hideMissingModelsEnabled = true; + private static boolean hideLaggyModelsEnabled = true; private static boolean deleteItemsInCheatModeEnabled = true; private static boolean colorSearchEnabled = false; @@ -106,6 +107,10 @@ public static boolean isHideMissingModelsEnabled() { return hideMissingModelsEnabled; } + public static boolean isHideLaggyModelsEnabled() { + return hideLaggyModelsEnabled; + } + public static boolean isColorSearchEnabled() { return colorSearchEnabled; } @@ -288,6 +293,11 @@ private static boolean syncConfig() { needsReload = true; } + hideLaggyModelsEnabled = config.getBoolean(CATEGORY_ADVANCED, "hideLaggyModelsEnabled", hideLaggyModelsEnabled); + if (categoryAdvanced.get("hideLaggyModelsEnabled").hasChanged()) { + needsReload = true; + } + colorSearchEnabled = config.getBoolean(CATEGORY_ADVANCED, "colorSearchEnabled", colorSearchEnabled); if (categoryAdvanced.get("colorSearchEnabled").hasChanged()) { needsReload = true; diff --git a/src/main/resources/assets/jei/lang/en_US.lang b/src/main/resources/assets/jei/lang/en_US.lang index ad07ba57e..dc8fd8972 100644 --- a/src/main/resources/assets/jei/lang/en_US.lang +++ b/src/main/resources/assets/jei/lang/en_US.lang @@ -64,6 +64,8 @@ config.jei.advanced.itemBlacklist=Item Blacklist config.jei.advanced.itemBlacklist.comment=List of items that should not be displayed in the item list. Format: modId[:name[:meta]]. Edit Mode will automatically add or remove entries here. config.jei.advanced.hideMissingModelsEnabled=Hide Items with Missing Models config.jei.advanced.hideMissingModelsEnabled.comment=Items with missing models will be hidden from the item list. +config.jei.advanced.hideLaggyModelsEnabled=Hide Items with Laggy Models +config.jei.advanced.hideLaggyModelsEnabled.comment=Items with models that cause a long delay will be hidden from the item list. config.jei.advanced.colorSearchEnabled=Enable Color Search config.jei.advanced.colorSearchEnabled.comment=Search items by color and show the searchable item colors on tooltips in the item list. config.jei.advanced.debugModeEnabled=Debug Mode