diff --git a/.gitignore b/.gitignore index 9c7df3e..0687dff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Secrets /**/**/.env -/**/**/.rmanifest # MINECRAFT ASSETS & LOGS assets diff --git a/.rmanifest b/.rmanifest new file mode 100644 index 0000000..05a07d5 --- /dev/null +++ b/.rmanifest @@ -0,0 +1,88 @@ +class Manifest { + static useLib = ["fs", "auth", "mcl"] + + static id = "hfmc" + static version = "0.1.0" + static pkg_name = "Hispano Furs MC" + static description = "A Minecraft modpack" + static icon = "https://git.ragestudio.net/srgooglo/hfmc-dev/raw/branch/main/icon.png" + static license = "unlicensed" + static author = "HispanoFurs" + static core_minimum_version = "0.16.0" + + static git_remote = "https://git.ragestudio.net/srgooglo/hfmc-dev" + + static mc_version = { + forge: "1.20.1-forge-47.2.17", + number: "1.20.1", + type: "release", + } + + configuration = { + memory: { + min: 2048, + default: 4096, + label: "Assigned Memory", + type: "number", + icon: "MdMemory", + ui_component: "slider", + ui_component_props: { + min: 2048, + max: 8192, + step: 1024, + unit: "MB" + }, + } + } + + authService = { + login: "https://hispanofurs.comty.app/auth", + fetcher: "https://hispanofurs.comty.app/rsauthorize", + getter: "https://hispanofurs_api.comty.app/data", + } + + installSteps = [ + { + type: "git_clone", + url: Manifest.git_remote, + } + ] + + updateSteps = [ + { + type: "git_reset", + from: "HEAD", + } + ] + + async afterInstall() { + const defaultOptionsPath = `${install_path}/default_options.txt` + const finalOptionsPath = `${install_path}/options.txt` + + Lib.fs.copyFileSync(defaultOptionsPath, finalOptionsPath) + } + + async execute() { + let auth = await Lib.auth.get() + + if (!auth) { + return await Lib.auth.request() + } + + auth = await Lib.mcl.auth(auth.assigned_username) + + return await Lib.mcl.launch( + { + javaPath: Vars.java_jre_bin, + root: install_path, + authorization: auth, + memory: { + min: this.configuration.memory.min, + max: Config.get("memory"), + }, + version: Manifest.mc_version, + forge: `${install_path}/forge-installer.jar`, + } + ) + } +} \ No newline at end of file