Coder Social home page Coder Social logo

modanalyzer's Introduction

ModAnalyzer - a tool for analyzing Minecraft mods and resolving conflicts

Got a bunch of mods you want to use together, but you keep getting ID conflicts? Want to know what content is in a mod before installing it, or browse the available mods for the kind of content you're looking for? ModAnalyzer might be able to help.

ModAnalyze is split into several parts:

  • a Minecraft mod to load along with the mods you want to analyze
  • a driver script modanalyzer.py to mass analyze mods and filter the results
  • a utility script modlist.py to view a summary of the analysis results by ID
  • finally, modresolve.py to install the mods and automatically edit configs to resolve conflicts

Usage:

  1. download a ton of mods, and place them in the "allmods" folder
  2. run modanalyze.py and it should setup a test server and analyze each mod, placing gathered results in "data" and "configs"
  3. run modresolve.py to configure a test server with all the mods installed in "temp-server"

Conflict resolution is not 100%, since some mods configuration is not easily programmatically configurable (or at all).

The script will show you what IDs could not be changed, and you can edit them manually. Copy the contents of "temp-server" to your real server, make the edits, then copy the same contents to the client, making any needed changes or additions.

If there are too many irresolvable conflicts, you can edit "priority.txt" and reorder the mods, higher first, to take precedence when choosing which mod to move. By default, mods with more content will have higher priority. Note that re-running modresolve.py will erase the mods and configs in "temp-server", regenerating from scratch.

To use only a subset of mods in your allmods folder, edit "include.txt". This file is generated on first run of modresolve, including all mods by default, but you can change it to include only the mods you want, as an alternative to deleting mods from allmods.

To use preferred block and item IDs from another installation, save an NEI dump (Not Enough Items > Options > Block/Item ID Settings > Dump ID Map Now) in the root directory before running modresolve.

Examples:

  • AAConfigPack - generated with ModAnalyze (few manual changes), 83 mods on Minecraft 1.5.1

Released as open source under the BSD license, redistribution, changes, forks, pull requests, etc. welcome.

Build Status

modanalyzer's People

Contributors

agaricusb avatar odininon avatar

Stargazers

 avatar 曹文忠 avatar  avatar Conrad Constantine avatar Pedro Cunha avatar Jerzerak avatar Nicholas Marshall avatar  avatar vemacs avatar Lun avatar  avatar

Watchers

James Cloos avatar Nicholas Marshall avatar  avatar  avatar

modanalyzer's Issues

NEI Doesn't get CCC when loaded as a dependency of Chargepads

At least that's what I presume this error means.

2013-04-13 23:30:49 [INFO] [STDERR] Exception in thread "main" java.lang.RuntimeException: java.lang.NoClassDefFoundError: codechicken/core/asm/CodeChickenCorePlugin
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.FMLRelauncher.setupHome(FMLRelauncher.java:192)
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.FMLRelauncher.relaunchServer(FMLRelauncher.java:147)
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.FMLRelauncher.handleServerRelaunch(FMLRelauncher.java:45)
2013-04-13 23:30:49 [INFO] [STDERR]     at net.minecraft.server.MinecraftServer.main(MinecraftServer.java:1354)
2013-04-13 23:30:49 [INFO] [STDERR] Caused by: java.lang.NoClassDefFoundError: codechicken/core/asm/CodeChickenCorePlugin
2013-04-13 23:30:49 [INFO] [STDERR]     at codechicken.nei.asm.NEICorePlugin.getASMTransformerClass(NEICorePlugin.java:24)
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.RelaunchLibraryManager.handleLaunch(RelaunchLibraryManager.java:267)
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.FMLRelauncher.setupHome(FMLRelauncher.java:172)
2013-04-13 23:30:49 [INFO] [STDERR]     ... 3 more
2013-04-13 23:30:49 [INFO] [STDERR] Caused by: java.lang.ClassNotFoundException: codechicken.core.asm.CodeChickenCorePlugin
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:238)
2013-04-13 23:30:49 [INFO] [STDERR]     at java.lang.ClassLoader.loadClass(Unknown Source)
2013-04-13 23:30:49 [INFO] [STDERR]     at java.lang.ClassLoader.loadClass(Unknown Source)
2013-04-13 23:30:49 [INFO] [STDERR]     ... 6 more
2013-04-13 23:30:49 [INFO] [STDERR] Caused by: java.lang.NullPointerException
2013-04-13 23:30:49 [INFO] [STDERR]     at cpw.mods.fml.relauncher.RelaunchClassLoader.findClass(RelaunchClassLoader.java:227)
2013-04-13 23:30:49 [INFO] [STDERR]     ... 8 more

allmods

NoSuchFieldError with ElectricExpansion

Else Kaboom!

allmods

  • BasicComponents_v1.3.1.359.jar
  • ElectricExpansion_v2.1.0.27.jar

Obviously not a fault of ModAnalyzer, but maybe you want a special case?

Infinite loop with MineFactoryReloaded

When the script reaches MFR, it correctly fetches the PowerCrystalsCore, starts the server, shows the correct output, terminates the server normally, and then repeats the process with MFR & PCC forever.

and all along, nothing for either MFR or PCC is ever created in configs/data.

allmods
PowerCrystalsCore-1.1.1-75.jar
MineFactoryReloaded-2.4.1B1-482.jar

temp-server: ForgeModLoader-server-0.log

OpenCCSensors error

Maybe the mention of modanalyzer is coincidental?

java.lang.NullPointerException
    at openccsensors.common.item.ItemSensorCard.func_77667_c(ItemSensorCard.java:45)
    at net.minecraft.item.Item.func_77657_g(Item.java:463)
    at agaricus.mods.modanalyzer.ModAnalyzer.dumpItems(ModAnalyzer.java:173)
    at agaricus.mods.modanalyzer.ModAnalyzer.tickEnd(ModAnalyzer.java:67)
    at cpw.mods.fml.common.SingleIntervalHandler.tickEnd(SingleIntervalHandler.java:34)
    at cpw.mods.fml.common.FMLCommonHandler.tickEnd(FMLCommonHandler.java:141)
    at cpw.mods.fml.common.FMLCommonHandler.onPostServerTick(FMLCommonHandler.java:274)
    at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:605)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:468)
    at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)

allmods
OpenCCSensors-0.1.5c.jar
ComputerCraft1.52.zip

ThermalExpansion can't find CofHCore?

Mod allmods\ThermalExpansion-2.3.0.b5.zip is missing dependency: MinecraftForge,CoFHCore. Cannot continue

allmods contains

  • ThermalExpansion-2.3.0.b5.zip
  • CoFHCore-1.5.1.b5.jar

MekanismGenerators/Tools not loading Mekanism

Using v5.5.3

2013-04-13 15:40:03 [SEVERE] [ForgeModLoader] The mod MekanismGenerators (MekanismGenerators) requires mods [Mekanism] to be available
2013-04-13 15:40:03 [INFO] [STDERR] cpw.mods.fml.common.MissingModsException
2013-04-13 15:40:03 [INFO] [STDERR]     at cpw.mods.fml.common.Loader.sortModList(Loader.java:232)
2013-04-13 15:40:03 [INFO] [STDERR]     at cpw.mods.fml.common.Loader.loadMods(Loader.java:485)
2013-04-13 15:40:03 [INFO] [STDERR]     at cpw.mods.fml.server.FMLServerHandler.beginServerLoading(FMLServerHandler.java:85)
2013-04-13 15:40:03 [INFO] [STDERR]     at cpw.mods.fml.common.FMLCommonHandler.onServerStart(FMLCommonHandler.java:350)
2013-04-13 15:40:03 [INFO] [STDERR]     at net.minecraft.server.dedicated.DedicatedServer.func_71197_b(DedicatedServer.java:69)
2013-04-13 15:40:03 [INFO] [STDERR]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:429)
2013-04-13 15:40:03 [INFO] [STDERR]     at net.minecraft.server.ThreadMinecraftServer.run(SourceFile:573)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.