From 855170117c3e9ff9c6de63d47f3eba62f5bc3f4f Mon Sep 17 00:00:00 2001 From: Frotty Date: Sat, 22 Nov 2025 23:33:38 +0100 Subject: [PATCH 1/5] copy map on runmap if mapDocumentPath present --- .../peeeq/wurstio/languageserver/requests/RunMap.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java index 25638973e..cac17a4c0 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java @@ -25,8 +25,10 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; +import java.nio.file.CopyOption; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.time.Duration; import java.util.Arrays; import java.util.List; @@ -130,7 +132,13 @@ private void startGame(WurstGui gui, CompilationResult result) throws Exception gui.sendProgress("Starting Warcraft 3..."); File mapCopy = cachedMapFile.get(); - if (w3data.getWc3PatchVersion().isPresent()) { + + String mapDocumentPath = langServer.getConfigProvider().getConfig("mapDocumentPath", ""); + if (!mapDocumentPath.isEmpty()) { + Path path = Paths.get(mapDocumentPath); + mapCopy = path.toFile(); + java.nio.file.Files.copy(cachedMapFile.get().toPath(), path, StandardCopyOption.REPLACE_EXISTING); + } else if (w3data.getWc3PatchVersion().isPresent()) { GameVersion gameVersion = w3data.getWc3PatchVersion().get(); if (gameVersion.compareTo(GameVersion.VERSION_1_32) < 0) { mapCopy = copyToWarcraftMapDir(cachedMapFile.get()); From f6323fdb00926d68433b9df5a793a3315184edbf Mon Sep 17 00:00:00 2001 From: Frotty Date: Sat, 22 Nov 2025 23:43:03 +0100 Subject: [PATCH 2/5] Update RunMap.java --- .../java/de/peeeq/wurstio/languageserver/requests/RunMap.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java index cac17a4c0..7c10d5d33 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java @@ -137,7 +137,7 @@ private void startGame(WurstGui gui, CompilationResult result) throws Exception if (!mapDocumentPath.isEmpty()) { Path path = Paths.get(mapDocumentPath); mapCopy = path.toFile(); - java.nio.file.Files.copy(cachedMapFile.get().toPath(), path, StandardCopyOption.REPLACE_EXISTING); + java.nio.file.Files.copy(cachedMapFile.get().toPath(), path.resolve(cachedMapFile.get().getName()), StandardCopyOption.REPLACE_EXISTING); } else if (w3data.getWc3PatchVersion().isPresent()) { GameVersion gameVersion = w3data.getWc3PatchVersion().get(); if (gameVersion.compareTo(GameVersion.VERSION_1_32) < 0) { From baebcf2eee7ef452f9955820cb41de2c91213ab9 Mon Sep 17 00:00:00 2001 From: Frotty Date: Sun, 23 Nov 2025 00:40:10 +0100 Subject: [PATCH 3/5] Update RunMap.java --- .../java/de/peeeq/wurstio/languageserver/requests/RunMap.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java index 7c10d5d33..b84915c79 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java @@ -135,9 +135,9 @@ private void startGame(WurstGui gui, CompilationResult result) throws Exception String mapDocumentPath = langServer.getConfigProvider().getConfig("mapDocumentPath", ""); if (!mapDocumentPath.isEmpty()) { - Path path = Paths.get(mapDocumentPath); + Path path = Paths.get(mapDocumentPath).resolve(cachedMapFile.get().getName()); mapCopy = path.toFile(); - java.nio.file.Files.copy(cachedMapFile.get().toPath(), path.resolve(cachedMapFile.get().getName()), StandardCopyOption.REPLACE_EXISTING); + java.nio.file.Files.copy(cachedMapFile.get().toPath(), path, StandardCopyOption.REPLACE_EXISTING); } else if (w3data.getWc3PatchVersion().isPresent()) { GameVersion gameVersion = w3data.getWc3PatchVersion().get(); if (gameVersion.compareTo(GameVersion.VERSION_1_32) < 0) { From effc6eae915c5db122601ce1aa83bdee7fd6539d Mon Sep 17 00:00:00 2001 From: Frotty Date: Sun, 23 Nov 2025 00:43:54 +0100 Subject: [PATCH 4/5] Update RunMap.java --- .../java/de/peeeq/wurstio/languageserver/requests/RunMap.java | 1 + 1 file changed, 1 insertion(+) diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java index b84915c79..86bd089a0 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java @@ -137,6 +137,7 @@ private void startGame(WurstGui gui, CompilationResult result) throws Exception if (!mapDocumentPath.isEmpty()) { Path path = Paths.get(mapDocumentPath).resolve(cachedMapFile.get().getName()); mapCopy = path.toFile(); + mapCopy.mkdirs(); java.nio.file.Files.copy(cachedMapFile.get().toPath(), path, StandardCopyOption.REPLACE_EXISTING); } else if (w3data.getWc3PatchVersion().isPresent()) { GameVersion gameVersion = w3data.getWc3PatchVersion().get(); From 68cab46a2b34805c8959a713be8523b174229c03 Mon Sep 17 00:00:00 2001 From: Frotty Date: Sun, 23 Nov 2025 14:59:41 +0100 Subject: [PATCH 5/5] Update RunMap.java --- .../de/peeeq/wurstio/languageserver/requests/RunMap.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java index 86bd089a0..39073c70c 100644 --- a/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java +++ b/de.peeeq.wurstscript/src/main/java/de/peeeq/wurstio/languageserver/requests/RunMap.java @@ -135,9 +135,10 @@ private void startGame(WurstGui gui, CompilationResult result) throws Exception String mapDocumentPath = langServer.getConfigProvider().getConfig("mapDocumentPath", ""); if (!mapDocumentPath.isEmpty()) { - Path path = Paths.get(mapDocumentPath).resolve(cachedMapFile.get().getName()); + Path parent = Paths.get(mapDocumentPath); + parent.toFile().mkdirs(); + Path path = parent.resolve(cachedMapFile.get().getName()); mapCopy = path.toFile(); - mapCopy.mkdirs(); java.nio.file.Files.copy(cachedMapFile.get().toPath(), path, StandardCopyOption.REPLACE_EXISTING); } else if (w3data.getWc3PatchVersion().isPresent()) { GameVersion gameVersion = w3data.getWc3PatchVersion().get();