Add support for reading mods.toml file from 1.13+ forge mods.

This commit is contained in:
Daniel Scalzi
2020-01-19 11:59:11 -05:00
parent 4d342b7b0a
commit 1ff02edc71
15 changed files with 334 additions and 135 deletions

View File

@@ -1,25 +0,0 @@
import { Forge113Adapter } from './forge/adapter/forge113.resolver'
import { Forge17Adapter } from './forge/adapter/forge17.resolver'
import { ForgeResolver } from './forge/forge.resolver'
export class ResolverRegistry {
public static readonly FORGE_ADAPTER_IMPL = [
Forge17Adapter,
Forge113Adapter
]
public static getForgeResolver(
minecraftVersion: string,
forgeVersion: string,
absoluteRoot: string,
relativeRoot: string,
baseURL: string): ForgeResolver | undefined {
for (const impl of ResolverRegistry.FORGE_ADAPTER_IMPL) {
if (impl.isForVersion(minecraftVersion)) {
return new impl(absoluteRoot, relativeRoot, baseURL, minecraftVersion, forgeVersion)
}
}
}
}

View File

@@ -1,16 +1,8 @@
import { Module } from '../model/spec/module'
import { VersionUtil } from '../util/versionutil'
import { VersionSegmented } from '../util/VersionSegmented'
import { Resolver } from './resolver'
export abstract class BaseResolver implements Resolver {
protected static isVersionAcceptable(version: string, acceptable: number[]): boolean {
const versionComponents = VersionUtil.getMinecraftVersionComponents(version)
if (versionComponents != null && versionComponents.major === 1) {
return acceptable.find((element) => versionComponents.minor === element) != null
}
return false
}
export abstract class BaseResolver implements Resolver, VersionSegmented {
constructor(
protected absoluteRoot: string,

View File

@@ -8,12 +8,13 @@ import { ForgeRepoStructure } from '../../../model/struct/repo/forgerepo.struct'
import { LibRepoStructure } from '../../../model/struct/repo/librepo.struct'
import { JavaUtil } from '../../../util/javautil'
import { MavenUtil } from '../../../util/maven'
import { VersionUtil } from '../../../util/versionutil'
import { ForgeResolver } from '../forge.resolver'
export class Forge113Adapter extends ForgeResolver {
public static isForVersion(version: string) {
return Forge113Adapter.isVersionAcceptable(version, [13, 14, 15])
return VersionUtil.isVersionAcceptable(version, [13, 14, 15])
}
constructor(

View File

@@ -8,12 +8,13 @@ import { Type } from '../../../model/spec/type'
import { ForgeRepoStructure } from '../../../model/struct/repo/forgerepo.struct'
import { MavenUtil } from '../../../util/maven'
import { PackXZExtractWrapper } from '../../../util/PackXZExtractWrapper'
import { VersionUtil } from '../../../util/versionutil'
import { ForgeResolver } from '../forge.resolver'
export class Forge17Adapter extends ForgeResolver {
public static isForVersion(version: string) {
return Forge17Adapter.isVersionAcceptable(version, [7, 8, 9, 10, 11, 12])
return VersionUtil.isVersionAcceptable(version, [7, 8, 9, 10, 11, 12])
}
constructor(