mirror of
https://github.com/Kir-Antipov/mc-publish.git
synced 2024-11-21 16:00:59 -05:00
Made an interface that represents mods.toml
This commit is contained in:
parent
47e35aa836
commit
3b1b7d40f7
1 changed files with 105 additions and 0 deletions
105
src/loaders/forge/raw-forge-metadata.ts
Normal file
105
src/loaders/forge/raw-forge-metadata.ts
Normal file
|
@ -0,0 +1,105 @@
|
|||
import { ACTION_NAME } from "@/action";
|
||||
import { ForgeDependency } from "./forge-dependency";
|
||||
import { ForgeMod } from "./forge-mod";
|
||||
import { ForgeMetadataCustomPayload } from "./forge-metadata-custom-payload";
|
||||
|
||||
// TODO: Remove the deprecated stuff in v4.0.
|
||||
|
||||
/**
|
||||
* The metadata file for a Forge mod.
|
||||
*/
|
||||
export interface RawForgeMetadata {
|
||||
/**
|
||||
* The language loader for the mod.
|
||||
*
|
||||
* Used to specify an alternative language for the mod, such as Kotlin, if one exists.
|
||||
* The Forge-provided Java loader is `javafml`.
|
||||
*/
|
||||
modLoader: string;
|
||||
|
||||
/**
|
||||
* The acceptable version range of the language loader, expressed as a Maven version spec.
|
||||
*
|
||||
* For the Forge-provided Java loader, the version is the major version of the Forge version.
|
||||
*/
|
||||
loaderVersion: string;
|
||||
|
||||
/**
|
||||
* The license for the mod(s) in this JAR.
|
||||
*
|
||||
* This string may be any valid string, but it is suggested to set the value to be the
|
||||
* name of your license, and/or a link to that license.
|
||||
*/
|
||||
license: string;
|
||||
|
||||
/**
|
||||
* Whether to display this mod's resources as a separate option in the resource pack menu.
|
||||
*
|
||||
* If disabled, the mod's resources will be rolled into the "Mod resources" pack.
|
||||
*
|
||||
* Defaults to `false`.
|
||||
*/
|
||||
showAsResourcePack?: boolean;
|
||||
|
||||
/**
|
||||
* A table of custom substitution properties.
|
||||
*
|
||||
* This is used by `StringSubstitutor` to replace values, using `${file.*}`.
|
||||
*/
|
||||
properties?: Record<string, unknown>;
|
||||
|
||||
/**
|
||||
* A URL for an issues tracker.
|
||||
*
|
||||
* This should never be a blank string, as that will cause an error.
|
||||
*/
|
||||
issueTrackerURL?: string;
|
||||
|
||||
/**
|
||||
* The mod properties, with a section for each mod.
|
||||
*/
|
||||
mods?: ForgeMod[];
|
||||
|
||||
/**
|
||||
* Dependency configurations, with a section for each mod's dependencies.
|
||||
*/
|
||||
dependencies?: Record<string, ForgeDependency[]>;
|
||||
|
||||
/**
|
||||
* Custom action payload.
|
||||
*/
|
||||
[ACTION_NAME]?: ForgeMetadataCustomPayload;
|
||||
|
||||
/**
|
||||
* Custom action payload (legacy).
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* Use [{@link ACTION_NAME}] instead.
|
||||
*/
|
||||
projects?: ForgeMetadataCustomPayload;
|
||||
|
||||
/**
|
||||
* Custom action payload (legacy).
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* Use [{@link ACTION_NAME}] instead.
|
||||
*/
|
||||
custom?: {
|
||||
/**
|
||||
* Custom action payload.
|
||||
*/
|
||||
[ACTION_NAME]?: ForgeMetadataCustomPayload;
|
||||
|
||||
/**
|
||||
* Custom action payload.
|
||||
*/
|
||||
projects?: ForgeMetadataCustomPayload;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Name of the `mods.toml` file, that contains raw Forge metadata.
|
||||
*/
|
||||
export const MODS_TOML = "META-INF/mods.toml";
|
Loading…
Reference in a new issue