fix: ignore imported versions

This commit is contained in:
DecDuck
2025-11-20 11:25:14 +11:00
parent beb824c8d9
commit d71bf7cb1a
4 changed files with 7 additions and 3 deletions

View File

@ -105,7 +105,7 @@ class LibraryManager {
if (!game) return undefined;
try {
const versions = await provider.listVersions(libraryPath);
const versions = await provider.listVersions(libraryPath, game.versions.map((v) => v.versionName));
const unimportedVersions = versions.filter(
(e) =>
game.versions.findIndex((v) => v.versionName == e) == -1 &&

View File

@ -24,7 +24,7 @@ export abstract class LibraryProvider<CFG> {
* @param game folder name of the game to list versions for
* @returns list of version folder names
*/
abstract listVersions(game: string): Promise<string[]>;
abstract listVersions(game: string, existingPaths?: string[]): Promise<string[]>;
/**
* @param game folder name of the game

View File

@ -54,11 +54,12 @@ export class FilesystemProvider
return folderDirs;
}
async listVersions(game: string): Promise<string[]> {
async listVersions(game: string, ignoredVersions?: string[]): Promise<string[]> {
const gameDir = path.join(this.config.baseDir, game);
if (!fs.existsSync(gameDir)) throw new GameNotFoundError();
const versionDirs = fs.readdirSync(gameDir);
const validVersionDirs = versionDirs.filter((e) => {
if(ignoredVersions && ignoredVersions.includes(e)) return false
const fullDir = path.join(this.config.baseDir, game, e);
return DROPLET_HANDLER.hasBackendForPath(fullDir);
});