mirror of
https://github.com/Grasscutters/Cultivation.git
synced 2025-12-15 00:24:45 +01:00
72 lines
1.7 KiB
TypeScript
72 lines
1.7 KiB
TypeScript
import { invoke } from '@tauri-apps/api'
|
|
import { getConfigOption } from './configuration'
|
|
|
|
export async function getModsFolder() {
|
|
const migotoPath = await getConfigOption('migoto_path')
|
|
|
|
if (!migotoPath) return null
|
|
|
|
// Remove exe from path
|
|
const pathArr = migotoPath.replace(/\\/g, '/').split('/')
|
|
pathArr.pop()
|
|
|
|
return pathArr.join('/') + '/Mods/'
|
|
}
|
|
|
|
export async function disableMod(modId: string) {
|
|
const path = (await getModsFolder()) + modId
|
|
const pathExists = await invoke('dir_exists', {
|
|
path,
|
|
})
|
|
|
|
if (!pathExists) return console.log("Path doesn't exist")
|
|
|
|
const modName = path.replace(/\\/g, '/').split('/').pop()
|
|
|
|
await invoke('rename', {
|
|
path,
|
|
newName: `DISABLED_${modName}`,
|
|
})
|
|
}
|
|
|
|
export async function enableMod(modId: string) {
|
|
const path = (await getModsFolder()) + `DISABLED_${modId}`
|
|
const modName = path.replace(/\\/g, '/').split('/').pop()
|
|
const pathExists = await invoke('dir_exists', {
|
|
path,
|
|
})
|
|
|
|
if (!pathExists) return console.log("Path doesn't exist")
|
|
|
|
if (!modName?.includes('DISABLED_')) return
|
|
|
|
const newName = modName.replace('DISABLED_', '')
|
|
|
|
await invoke('rename', {
|
|
path,
|
|
newName,
|
|
})
|
|
}
|
|
|
|
export async function getModFolderName(modId: string) {
|
|
const modsFolder = await getModsFolder()
|
|
|
|
if (!modsFolder) return null
|
|
|
|
const modEnabled = await invoke('dir_exists', {
|
|
path: modsFolder + modId,
|
|
})
|
|
const modDisabled = await invoke('dir_exists', {
|
|
path: modsFolder + 'DISABLED_' + modId,
|
|
})
|
|
|
|
if (!modEnabled && !modDisabled) return null
|
|
|
|
if (modEnabled) return modId
|
|
if (modDisabled) return 'DISABLED_' + modId
|
|
}
|
|
|
|
export async function modIsEnabled(modId: string) {
|
|
return !(await getModFolderName(modId))?.includes('DISABLED_')
|
|
}
|