Allow changing the extensions folder via a system property

This commit is contained in:
Kieran Wallbanks 2022-07-06 15:34:40 +01:00
parent 0309d12540
commit 8b789e0f30
No known key found for this signature in database
GPG Key ID: 7C7D0F1614BCAACE
2 changed files with 16 additions and 1 deletions

View File

@ -7,6 +7,7 @@ import net.minestom.dependencies.maven.MavenRepository;
import net.minestom.server.ServerProcess;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventNode;
import net.minestom.server.utils.PropertyUtils;
import net.minestom.server.utils.validate.Check;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.NotNull;
@ -39,7 +40,7 @@ public class ExtensionManager {
private final Map<String, Extension> extensions = new LinkedHashMap<>();
private final Map<String, Extension> immutableExtensions = Collections.unmodifiableMap(extensions);
private final File extensionFolder = new File("extensions");
private final File extensionFolder = new File(PropertyUtils.getString("minestom.extension.folder", "extensions"));
private final File dependenciesFolder = new File(extensionFolder, ".libs");
private Path extensionDataRoot = extensionFolder.toPath();

View File

@ -1,6 +1,9 @@
package net.minestom.server.utils;
import org.jetbrains.annotations.ApiStatus;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@ApiStatus.Internal
public final class PropertyUtils {
@ -15,4 +18,15 @@ public final class PropertyUtils {
}
return result;
}
@Contract("_, null -> null; _, !null -> !null")
public static String getString(@NotNull String name, @Nullable String defaultValue) {
final String value = System.getProperty(name);
if (value == null) {
return defaultValue;
} else {
return value;
}
}
}