Fix symbolic links (#754)

This commit is contained in:
altrisi authored and GitHub committed 2021-03-07 17:16:20 -04:00
1 parent b123899abd
commit 8a1c9f2d0b
1 file changed
+6 -1
@@ -26,6 +26,7 @@ import net.minecraft.util.WorldSavePath;
import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.BlockPos;
import java.io.IOException; import java.io.IOException;
import java.nio.file.FileVisitOption;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.ArrayList; import java.util.ArrayList;
@@ -136,6 +137,7 @@ public class CarpetScriptServer
{ {
try { try {
Path folder = server.getSavePath(WorldSavePath.ROOT).resolve("scripts"); Path folder = server.getSavePath(WorldSavePath.ROOT).resolve("scripts");
if (!Files.exists(folder))
Files.createDirectories(folder); Files.createDirectories(folder);
Optional<Path> Optional<Path>
scriptPath = Files.list(folder) scriptPath = Files.list(folder)
@@ -149,6 +151,7 @@ public class CarpetScriptServer
if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT) if (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT)
{ {
Path globalFolder = FabricLoader.getInstance().getConfigDir().resolve("carpet/scripts"); Path globalFolder = FabricLoader.getInstance().getConfigDir().resolve("carpet/scripts");
if (!Files.exists(globalFolder))
Files.createDirectories(globalFolder); Files.createDirectories(globalFolder);
scriptPath = Files.walk(globalFolder) scriptPath = Files.walk(globalFolder)
.filter(script -> script.getFileName().toString().equalsIgnoreCase(name + ".sc") || .filter(script -> script.getFileName().toString().equalsIgnoreCase(name + ".sc") ||
@@ -194,6 +197,7 @@ public class CarpetScriptServer
} }
try { try {
Path worldScripts = server.getSavePath(WorldSavePath.ROOT).resolve("scripts"); Path worldScripts = server.getSavePath(WorldSavePath.ROOT).resolve("scripts");
if (!Files.exists(worldScripts))
Files.createDirectories(worldScripts); Files.createDirectories(worldScripts);
Files.list(worldScripts) Files.list(worldScripts)
.filter(f -> f.toString().endsWith(".sc")) .filter(f -> f.toString().endsWith(".sc"))
@@ -202,8 +206,9 @@ public class CarpetScriptServer
if (includeBuiltIns && (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT)) if (includeBuiltIns && (FabricLoader.getInstance().getEnvironmentType() == EnvType.CLIENT))
{ {
Path globalScripts = FabricLoader.getInstance().getConfigDir().resolve("carpet/scripts"); Path globalScripts = FabricLoader.getInstance().getConfigDir().resolve("carpet/scripts");
if (!Files.exists(globalScripts))
Files.createDirectories(globalScripts); Files.createDirectories(globalScripts);
Files.walk(globalScripts) Files.walk(globalScripts, FileVisitOption.FOLLOW_LINKS)
.filter(f -> f.toString().endsWith(".sc")) .filter(f -> f.toString().endsWith(".sc"))
.forEach(f -> moduleNames.add(f.getFileName().toString().replaceFirst("\\.sc$","").toLowerCase(Locale.ROOT))); .forEach(f -> moduleNames.add(f.getFileName().toString().replaceFirst("\\.sc$","").toLowerCase(Locale.ROOT)));
} }