From 49085578951c8eab2e86deb4d70428a3fca234e2 Mon Sep 17 00:00:00 2001 From: CaiBai-Fish Date: Wed, 6 May 2026 21:01:44 +0800 Subject: [PATCH] fix: prevent NPE when Camera.entity is null MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Leawind‘s Third Person may temporarily set camera entity to null, causing Sable to crash at entity.level(). Add null check and fallback to original behavior. --- .../sable/neoforge/mixin/camera_rotation/CameraMixin.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/neoforge/src/main/java/dev/ryanhcode/sable/neoforge/mixin/camera_rotation/CameraMixin.java b/neoforge/src/main/java/dev/ryanhcode/sable/neoforge/mixin/camera_rotation/CameraMixin.java index b283dcf1..61cc7338 100644 --- a/neoforge/src/main/java/dev/ryanhcode/sable/neoforge/mixin/camera_rotation/CameraMixin.java +++ b/neoforge/src/main/java/dev/ryanhcode/sable/neoforge/mixin/camera_rotation/CameraMixin.java @@ -69,6 +69,10 @@ public abstract class CameraMixin { @WrapMethod(method = "setPosition(Lnet/minecraft/world/phys/Vec3;)V") private void sable$setPosition(final Vec3 arg, final Operation original) { + if (this.entity == null) { + original.call(arg); + return; + } final Level level = this.entity.level(); final ClientSubLevel subLevel = (ClientSubLevel) Sable.HELPER.getContaining(level, arg);