Added option for persistent resources like configuration files
This commit is contained in:
parent
c6ecbe7548
commit
541eb1e733
@ -11,7 +11,7 @@ import java.util.logging.Logger;
|
|||||||
* Predefined resources which are extracted on Runtime
|
* Predefined resources which are extracted on Runtime
|
||||||
*/
|
*/
|
||||||
public enum Resource {
|
public enum Resource {
|
||||||
CONFIG("config.yml"),
|
CONFIG("config.yml", true),
|
||||||
HUB_MAP("maps/hub"),
|
HUB_MAP("maps/hub"),
|
||||||
LOBBY_MAP("maps/lobby"),
|
LOBBY_MAP("maps/lobby"),
|
||||||
|
|
||||||
@ -20,18 +20,22 @@ public enum Resource {
|
|||||||
|
|
||||||
private final Path path;
|
private final Path path;
|
||||||
private final String name;
|
private final String name;
|
||||||
Resource(String name) {
|
Resource(String name, boolean keepOutdated) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
this.path = Path.of("resources/" + name);
|
this.path = Path.of("resources/" + name);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Logger.getLogger("ressource").info("extracting resource " + name + " ... ");
|
Logger.getLogger("ressource").info("extracting resource " + name + " ... ");
|
||||||
ResourceUtils.extractResource(name);
|
ResourceUtils.extractResource(name, keepOutdated);
|
||||||
} catch (URISyntaxException | IOException e) {
|
} catch (URISyntaxException | IOException e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Resource(String name) {
|
||||||
|
this(name, false);
|
||||||
|
}
|
||||||
|
|
||||||
public Path getPath() {
|
public Path getPath() {
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import java.util.stream.Stream;
|
|||||||
* Class from the Minestom Arena example
|
* Class from the Minestom Arena example
|
||||||
*/
|
*/
|
||||||
public final class ResourceUtils {
|
public final class ResourceUtils {
|
||||||
public static void extractResource(String source) throws URISyntaxException, IOException {
|
public static void extractResource(String source, boolean keepOutdated) throws URISyntaxException, IOException {
|
||||||
final URI uri = Objects.requireNonNull(ResourceUtils.class.getResource("/" + source)).toURI();
|
final URI uri = Objects.requireNonNull(ResourceUtils.class.getResource("/" + source)).toURI();
|
||||||
FileSystem fileSystem = null;
|
FileSystem fileSystem = null;
|
||||||
|
|
||||||
@ -27,6 +27,7 @@ public final class ResourceUtils {
|
|||||||
final Path jarPath = Paths.get(uri);
|
final Path jarPath = Paths.get(uri);
|
||||||
final Path target = Path.of("resources/" + source);
|
final Path target = Path.of("resources/" + source);
|
||||||
if (Files.exists(target)) {
|
if (Files.exists(target)) {
|
||||||
|
if(keepOutdated) return;
|
||||||
try (Stream<Path> pathStream = Files.walk(target)) {
|
try (Stream<Path> pathStream = Files.walk(target)) {
|
||||||
pathStream.sorted(Comparator.reverseOrder())
|
pathStream.sorted(Comparator.reverseOrder())
|
||||||
.forEach(path -> {
|
.forEach(path -> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user