Use built in validation for getting MC version

This commit is contained in:
Kallum Jones 2022-08-14 14:08:42 +01:00
parent 90b5ac79bc
commit 76f6c2c475
No known key found for this signature in database
GPG Key ID: D7F4589C4D7F81A9

View File

@ -3,7 +3,6 @@ import axios from "axios";
import ModManager from "../mod-manager.js"; import ModManager from "../mod-manager.js";
import MinecraftVersionError from "../errors/minecraft_version_error.js"; import MinecraftVersionError from "../errors/minecraft_version_error.js";
import inquirer from "inquirer"; import inquirer from "inquirer";
import PrintUtils from "./print_utils.js";
export default class MinecraftUtils { export default class MinecraftUtils {
static async getCurrentMinecraftVersion(): Promise<string> { static async getCurrentMinecraftVersion(): Promise<string> {
@ -37,29 +36,19 @@ export default class MinecraftUtils {
} }
public static async getMinecraftVersionFromInput(question: string) { public static async getMinecraftVersionFromInput(question: string) {
let isVersionValid = false;
let version: string | undefined = undefined;
while (!isVersionValid) {
const answer = await inquirer.prompt([{ const answer = await inquirer.prompt([{
type: "input", type: "input",
name: "minecraft_version", name: "minecraft_version",
message: question message: question,
async validate(input: any): Promise<string | boolean> {
const valid = await MinecraftUtils.isValidVersion(input);
if (!valid) {
return "That is not a valid Minecraft Version"
}
return valid
},
}]) }])
version = answer.minecraft_version; return answer.minecraft_version;
if (await MinecraftUtils.isValidVersion(version)) {
isVersionValid = true;
} else {
PrintUtils.error(`${version} is not a valid Minecraft version for a Fabric server. Please try again`);
}
}
if (version == undefined) {
throw new MinecraftVersionError("Escaped version input without a valid version")
}
return version;
} }
} }