From 25ac1de59b219c1926f3878803bbf75a557fc299 Mon Sep 17 00:00:00 2001 From: Acuadragon100 <8165958-acuadragon100@users.noreply.gitlab.com> Date: Sun, 26 Apr 2026 12:41:28 +0200 Subject: [PATCH] Check if same level before trying to decode the data. --- .../distanthorizons/core/level/DhClientLevel.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java index 4246b86dd..4c8b683c5 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhClientLevel.java @@ -167,15 +167,15 @@ public class DhClientLevel extends AbstractDhLevel implements IDhClientLevel } + // Check this before decoding data to prevent errors if multiple client levels are receiving data at once (Immersive Portals compatibility). + boolean isSameLevel = message.isSameLevelAs(this.levelWrapper); + NETWORK_LOGGER.debug("Buffer ["+message.payload.dtoBufferId+"] isSameLevel: ["+isSameLevel+"]"); + if (!isSameLevel) + { + return; + } try (FullDataSourceV2DTO dataSourceDto = this.networkState.fullDataPayloadReceiver.decodeDataSource(message.payload)) { - boolean isSameLevel = message.isSameLevelAs(this.levelWrapper); - NETWORK_LOGGER.debug("Buffer ["+message.payload.dtoBufferId+"] isSameLevel: ["+isSameLevel+"]"); - if (!isSameLevel) - { - return; - } - Executor executor = ThreadPoolUtil.getFileHandlerExecutor(); if (executor != null)