From e2fd978d8be7ff6d76947fceb12c12f86b53442c Mon Sep 17 00:00:00 2001 From: Electroblob77 <35599699+Electroblob77@users.noreply.github.com> Date: Sun, 20 Dec 2020 17:07:58 +0000 Subject: [PATCH] Catch NPEs when accessing IBakedModel#getOverrides from ModelBakeEvent, fixes #537 --- .../model/BakedModelGenerateOverrides.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/main/java/electroblob/wizardry/client/model/BakedModelGenerateOverrides.java b/src/main/java/electroblob/wizardry/client/model/BakedModelGenerateOverrides.java index a8272917..0abce513 100644 --- a/src/main/java/electroblob/wizardry/client/model/BakedModelGenerateOverrides.java +++ b/src/main/java/electroblob/wizardry/client/model/BakedModelGenerateOverrides.java @@ -119,13 +119,19 @@ public class BakedModelGenerateOverrides implements IBakedModel { IBakedModel original = event.getModelRegistry().getObject(location); - // Ignore the warnings, IntelliJ is right that these can't be null in the dev environment but certain - // mods seem to be doing ASM hackery that makes it so they can be null - if(original != null && original.getOverrides() != null && original.getOverrides().getOverrides() != null){ - original.getOverrides().getOverrides().stream().map(ItemOverride::getLocation) - .filter(l -> l.getPath().contains(OVERRIDE_GENERATORS)).findFirst() - .ifPresent(l -> event.getModelRegistry().putObject(location, - substituteWandModel(event.getModelManager(), location, original, l))); + try{ + + // Ignore the warnings, IntelliJ is right that these can't be null in the dev environment but certain + // mods seem to be doing ASM hackery that makes it so they can be null + if(original != null && original.getOverrides() != null && original.getOverrides().getOverrides() != null){ + original.getOverrides().getOverrides().stream().map(ItemOverride::getLocation) + .filter(l -> l.getPath().contains(OVERRIDE_GENERATORS)).findFirst() + .ifPresent(l -> event.getModelRegistry().putObject(location, + substituteWandModel(event.getModelManager(), location, original, l))); + } + + }catch(NullPointerException e){ + Wizardry.logger.info("The model {} threw an error when trying to access item overrides, it will be ignored. If you're an addon dev and you made this model, something is wrong with it! Otherwise, please ignore this message.", location); } } }