diff --git a/src/main/java/com/seibel/lod/util/LodUtil.java b/src/main/java/com/seibel/lod/util/LodUtil.java index 027896f80..37d29b0e8 100644 --- a/src/main/java/com/seibel/lod/util/LodUtil.java +++ b/src/main/java/com/seibel/lod/util/LodUtil.java @@ -45,7 +45,7 @@ import net.minecraft.world.server.ServerWorld; * This class holds methods and constants that may be used in multiple places. * * @author James Seibel - * @version 8-29-2021 + * @version 9-7-2021 */ public class LodUtil { @@ -100,6 +100,9 @@ public class LodUtil /** If we ever need to use a heightmap for any reason, use this one. */ public static final Heightmap.Type DEFAULT_HEIGHTMAP = Heightmap.Type.WORLD_SURFACE_WG; + /** This regex finds any characters that are invalid for use in a windows + * (and by extension mac and linux) file path */ + public static final String INVALID_FILE_CHARACTERS_REGEX = "[\\\\\\/:*?\\\"<>|]"; @@ -209,10 +212,7 @@ public class LodUtil } else { - ServerData server = mc.getCurrentServer(); - return server.name + ", IP " + - server.ip + ", GameVersion " + - server.version.getString(); + return getServerId(); } } @@ -221,7 +221,7 @@ public class LodUtil /** * If on single player this will return the name of the user's * world and the dimensional save folder, if in multiplayer - * it will return the server name, game version, and dimension.
+ * it will return the server name, ip, game version, and dimension.
*
* This can be used to determine where to save files for a given * dimension. @@ -245,14 +245,25 @@ public class LodUtil } else { - ServerData server = mc.getCurrentServer(); - return server.name + ", IP " + - server.ip + ", GameVersion " + - server.version.getString() + File.separatorChar - + "dim_" + world.dimensionType().effectsLocation().getPath() + File.separatorChar; + return getServerId() + File.separatorChar + "dim_" + world.dimensionType().effectsLocation().getPath() + File.separatorChar; } } + /** + * returns the server name, IP and game version. + */ + public static String getServerId() + { + ServerData server = mc.getCurrentServer(); + + String serverName = server.name.replaceAll(INVALID_FILE_CHARACTERS_REGEX, ""); + String serverIp = server.ip.replaceAll(INVALID_FILE_CHARACTERS_REGEX, ""); + String serverMcVersion = server.version.getString().replaceAll(INVALID_FILE_CHARACTERS_REGEX, ""); + + String serverId = serverName + ", IP " + serverIp + ", GameVersion " + serverMcVersion; + + return serverId; + } /**