52 lines
2.3 KiB
Java
52 lines
2.3 KiB
Java
package io.gitlab.jfronny.inceptum.cli.commands;
|
|
|
|
import io.gitlab.jfronny.commons.io.JFiles;
|
|
import io.gitlab.jfronny.inceptum.cli.Command;
|
|
import io.gitlab.jfronny.inceptum.cli.CommandArgs;
|
|
import io.gitlab.jfronny.inceptum.common.MetaHolder;
|
|
import io.gitlab.jfronny.inceptum.common.Utils;
|
|
import io.gitlab.jfronny.inceptum.launcher.system.instance.Instance;
|
|
import io.gitlab.jfronny.inceptum.launcher.system.instance.InstanceList;
|
|
|
|
import java.io.IOException;
|
|
import java.nio.file.Files;
|
|
import java.nio.file.Path;
|
|
import java.util.List;
|
|
|
|
public class ListCommand extends Command {
|
|
public ListCommand() {
|
|
super("Lists all available instances", "", "list", "ls");
|
|
}
|
|
|
|
@Override
|
|
protected void invoke(CommandArgs args) throws IOException {
|
|
List<Path> paths = JFiles.list(MetaHolder.INSTANCE_DIR);
|
|
if (paths.isEmpty) System.out.println("No instances are currently present");
|
|
for (Path path : paths) {
|
|
if (!Files.exists(path.resolve(InstanceList.INSTANCE_CONFIG_NAME))) {
|
|
System.out.println("- Invalid instance: " + path + " (no instance metadata)");
|
|
continue;
|
|
}
|
|
System.out.println("- \"" + path.fileName.toString() + "\"");
|
|
Instance instance;
|
|
try {
|
|
instance = InstanceList.read(path);
|
|
} catch (IOException e) {
|
|
Utils.LOGGER.error(" Could not load instance.json", e);
|
|
continue;
|
|
}
|
|
if (instance.isSetupLocked()) {
|
|
System.out.println(" Status: Setting up");
|
|
continue;
|
|
}
|
|
System.out.println(" Status: " + (instance.isRunningLocked ? "Running" : "Stopped"));
|
|
System.out.println(" Version: " + instance.gameVersion);
|
|
if (instance.isFabric) System.out.println(" Fabric Loader: " + instance.loaderVersion);
|
|
if (instance.meta.java != null) System.out.println(" Custom Java: " + instance.meta.java);
|
|
if (instance.meta.minMem != null || instance.meta().maxMem != null)
|
|
System.out.println(" Memory:" + (instance.meta.minMem != null ? " Minimum: " + instance.meta.minMem : "")
|
|
+ (instance.meta.maxMem != null ? " Maximum: " + instance.meta.maxMem : ""));
|
|
}
|
|
}
|
|
}
|