You've already forked AstralRinth
forked from didirus/AstralRinth
f52e777379
* Initial bug fixes * fix compile error on non-mac * Fix even more bugs * Fix more * fix more * fix build * fix build * working basic * removed zip * working functions * merge fixes * fixed loadintg bar bug * changed to one layer deep * forge version numbers * improvements + refactoring * renamed things to fit plugin * fixed bugs * removed println * overrides dont include mrpack * merge * fixes * fixes * fixed deletion * merge errors * force sync before export * removed testing * missed line * removed console log * mac error reverted * incoreclty named helper * added to new register method * review changes * minor changes * moved create pack * renamed function --------- Co-authored-by: Jai A <jaiagr+gpg@pm.me>
60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
import { add_project_from_version as installMod, check_installed } from '@/helpers/profile'
|
|
import { useFetch } from '@/helpers/fetch.js'
|
|
import { handleError } from '@/store/notifications.js'
|
|
import { invoke } from '@tauri-apps/api/tauri'
|
|
|
|
export async function isDev() {
|
|
return await invoke('is_dev')
|
|
}
|
|
|
|
export async function showInFolder(path) {
|
|
return await invoke('plugin:utils|show_in_folder', { path })
|
|
}
|
|
|
|
export const releaseColor = (releaseType) => {
|
|
switch (releaseType) {
|
|
case 'release':
|
|
return 'green'
|
|
case 'beta':
|
|
return 'orange'
|
|
case 'alpha':
|
|
return 'red'
|
|
default:
|
|
return ''
|
|
}
|
|
}
|
|
|
|
export const installVersionDependencies = async (profile, version) => {
|
|
for (const dep of version.dependencies) {
|
|
if (dep.dependency_type !== 'required') continue
|
|
// disallow fabric api install on quilt
|
|
if (dep.project_id === 'P7dR8mSH' && profile.metadata.loader === 'quilt') continue
|
|
if (dep.version_id) {
|
|
if (
|
|
dep.project_id &&
|
|
(await check_installed(profile.path, dep.project_id).catch(handleError))
|
|
)
|
|
continue
|
|
await installMod(profile.path, dep.version_id)
|
|
} else {
|
|
if (
|
|
dep.project_id &&
|
|
(await check_installed(profile.path, dep.project_id).catch(handleError))
|
|
)
|
|
continue
|
|
const depVersions = await useFetch(
|
|
`https://api.modrinth.com/v2/project/${dep.project_id}/version`,
|
|
'dependency versions'
|
|
)
|
|
const latest = depVersions.find(
|
|
(v) =>
|
|
v.game_versions.includes(profile.metadata.game_version) &&
|
|
v.loaders.includes(profile.metadata.loader)
|
|
)
|
|
if (latest) {
|
|
await installMod(profile.path, latest.id).catch(handleError)
|
|
}
|
|
}
|
|
}
|
|
}
|