From 50368249f608099c9d2ae8d7a3a973d52acab91e Mon Sep 17 00:00:00 2001 From: BlayTheNinth <1933180+BlayTheNinth@users.noreply.github.com> Date: Thu, 14 Dec 2023 12:09:39 +0100 Subject: [PATCH] fix: Fix crash on warp plates with missing targets in last commit --- .../waystones/block/entity/WarpPlateBlockEntity.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/shared/src/main/java/net/blay09/mods/waystones/block/entity/WarpPlateBlockEntity.java b/shared/src/main/java/net/blay09/mods/waystones/block/entity/WarpPlateBlockEntity.java index 5a5014fc..894ade88 100644 --- a/shared/src/main/java/net/blay09/mods/waystones/block/entity/WarpPlateBlockEntity.java +++ b/shared/src/main/java/net/blay09/mods/waystones/block/entity/WarpPlateBlockEntity.java @@ -213,7 +213,9 @@ public MenuProvider getSettingsMenuProvider() { public void onEntityCollision(Entity entity) { Integer ticksPassed = ticksPassedPerEntity.putIfAbsent(entity, 0); if (ticksPassed == null || ticksPassed != -1) { - final var status = getTargetWaystone().isValid() ? WarpPlateBlock.WarpPlateStatus.ACTIVE : WarpPlateBlock.WarpPlateStatus.INVALID; + final var status = getTargetWaystone().filter(IWaystone::isValid) + .map(it -> WarpPlateBlock.WarpPlateStatus.ACTIVE) + .orElse(WarpPlateBlock.WarpPlateStatus.INVALID); level.setBlock(worldPosition, getBlockState() .setValue(WarpPlateBlock.ACTIVE, true) .setValue(WarpPlateBlock.STATUS, status), 3); @@ -426,9 +428,8 @@ public ItemStack getTargetAttunementStack() { return ItemStack.EMPTY; } - @Nullable - public IWaystone getTargetWaystone() { - return WaystonesAPI.getBoundWaystone(getTargetAttunementStack()).orElse(null); + public Optional getTargetWaystone() { + return WaystonesAPI.getBoundWaystone(getTargetAttunementStack()); } public int getMaxAttunementTicks() {