Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mod info Manifest #199

Open
RX14 opened this issue Sep 19, 2015 · 5 comments
Open

Mod info Manifest #199

RX14 opened this issue Sep 19, 2015 · 5 comments

Comments

@RX14
Copy link
Contributor

RX14 commented Sep 19, 2015

We should have a manifest file for each mod, which allows external tools such as MultiMC to load metadata about the mod without reading class files.

This metadata should be passed on to forge etc. too, because there is currently no way to add a mod logo for example.

I think should encode this in META-INF/MANIFEST.MF, with NovaGradle encoding the data from the build file:

nova {
    mod {
        version = "1.0.1"
        logofile = "mod.jpg"
        // etc...
    }
}
@ghost
Copy link

ghost commented Sep 19, 2015

Are you using hocon in your example?

@RX14
Copy link
Contributor Author

RX14 commented Sep 19, 2015

No, it's a snippet from build.gradle.

@RX14
Copy link
Contributor Author

RX14 commented Sep 19, 2015

NovaGradle will read the metadata in the build.gradle, and add it to the manifest in K: v form such as (for the example above):

NOVA-Mod-Version: 1.0.1
NOVA-Mod-Logofile: mod.jpg
# etc...

@gjgfuj
Copy link
Contributor

gjgfuj commented Sep 21, 2015

Sounds like a good plan. +1
On 19 Sep 2015 23:58, "Chris Hobbs" [email protected] wrote:

NovaGradle will read the metadata in the build.gradle, and add it to the
manifest in K: v form such as (for the example above):

NOVA-Mod-Version: 1.0.1
NOVA-Mod-Logofile: mod.jpg

etc...


Reply to this email directly or view it on GitHub
#199 (comment)
.

@ExE-Boss
Copy link
Member

ExE-Boss commented Feb 26, 2017

We could also use a JSON file in the root directory (or in the META-INF directory) called novamod.info formatted as such:

{
    "version": "1",
    "mods": [{
        "id": "mod_id",
        "name": "Mod Name",
        "version": "1.0",
        "novaVersion": "0.1.0",
        "description": "Description here.\nWith multi-line support.",
        "logoFile": "/assets/mod_id/textures/logo.png",
        "dependencies": [
            "[email protected]",
            "[email protected]"
        ],
        "authors": ["Your name here"]
    }]
}

We could add additional information to the file later.
dependencies get merged with the dependencies defined in the @Mod annotation, with the newest version overriding older versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants