From a7c2424b1439600eecf3aaa8ec1f173feda17361 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Sat, 23 Dec 2023 15:53:40 -0500 Subject: [PATCH] Handle missing models in item overrides --- .../mixin/perf/dynamic_resources/ItemOverridesMixin.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemOverridesMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemOverridesMixin.java index 794757dc..2d155459 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemOverridesMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/dynamic_resources/ItemOverridesMixin.java @@ -1,8 +1,11 @@ package org.embeddedt.modernfix.common.mixin.perf.dynamic_resources; +import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.block.model.ItemOverride; import net.minecraft.client.renderer.block.model.ItemOverrides; import net.minecraft.client.resources.model.BakedModel; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ItemStack; import org.embeddedt.modernfix.dynamicresources.ItemOverrideBakedModel; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -20,11 +23,12 @@ public class ItemOverridesMixin { } @Inject(method = "resolve", at = @At("RETURN"), cancellable = true) - private void getRealModel(CallbackInfoReturnable cir) { + private void getRealModel(BakedModel bakedModel, ItemStack itemStack, ClientLevel clientLevel, LivingEntity livingEntity, CallbackInfoReturnable cir) { BakedModel original = cir.getReturnValue(); if(original instanceof ItemOverrideBakedModel) { ItemOverrideBakedModel override = (ItemOverrideBakedModel)original; - cir.setReturnValue(override.getRealModel()); + BakedModel overrideModel = override.getRealModel(); + cir.setReturnValue(overrideModel != null ? overrideModel : bakedModel); } } }