diff --git a/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java index 67c06c341..0fb8eb10a 100644 --- a/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java +++ b/src/main/java/net/minecraftforge/fml/common/FMLModContainer.java @@ -179,6 +179,10 @@ private ILanguageAdapter getLanguageAdapter() return languageAdapter; } + public boolean isFingerprintNotPresent() { + return fingerprintNotPresent; + } + @Override public String getModId() { diff --git a/src/main/java/net/minecraftforge/fml/common/LoadController.java b/src/main/java/net/minecraftforge/fml/common/LoadController.java index b44378f1f..83b76b2dd 100644 --- a/src/main/java/net/minecraftforge/fml/common/LoadController.java +++ b/src/main/java/net/minecraftforge/fml/common/LoadController.java @@ -367,16 +367,16 @@ public void errorOccurred(ModContainer modContainer, Throwable exception) public void printModStates(StringBuilder ret) { - ret.append("\n\tStates:"); + ret.append("\nStates:"); for (ModState state : ModState.values()) ret.append(" '").append(state.getMarker()).append("' = ").append(state.toString()); + Set potentiallyTamperedMod = Sets.newHashSet(); TextTable table = new TextTable(Lists.newArrayList( TextTable.column("State"), TextTable.column("ID"), TextTable.column("Version"), - TextTable.column("Source"), - TextTable.column("Signature")) + TextTable.column("Source")) ); for (ModContainer mc : loader.getModList()) { @@ -384,15 +384,27 @@ public void printModStates(StringBuilder ret) modStates.get(mc.getModId()).stream().map(ModState::getMarker).reduce("", (a, b) -> a + b), mc.getModId(), mc.getVersion(), - mc.getSource().getName(), - mc.getSigningCertificate() != null ? CertificateHelper.getFingerprint(mc.getSigningCertificate()) : "None" + mc.getSource().getName() ); + + if (mc instanceof FMLModContainer fmc && fmc.isFingerprintNotPresent()) + potentiallyTamperedMod.add(fmc.getSource().getName()); } - ret.append("\n"); ret.append("\n\t"); table.append(ret, "\n\t"); ret.append("\n"); + + if (potentiallyTamperedMod.isEmpty()) + return; + + ret.append("\nPotentially tampered mods:"); + for (String s : potentiallyTamperedMod) + { + ret.append("\n\t"); + ret.append(s); + } + ret.append("\n"); } public List getActiveModList()