From ca6133031cebe91f849f647919f3bf601b98177e Mon Sep 17 00:00:00 2001 From: Pedro Date: Sat, 3 Feb 2024 20:38:42 -0300 Subject: [PATCH] Fixed weird crash --- .../net/pedroricardo/mixin/client/HeadCollisionMixin.java | 2 +- .../mixin/client/RenderHeadedHeadItemMixin.java | 2 +- .../pedroricardo/mixin/client/RenderHeadedHeadMixin.java | 6 +++--- .../mixin/client/RenderHeadedHeadOnHeadMixin.java | 2 +- .../pedroricardo/mixin/client/WallHeadCollisionMixin.java | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/client/java/net/pedroricardo/mixin/client/HeadCollisionMixin.java b/src/client/java/net/pedroricardo/mixin/client/HeadCollisionMixin.java index d8d461e..e54d672 100644 --- a/src/client/java/net/pedroricardo/mixin/client/HeadCollisionMixin.java +++ b/src/client/java/net/pedroricardo/mixin/client/HeadCollisionMixin.java @@ -28,7 +28,7 @@ public class HeadCollisionMixin { @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) private void headedrewritten$getAccurateOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable cir) { - if (HeadedRewritten.CONFIG.changeHeadCollisions() && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (HeadedRewritten.CONFIG.changeHeadCollisions() && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { SkullBlockEntityModel model = TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader()); Vector3f boxSize; if (model instanceof HeadedRewrittenModel headedRewrittenModel) { diff --git a/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadItemMixin.java b/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadItemMixin.java index d3f6dbf..484c7d5 100644 --- a/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadItemMixin.java +++ b/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadItemMixin.java @@ -19,7 +19,7 @@ public class RenderHeadedHeadItemMixin { @ModifyArg(method = "render", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/SkullBlockEntityRenderer;renderSkull(Lnet/minecraft/util/math/Direction;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/block/entity/SkullBlockEntityModel;Lnet/minecraft/client/render/RenderLayer;)V"), index = 6) private SkullBlockEntityModel headedrewritten$replaceItemModel(SkullBlockEntityModel model, @Local(ordinal = 0) SkullBlock.SkullType skullType, @Local(ordinal = 0) GameProfile gameProfile) { - if (skullType == SkullBlock.Type.PLAYER && gameProfile != null && gameProfile.getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (skullType == SkullBlock.Type.PLAYER && gameProfile != null && gameProfile.getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { HeadedContext.currentProfile = gameProfile; return TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader()); } diff --git a/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadMixin.java b/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadMixin.java index 3b469b6..8913128 100644 --- a/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadMixin.java +++ b/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadMixin.java @@ -32,7 +32,7 @@ public class RenderHeadedHeadMixin { @ModifyArg(method = "render(Lnet/minecraft/block/entity/SkullBlockEntity;FLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;II)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/SkullBlockEntityRenderer;renderSkull(Lnet/minecraft/util/math/Direction;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/block/entity/SkullBlockEntityModel;Lnet/minecraft/client/render/RenderLayer;)V"), index = 6) private SkullBlockEntityModel headedrewritten$replaceModel(SkullBlockEntityModel model, @Local(ordinal = 0) SkullBlock.SkullType skullType, @Local(ordinal = 0) SkullBlockEntity blockEntity) { HeadedContext.currentProfile = blockEntity.getOwner(); - if (skullType == SkullBlock.Type.PLAYER && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (skullType == SkullBlock.Type.PLAYER && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { return TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader()); } return model; @@ -40,7 +40,7 @@ public class RenderHeadedHeadMixin { @Inject(method = "getRenderLayer", at = @At(value = "HEAD"), cancellable = true) private static void headedrewritten$replaceTexture(SkullBlock.SkullType type, GameProfile profile, CallbackInfoReturnable cir) { - if (type == SkullBlock.Type.PLAYER && profile != null && profile.getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(profile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (type == SkullBlock.Type.PLAYER && profile != null && profile.getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(profile).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(profile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { cir.setReturnValue(TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(profile).get(MinecraftProfileTexture.Type.SKIN).getUrl()).getRenderLayer()); } } @@ -62,7 +62,7 @@ public class RenderHeadedHeadMixin { @Inject(method = "renderSkull", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/math/MatrixStack;pop()V", shift = At.Shift.AFTER)) private static void headedrewritten$renderFeatures(Direction direction, float yaw, float animationProgress, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, SkullBlockEntityModel model, RenderLayer renderLayer, CallbackInfo ci) { - if (HeadedContext.currentProfile != null && HeadedContext.currentProfile.getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(HeadedContext.currentProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (HeadedContext.currentProfile != null && HeadedContext.currentProfile.getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(HeadedContext.currentProfile).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(HeadedContext.currentProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { HeadedHead head = TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(HeadedContext.currentProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl()); HeadedContext.currentProfile = null; for (Function featureRenderer : head.getFeatureRenderers()) { diff --git a/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadOnHeadMixin.java b/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadOnHeadMixin.java index 042ec42..4d74100 100644 --- a/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadOnHeadMixin.java +++ b/src/client/java/net/pedroricardo/mixin/client/RenderHeadedHeadOnHeadMixin.java @@ -17,7 +17,7 @@ public class RenderHeadedHeadOnHeadMixin { @ModifyArg(method = "render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/entity/LivingEntity;FFFFFF)V", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/block/entity/SkullBlockEntityRenderer;renderSkull(Lnet/minecraft/util/math/Direction;FFLnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;ILnet/minecraft/client/render/block/entity/SkullBlockEntityModel;Lnet/minecraft/client/render/RenderLayer;)V"), index = 6) private SkullBlockEntityModel headedrewritten$replaceItemModel(SkullBlockEntityModel model, @Local(ordinal = 0) GameProfile gameProfile, @Local(ordinal = 0) SkullBlock.SkullType skullType) { - if (skullType == SkullBlock.Type.PLAYER && gameProfile != null && gameProfile.getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (skullType == SkullBlock.Type.PLAYER && gameProfile != null && gameProfile.getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { HeadedContext.currentProfile = gameProfile; return TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(gameProfile).get(MinecraftProfileTexture.Type.SKIN).getUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader()); } diff --git a/src/client/java/net/pedroricardo/mixin/client/WallHeadCollisionMixin.java b/src/client/java/net/pedroricardo/mixin/client/WallHeadCollisionMixin.java index d61743d..04dccf8 100644 --- a/src/client/java/net/pedroricardo/mixin/client/WallHeadCollisionMixin.java +++ b/src/client/java/net/pedroricardo/mixin/client/WallHeadCollisionMixin.java @@ -32,7 +32,7 @@ public class WallHeadCollisionMixin { @Inject(method = "getOutlineShape", at = @At("HEAD"), cancellable = true) private void headedrewritten$getAccurateWallOutlineShape(BlockState state, BlockView world, BlockPos pos, ShapeContext context, CallbackInfoReturnable cir) { - if (HeadedRewritten.CONFIG.changeHeadCollisions() && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { + if (HeadedRewritten.CONFIG.changeHeadCollisions() && world.getBlockEntity(pos) instanceof SkullBlockEntity blockEntity && blockEntity.getOwner() != null && blockEntity.getOwner().getProperties().containsKey("textures") && MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).containsKey(MinecraftProfileTexture.Type.SKIN) && TextureToHeadMap.MAP.containsKey(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl())) { SkullBlockEntityModel model = TextureToHeadMap.MAP.get(MinecraftClient.getInstance().getSkinProvider().getTextures(blockEntity.getOwner()).get(MinecraftProfileTexture.Type.SKIN).getUrl()).getModel(MinecraftClient.getInstance().getEntityModelLoader()); Vector3f boxSize; if (model instanceof HeadedRewrittenModel headedRewrittenModel) {