diff options
| author | Martin Robertz <dream-master@gmx.net> | 2022-08-19 14:13:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-19 14:13:07 +0200 |
| commit | e047655eac4bf51bb5f72f36b8d1c5795cb4c817 (patch) | |
| tree | c8cdd43785cc1bf27bdda56b0ce13ead64e3d6bc /src/main/java/kubatech/api/utils/ModUtils.java | |
| parent | 243045a91ef156d83c534ab4f4a7bef1b6029f98 (diff) | |
| parent | 40590e12a74d38160229ac714e852a64705bc1b5 (diff) | |
| download | GT5-Unofficial-e047655eac4bf51bb5f72f36b8d1c5795cb4c817.tar.gz GT5-Unofficial-e047655eac4bf51bb5f72f36b8d1c5795cb4c817.tar.bz2 GT5-Unofficial-e047655eac4bf51bb5f72f36b8d1c5795cb4c817.zip | |
Merge branch 'master' into structure
Diffstat (limited to 'src/main/java/kubatech/api/utils/ModUtils.java')
| -rw-r--r-- | src/main/java/kubatech/api/utils/ModUtils.java | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/main/java/kubatech/api/utils/ModUtils.java b/src/main/java/kubatech/api/utils/ModUtils.java index 0f598dcfa8..53f0086e25 100644 --- a/src/main/java/kubatech/api/utils/ModUtils.java +++ b/src/main/java/kubatech/api/utils/ModUtils.java @@ -20,9 +20,11 @@ package kubatech.api.utils; import cpw.mods.fml.common.Loader; -import java.util.AbstractMap; -import java.util.HashMap; -import java.util.Map; +import cpw.mods.fml.common.ModContainer; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.util.*; +import javax.xml.bind.DatatypeConverter; import net.minecraft.launchwrapper.Launch; public class ModUtils { @@ -47,4 +49,29 @@ public class ModUtils { .orElse(emptyEntry) .getValue(); } + + private static String modListVersion = null; + + public static String getModListVersion() { + if (modListVersion != null) return modListVersion; + ArrayList<ModContainer> modlist = (ArrayList<ModContainer>) + ((ArrayList<ModContainer>) Loader.instance().getActiveModList()).clone(); + String sortedList = modlist.stream() + .filter(m -> m.getMod() != null) + .sorted(Comparator.comparing(ModContainer::getModId)) + .collect( + StringBuilder::new, + (a, b) -> a.append(b.getModId()).append(b.getVersion()), + (a, b) -> a.append(", ").append(b)) + .toString(); + try { + MessageDigest md = MessageDigest.getInstance("MD5"); + modListVersion = DatatypeConverter.printHexBinary(md.digest(sortedList.getBytes(StandardCharsets.UTF_8))) + .toUpperCase(); + return modListVersion; + } catch (Exception e) { + modListVersion = sortedList; + return sortedList; + } + } } |
