forked from addonscript/addonscript-spec
Update file schema spec
This commit is contained in:
parent
a91af684e4
commit
354a9505a8
1 changed files with 30 additions and 11 deletions
|
@ -3,8 +3,9 @@
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"id": "modfile",
|
"id": "modfile",
|
||||||
"link": "https://example.com/mymod.jar",
|
"link": ["https://example.com/mymod.jar", "./mymod.jar"],
|
||||||
"flags": [],
|
"flags": [],
|
||||||
|
"maven": {},
|
||||||
"install": [],
|
"install": [],
|
||||||
"sha1": "somesha1checksum",
|
"sha1": "somesha1checksum",
|
||||||
"conditions": {}
|
"conditions": {}
|
||||||
|
@ -17,32 +18,50 @@
|
||||||
|
|
||||||
This is the ID of the file.
|
This is the ID of the file.
|
||||||
It should be written in the `kebab-case` format, meaning lowercase only and using `-` instead of spaces.
|
It should be written in the `kebab-case` format, meaning lowercase only and using `-` instead of spaces.
|
||||||
|
The file ID has to be unique to this addon version.
|
||||||
<!--TODO: error if there are multiple relations with the same id and allow multiple urls-->
|
|
||||||
|
|
||||||
If multiple file objects in the same array have the same ID, they are treated as the same file,
|
|
||||||
which means that the first one of them in the array will be used unless it can't be retrieved from the URL,
|
|
||||||
in which case the next one will be used as a fallback.
|
|
||||||
|
|
||||||
### link
|
### link
|
||||||
|
|
||||||
This is a [link](../link.md), which points to the actual file.
|
This is an array of [links](../link.md), which are pointing to the actual file. All of these links must
|
||||||
|
have the same file type. Since AddonScript treats directories and zip files equally,
|
||||||
|
they can be mixed in the same link array. When downloading the file,
|
||||||
|
the first link in this array should be used with the other links as fallback, if the first doesn't work.
|
||||||
|
If none of the specified links works, the file should be downloaded by it's Maven
|
||||||
|
specifier from one of the specified repository, but only, if a `sha1` hash is specified, so that it can be
|
||||||
|
verified, that the downloaded file is correct.
|
||||||
|
|
||||||
|
## Optional properties
|
||||||
|
|
||||||
### install
|
### install
|
||||||
|
|
||||||
This is an array of [install objects](install.md). They describe how the file should be installed to the game.
|
This is an array of [install objects](install.md). They describe how the file should be installed to the game.
|
||||||
The order in the array corresponds to the order in which the installation steps should be applied.
|
The order in the array corresponds to the order in which the installation steps should be applied.
|
||||||
|
|
||||||
## Optional properties
|
|
||||||
|
|
||||||
### flags
|
### flags
|
||||||
|
|
||||||
This is an array of [flags](../flags.md) for this file. If this property is not present in a file object, the file will use the default flags.
|
This is an array of [flags](../flags.md) for this file. If this property is not present in a file object, the file will use the default flags.
|
||||||
|
|
||||||
### sha1
|
### sha1
|
||||||
|
|
||||||
This is the sha1 checksum of the file. Although the checksum is optional, it is recommended.
|
This is the sha1 checksum of the file. Although the checksum is optional, it is strongly recommended.
|
||||||
|
|
||||||
### conditions
|
### conditions
|
||||||
|
|
||||||
This is a [conditions object](conditions.md). It can only be used, if the [optional flag](../flags.md) was set.
|
This is a [conditions object](conditions.md). It can only be used, if the [optional flag](../flags.md) was set.
|
||||||
|
|
||||||
|
### maven
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"group": "com.example",
|
||||||
|
"artifact": "mymod",
|
||||||
|
"version": "1.0",
|
||||||
|
"qualifier": ""
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Each file has a unique Maven specifier, consisting of a group ID, an artifact ID, a version, a file type and an optional qualifier.
|
||||||
|
By default, the group ID is equal to the addon namespace, the artifact ID to the addon ID, the version to the addon version and
|
||||||
|
the qualifier to file ID. Those values can be overwritten in this object. If the qualifier is set to an empty string, it will be
|
||||||
|
removed from the Maven specifier. The file type is always equal to the file type of the `link`. If the group ID, addon ID and version
|
||||||
|
all have their default values and the qualifier is an emptry string, the file type may not be `json`.
|
||||||
|
|
Loading…
Add table
Reference in a new issue