From 438145995c36829f581f179bc8da90a397283ade Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Mon, 21 Mar 2016 18:29:45 +0300 Subject: [PATCH] Ignore blocks/items with null registry name during model loading. Fixes NPE during resource reloading in worlds with removed blocks/items. --- .../client/model/ModelLoader.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/model/ModelLoader.java b/src/main/java/net/minecraftforge/client/model/ModelLoader.java index 6f0e62bf86..4014840672 100644 --- a/src/main/java/net/minecraftforge/client/model/ModelLoader.java +++ b/src/main/java/net/minecraftforge/client/model/ModelLoader.java @@ -82,10 +82,12 @@ import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Function; import com.google.common.base.Joiner; import com.google.common.base.Optional; +import com.google.common.base.Predicate; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Multimap; @@ -179,7 +181,13 @@ public final class ModelLoader extends ModelBakery @Override protected void loadBlocks() { - List blocks = Lists.newArrayList(Block.blockRegistry); + List blocks = Lists.newArrayList(Iterables.filter(Block.blockRegistry, new Predicate() + { + public boolean apply(Block block) + { + return block.getRegistryName() != null; + } + })); Collections.sort(blocks, new Comparator() { public int compare(Block b1, Block b2) @@ -257,7 +265,13 @@ public final class ModelLoader extends ModelBakery registerVariantNames(); - List items = Lists.newArrayList(GameData.getItemRegistry().typeSafeIterable()); + List items = Lists.newArrayList(Iterables.filter(Item.itemRegistry, new Predicate() + { + public boolean apply(Item item) + { + return item.getRegistryName() != null; + } + })); Collections.sort(items, new Comparator() { public int compare(Item i1, Item i2)