Inceptum/launcher/src/main/java/io/gitlab/jfronny/inceptum/launcher/system/instance/Mod.java

38 lines
1.2 KiB
Java

package io.gitlab.jfronny.inceptum.launcher.system.instance;
import io.gitlab.jfronny.inceptum.launcher.model.inceptum.ModMeta;
import io.gitlab.jfronny.inceptum.launcher.system.source.ModSource;
import org.jetbrains.annotations.NotNull;
import java.io.IOException;
import java.nio.file.Path;
import java.util.Set;
public abstract class Mod implements Comparable<Mod> {
public abstract String getName();
public abstract String[] getDescription();
public abstract boolean needsInject();
public abstract Path getJarPath();
public abstract Path getMetadataPath();
public abstract void delete() throws IOException;
public abstract Path update(ModSource update) throws IOException;
public abstract Set<Mod> getDependencies();
public abstract Set<Mod> getDependents();
public abstract void removeDependency(Mod dependency) throws IOException;
public abstract void removeDependent(Mod dependent) throws IOException;
public abstract ModMeta getMetadata();
public abstract boolean isEnabled();
@Override
public int compareTo(@NotNull Mod mod) {
return getName().compareTo(mod.getName());
}
@Override
public String toString() {
return getName();
}
}