Skip to content

Instantly share code, notes, and snippets.

@Vazkii
Created May 30, 2013 20:32
Show Gist options
  • Save Vazkii/5680948 to your computer and use it in GitHub Desktop.
Save Vazkii/5680948 to your computer and use it in GitHub Desktop.
The Mod Lister mod, it lists the mods you are using, because reporting bugs with mods is good.
package vazkii.modlister;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import org.lwjgl.Sys;
import org.lwjgl.opengl.Display;
import cpw.mods.fml.common.FMLLog;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.PostInit;
import cpw.mods.fml.common.Mod.PreInit;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
@Mod(modid = ModLister.MOD_ID, name = ModLister.MOD_NAME, version = ModLister.VERSION, dependencies = ModLister.DEPENDENCIES)
public final class ModLister {
public static final String MOD_ID = "ModLister";
public static final String MOD_NAME = "Mod Lister";
public static final String VERSION = "1.0";
public static final String DEPENDENCIES = "after:*";
File mcDir;
@PreInit
public void preInit(FMLPreInitializationEvent event) {
mcDir = event.getModConfigurationDirectory().getParentFile();
}
@PostInit
public void postInit(FMLPostInitializationEvent event) {
List<String> lines = new ArrayList();
for(ModContainer mod : Loader.instance().getModList())
lines.add(createLine(mod));
try {
File file = new File(mcDir, "Mod List.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
for(String s : lines)
writer.write(s);
writer.write("\r");
writer.write("Mod List generated by ModLister.\r");
writer.write("System Time: " + new SimpleDateFormat("HH:mm MM/dd/yyyy").format(new Date()) + "\r");
writer.write("Minecraft " + Display.getTitle().replaceAll("Minecraft ", "") + "\r");
writer.write("OS: " + System.getProperty("os.name") + "\r");
writer.write("Java: " + System.getProperty("java.version") + "\r");
writer.write("LWJGL: " + Sys.getVersion());
writer.close();
if(!file.exists())
file.createNewFile();
FMLLog.log(Level.INFO, "ModLister wrote mod data properly.");
} catch(IOException e) {
FMLLog.log(Level.WARNING, "ModLister failed to write mod data!");
e.printStackTrace();
}
}
private String createLine(ModContainer container) {
StringBuilder builder = new StringBuilder();
builder.append(container.getName());
builder.append(" (");
builder.append(container.getModId());
builder.append(") | Version: ");
builder.append(container.getVersion());
builder.append(" | Loaded From ");
builder.append(container.getSource().getName());
builder.append(" on ");
builder.append(container.getSource() == null || container.getSource().getParentFile() == null ? "N/A" : container.getSource().getParentFile().getName());
builder.append(" | Website: ");
builder.append(container.getMetadata().url.isEmpty() ? "N/A" : container.getMetadata().url);
builder.append("\r");
return builder.toString();
}
}
@ictrobot
Copy link

All in one file :D

@X00LA
Copy link

X00LA commented Sep 4, 2014

Hi,

I wanted to use it with 1.7.10 but it looks like it does'nt work. There's no output and the Mod would'nt be loaded.

Can you please update this little helpful file?

Big thank's!

X00LA

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment