Launcher/LaunchServer/src/main/java/pro/gravit/launchserver/command/hash/MakeProfileCommand.java

47 lines
1.7 KiB
Java

package pro.gravit.launchserver.command.hash;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import pro.gravit.launcher.base.Launcher;
import pro.gravit.launcher.base.profiles.ClientProfile;
import pro.gravit.launchserver.LaunchServer;
import pro.gravit.launchserver.command.Command;
import pro.gravit.launchserver.helper.MakeProfileHelper;
import pro.gravit.utils.helper.IOHelper;
import java.io.Writer;
public class MakeProfileCommand extends Command {
private transient final Logger logger = LogManager.getLogger();
public MakeProfileCommand(LaunchServer server) {
super(server);
}
@Override
public String getArgsDescription() {
return "[name] [minecraft version] [dir]";
}
@Override
public String getUsageDescription() {
return "make profile for any minecraft versions";
}
@Override
public void invoke(String... args) throws Exception {
verifyArgs(args, 3);
ClientProfile.Version version = parseClientVersion(args[1]);
MakeProfileHelper.MakeProfileOption[] options = MakeProfileHelper.getMakeProfileOptionsFromDir(server.updatesDir.resolve(args[2]), version);
for (MakeProfileHelper.MakeProfileOption option : options) {
logger.info("Detected option {}", option);
}
ClientProfile profile = MakeProfileHelper.makeProfile(version, args[0], options);
try (Writer writer = IOHelper.newWriter(server.profilesDir.resolve(args[0].concat(".json")))) {
Launcher.gsonManager.configGson.toJson(profile, writer);
}
logger.info("Profile {} created", args[0]);
server.syncProfilesDir();
}
}