Skip to content
This repository has been archived by the owner on May 26, 2018. It is now read-only.

Add new management functionality #529

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/main/java/cpw/mods/fml/common/Loader.java
Expand Up @@ -149,6 +149,7 @@ public class Loader

private static File minecraftDir;
private static List<String> injectedContainers;
private List<String> blacklist;
private ImmutableMap<String, String> fmlBrandingProperties;
private File forcedModFile;
private ModDiscoverer discoverer;
Expand Down Expand Up @@ -187,6 +188,12 @@ private Loader()

minecraft = new MinecraftDummyContainer(MC_VERSION);
mcp = new MCPDummyContainer(MetadataCollection.from(getClass().getResourceAsStream("/mcpmod.info"), "MCP").getMetadataForId("mcp", null));
blacklist = new ArrayList();
blacklist.add("gregtech");
blacklist.add("reika");
blacklist.add("redpower");
blacklist.add("micdoodle8");
blacklist.add("machinemuse");
}

/**
Expand Down Expand Up @@ -346,10 +353,32 @@ private ModDiscoverer identifyMods()

mods.addAll(discoverer.identifyMods());
identifyDuplicates(mods);
removeBlockedMods(mods);
namedMods = Maps.uniqueIndex(mods, new ModIdFunction());
FMLLog.info("Forge Mod Loader has identified %d mod%s to load", mods.size(), mods.size() != 1 ? "s" : "");
return discoverer;
}

private void removeBlockedMods(List<ModContainer> mods)
{
Iterator<ModContainer> iterator = mods.iterator();
while (iterator.hasNext())
{
ModContainer mc = iterator.next();
if (mc instanceof FMLModContainer)
{
Class clazz = ((FMLModContainer).getMod()).getClass();
for (String entry : blacklist)
{
if (clazz.getName().toLowerCase().contains(entry)
{
iterator.remove();
FMLLog.info("Removing a blocked mod %s", mc.getModId());
}
}
}
}
}

private class ModIdComparator implements Comparator<ModContainer>
{
Expand Down