From 47541fa99cc00c8fd472648e04a253efa288d60d Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Fri, 28 Jun 2024 23:18:24 +0500 Subject: [PATCH] Move fixing the dimension name into even more correct place --- .../core/api/internal/ClientPluginChannelApi.java | 2 +- .../core/file/structure/ClientOnlySaveStructure.java | 4 ++-- .../core/wrapperInterfaces/world/IServerLevelWrapper.java | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientPluginChannelApi.java b/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientPluginChannelApi.java index 5b37ada58..bbddfea23 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientPluginChannelApi.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/api/internal/ClientPluginChannelApi.java @@ -55,7 +55,7 @@ public class ClientPluginChannelApi private void onCurrentLevelKeyMessage(CurrentLevelKeyMessage msg) { - if (!msg.levelKey.matches("^[a-zA-Z0-9-_@]{1,50}$")) + if (!msg.levelKey.matches("^(?=.{1,50}$)([a-zA-Z0-9-_]+@)?[a-zA-Z0-9-_]+(:[a-zA-Z0-9-_]+)?$")) { throw new IllegalArgumentException("Server sent invalid level key."); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java b/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java index 84cf97b5c..7c9c36308 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/structure/ClientOnlySaveStructure.java @@ -86,7 +86,7 @@ public class ClientOnlySaveStructure extends AbstractSaveStructure IServerKeyedClientLevel keyedClientLevel = (IServerKeyedClientLevel) newLevelWrapper; LOGGER.info("Loading level " + newLevelWrapper.getDimensionName() + " with key: " + keyedClientLevel.getServerLevelKey()); // This world was identified by the server directly, so we can know for sure which folder to use. - return new File(getSaveStructureFolderPath() + File.separatorChar + keyedClientLevel.getServerLevelKey()); + return new File(getSaveStructureFolderPath() + File.separatorChar + keyedClientLevel.getServerLevelKey().replaceAll(":", "@@")); } @@ -141,7 +141,7 @@ public class ClientOnlySaveStructure extends AbstractSaveStructure { // no valid sub dimension was found, create a new one LOGGER.info("Default Sub Dimension not found. Creating: [" + level.getDimensionName() + "]"); - return new File(this.folder, level.getDimensionName()); + return new File(this.folder, level.getDimensionName().replaceAll(":", "@@")); } } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IServerLevelWrapper.java b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IServerLevelWrapper.java index 816ff5644..b4ae28dc8 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IServerLevelWrapper.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/wrapperInterfaces/world/IServerLevelWrapper.java @@ -33,7 +33,7 @@ public interface IServerLevelWrapper extends ILevelWrapper default String getKeyedLevelDimensionName() { - String dimensionName = this.getDimensionName().replace(":", "@@"); + String dimensionName = this.getDimensionName(); if (ServerNetworking.sendLevelKeys.get()) {