2022-03-10 23:09:23 +01:00
|
|
|
package com.falsepattern.endlessids.mixin.plugin;
|
|
|
|
|
|
|
|
|
|
import com.google.common.io.Files;
|
|
|
|
|
import lombok.val;
|
|
|
|
|
|
|
|
|
|
import java.nio.file.Path;
|
|
|
|
|
|
|
|
|
|
public enum TargetedMod {
|
|
|
|
|
|
2022-03-22 10:31:38 +01:00
|
|
|
VANILLA("Minecraft", "", "", true),
|
2022-03-22 11:42:57 +01:00
|
|
|
UBC("Underground Biomes Constructs", "undergroundbiomesconstructs-", "", false),
|
2022-03-22 12:23:25 +01:00
|
|
|
COFHLIB("CoFH Lib", "cofhlib-", "", false),
|
2022-03-22 12:46:52 +01:00
|
|
|
DRAGONAPI("DragonAPI", "dragonapi", "", false),
|
|
|
|
|
MFQM("More Fun Quicksand Mod", "morefunquicksandmod-", "", false);
|
2022-03-10 23:09:23 +01:00
|
|
|
|
|
|
|
|
public final String modName;
|
|
|
|
|
public final String jarNamePrefixLowercase;
|
|
|
|
|
public final String jarNameContainsLowercase;
|
|
|
|
|
|
|
|
|
|
public final boolean loadInDevelopment;
|
|
|
|
|
|
|
|
|
|
TargetedMod(String modName, String jarNamePrefix, String jarNameContains, boolean loadInDevelopment) {
|
|
|
|
|
this.modName = modName;
|
|
|
|
|
this.jarNamePrefixLowercase = jarNamePrefix.toLowerCase();
|
|
|
|
|
this.jarNameContainsLowercase = jarNameContains.toLowerCase();
|
|
|
|
|
this.loadInDevelopment = loadInDevelopment;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("UnstableApiUsage")
|
|
|
|
|
public boolean isMatchingJar(Path path) {
|
|
|
|
|
val pathString = path.toString();
|
|
|
|
|
val nameLowerCase = Files.getNameWithoutExtension(pathString).toLowerCase();
|
|
|
|
|
val fileExtension = Files.getFileExtension(pathString);
|
|
|
|
|
|
|
|
|
|
return "jar".equals(fileExtension) && nameLowerCase.startsWith(jarNamePrefixLowercase) && nameLowerCase.contains(jarNameContainsLowercase);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public String toString() {
|
|
|
|
|
return "TargetedMod{" +
|
|
|
|
|
"modName='" + modName + '\'' +
|
|
|
|
|
", jarNamePrefixLowercase='" + jarNamePrefixLowercase + '\'' +
|
|
|
|
|
'}';
|
|
|
|
|
}
|
|
|
|
|
}
|