Да, извините за "копирование" мода (Хотя я его писал сам, но, чтобы потом не было претензий он Дракона, типа "украл идею моего мода").
Сам мод написан на Java.
Плюс этого мода в том, что он делает CSV файл. То-есть список модов смотрится в таблице типа этого:
С кое-чем есть проблемы. Как видите список авторов иногда пустой. Но это не моя проблема, а проблема авторов мода если они не прописали в ModMetadata authorList. Так же пока есть 2 тупых файла (В одном нормальный конфиг, в другом пустота) в config/Mod Lister. Скоро я допилю апдейт и там не будет такого (Уберу "конфиги"). Я потерял исходники, так что просто дам декомпилированную fernflower'ом версию
Код я ещё не проверял. Могут быть ошибки из-за маппинга.
Сам мод написан на Java.
Плюс этого мода в том, что он делает CSV файл. То-есть список модов смотрится в таблице типа этого:
С кое-чем есть проблемы. Как видите список авторов иногда пустой. Но это не моя проблема, а проблема авторов мода если они не прописали в ModMetadata authorList. Так же пока есть 2 тупых файла (В одном нормальный конфиг, в другом пустота) в config/Mod Lister. Скоро я допилю апдейт и там не будет такого (Уберу "конфиги"). Я потерял исходники, так что просто дам декомпилированную fernflower'ом версию
Скачать
Код:
package modlister;
import cpw.mods.fml.common.Loader;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.ModContainer;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import modlister.Config;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.lwjgl.opengl.Display;
@Mod(
modid = "ModLister",
name = "Mod Lister",
version = "1.0.1710.2",
dependencies = "after:*"
)
public final class ModLister {
public static final String modid = "ModLister";
public static final String name = "Mod Lister";
public static final String version = "1.0.1710.2";
public static final String dependencies = "after:*";
File mcDir;
public static final Logger log = LogManager.getLogger("Mod Lister");
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
Config.configurate();
this.mcDir = event.getModConfigurationDirectory().getParentFile();
ModInfo(event.getModMetadata());
Config.saveConfig();
}
@EventHandler
public void postInit(FMLPostInitializationEvent event) {
ArrayList lines = new ArrayList();
lines.add("Name,Version,Authors,Mod Site,\r");
Iterator e = Loader.instance().getModList().iterator();
while(e.hasNext()) {
ModContainer writer = (ModContainer)e.next();
lines.add(this.createLine(writer));
}
try {
File e1;
if(Config.createTXTFile) {
e1 = new File(this.mcDir, "Mod List.txt");
} else {
e1 = new File(this.mcDir, "Mod List.csv");
}
BufferedWriter writer1 = new BufferedWriter(new FileWriter(e1));
Iterator var5 = lines.iterator();
while(var5.hasNext()) {
String s = (String)var5.next();
writer1.write(s);
}
writer1.write("\r");
writer1.write("Minecraft " + Display.getTitle().replaceAll("Minecraft ", "") + "\r");
writer1.close();
if(!e1.exists()) {
e1.createNewFile();
}
log.info("Mod Lister create mod list.");
} catch (IOException var7) {
log.warn("Mod Lister cannot create mod list! Check your file system!");
var7.printStackTrace();
}
log.info("Mod Lister has loaded.");
}
private String createLine(ModContainer container) {
StringBuilder builder = new StringBuilder();
builder.append(container.getName() + ",");
builder.append(container.getVersion() + ",");
builder.append("\"").append(container.getMetadata().authorList).append("\",");
builder.append("\"" + container.getMetadata().url).append("\"");
builder.append("\r");
return builder.toString();
}
public static void ModInfo(ModMetadata m) {
m.autogenerated = false;
m.modId = "ModLister";
m.name = "Mod Lister";
m.version = "1.0.1710.2";
m.url = "http://minecraft.curseforge.com/projects/mod-lister-1-7-10";
ArrayList authors = new ArrayList();
authors.add("JakiHappyCity");
m.authorList = authors;
}
}