PluginIdentifier.java 937 Bytes
Newer Older
KingRainbow44's avatar
KingRainbow44 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
package emu.grasscutter.plugin;

// TODO: Potentially replace with Lombok?
public final class PluginIdentifier {
    public final String name, description, version;
    public final String[] authors;
    
    public PluginIdentifier(
            String name, String description, String version,
            String[] authors
    ) {
        this.name = name;
        this.description = description;
        this.version = version;
        this.authors = authors;
    }

    /**
     * Converts a {@link PluginConfig} into a {@link PluginIdentifier}.
     */
    public static PluginIdentifier fromPluginConfig(PluginConfig config) {
        if(!config.validate())
            throw new IllegalArgumentException("A valid plugin config is required to convert into a plugin identifier.");
        return new PluginIdentifier(
                config.name, config.description, config.version,
                config.authors
        );
    }
}