From 07ac5337d048fc2614f88ba3dfe0789230483614 Mon Sep 17 00:00:00 2001 From: "ByThePowerOfScience (ABadHaiku)" <16433721+ByThePowerOfScience@users.noreply.github.com> Date: Thu, 19 Feb 2026 18:52:26 -0500 Subject: [PATCH] LockManager: Make Level null-safe --- .../shatterbyte/clavis/common/LockManager.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/common/src/main/java/it/hurts/shatterbyte/clavis/common/LockManager.java b/common/src/main/java/it/hurts/shatterbyte/clavis/common/LockManager.java index 07240c2..44c8256 100644 --- a/common/src/main/java/it/hurts/shatterbyte/clavis/common/LockManager.java +++ b/common/src/main/java/it/hurts/shatterbyte/clavis/common/LockManager.java @@ -26,16 +26,23 @@ public class LockManager { public static UnlockDataStorage UNLOCK_STORAGE; public static void addLock(ServerLevel level, Lock lock) { + if (level == null) + return; ClavisSavedData data = ClavisSavedData.get(level); data.addLock(lock, level); } public static void removeLock(ServerLevel level, Lock lock) { + if (level == null) + return; ClavisSavedData data = ClavisSavedData.get(level); data.removeLock(lock, level); } public static void unlock(ServerLevel level, @Nullable ServerPlayer player, Lock lock) { + if (level == null) + return; + if (!lock.isPerPlayer()) { removeLock(level, lock); return; @@ -53,6 +60,9 @@ public static void unlock(ServerLevel level, @Nullable ServerPlayer player, Lock } public static List getLocksAt(ServerLevel level, @Nullable ServerPlayer player, ChunkPos pos) { + if (level == null) + return List.of(); + ClavisSavedData data = ClavisSavedData.get(level); List locks = data.getLocksAt(pos); @@ -67,6 +77,9 @@ public static List getLocksAt(ServerLevel level, @Nullable ServerPlayer pl } public static List getLocksAt(ServerLevel level, @Nullable ServerPlayer player, BlockPos pos) { + if (level == null) + return List.of(); + ChunkPos chunkPos = new ChunkPos(pos); List chunkLocks = getLocksAt(level, player, chunkPos); @@ -76,6 +89,9 @@ public static List getLocksAt(ServerLevel level, @Nullable ServerPlayer pl } public static boolean isLocked(Level level, Player player, BlockPos pos) { + if (level == null) + return false; + if (level.isClientSide) { return LockWorldRenderer.FOR_RENDERING.stream().anyMatch(lock -> lock.getBox().isInside(pos)); } else if (level instanceof ServerLevel serverLevel) {