class PreAkiModLoader
implements IModLoader
import { PreAkiModLoader } from "https://deno.land/x/sptaki@1.2.0/loaders/PreAkiModLoader.d.ts";
Constructors
new
PreAkiModLoader(logger: ILogger,
vfs: VFS,
jsonUtil: JsonUtil,
modCompilerService: ModCompilerService,
localisationService: LocalisationService,
configServer: ConfigServer,
modLoadOrder: ModLoadOrder,
modTypeCheck: ModTypeCheck,
Properties
protected
akiConfig: ICoreConfigprotected
configServer: ConfigServerprotected
container: DependencyContainerprotected
imported: Record<string, IPackageJsonData>protected
jsonUtil: JsonUtilprotected
localisationService: LocalisationServiceprotected
logger: ILoggerprotected
modCompilerService: ModCompilerServiceprotected
modLoadOrder: ModLoadOrderprotected
modTypeCheck: ModTypeCheckprotected
vfs: VFSMethods
protected
addModAsync(mod: string, pkg: IPackageJsonData): Promise<void>Compile mod and add into class property "imported"
protected
areModDependenciesFulfilled(pkg: IPackageJsonData, loadedMods: Map<string, IPackageJsonData>): booleanprotected
autoInstallDependencies(modPath: string, pkg: IPackageJsonData): voidprotected
checkForDuplicateMods(modPackageData: Map<string, IPackageJsonData>): voidCheck for duplicate mods loaded, show error if any
protected
executeModsAsync(): Promise<void>Execute each mod found in this.imported
protected
getModsPackageData(mods: string[]): Map<string, IPackageJsonData>Get packageJson data for mods
protected
getValidMods(mods: string[]): string[]Returns an array of valid mods.
protected
importModsAsync(): Promise<void>protected
isModCombatibleWithAki(mod: IPackageJsonData): booleanIs the passed in mod compatible with the running server version
protected
isModCompatible(mod: IPackageJsonData, loadedMods: Map<string, IPackageJsonData>): booleanprotected
shouldSkipMod(pkg: IPackageJsonData): booleanChecks if a given mod should be loaded or skipped.
protected
sortMods(prev: string,
next: string,
missingFromOrderJSON: Record<string, boolean>,
protected
validMod(modName: string): booleanValidate a mod passes a number of checks
getImportedModDetails(): Record<string, IPackageJsonData>
getImportedModsNames(): string[]
Returns a list of mods with preserved load order
getModPath(mod: string): string
getProfileModsGroupedByModName(profileMods: ModDetails[]): ModDetails[]
load(container: DependencyContainer): Promise<void>
sortModsLoadOrder(): string[]
Read loadorder.json (create if doesnt exist) and return sorted list of mods