-
-
Save coolsquid/a0ea0b4fa46123c04993 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 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.EventHandler; | |
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; | |
@EventHandler | |
public void preInit(FMLPreInitializationEvent event) { | |
mcDir = event.getModConfigurationDirectory().getParentFile(); | |
} | |
@EventHandler | |
public void postInit(FMLPostInitializationEvent event) { | |
List<String> lines = new ArrayList<String>(); | |
for(ModContainer mod : Loader.instance().getModList()) | |
lines.add(createLine(mod)); | |
try { | |
File file = new File(mcDir, "ModList.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.warning("ModLister wrote mod data properly."); | |
} catch(IOException e) { | |
FMLLog.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(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment