From 3fd23cee0fe3520ad30cceaa3b1fa8882dbec8a0 Mon Sep 17 00:00:00 2001 From: Christian Weeks Date: Sat, 12 May 2012 00:47:04 -0400 Subject: [PATCH] Fix nulls in the mod list, start building the gui screen --- client/cpw/mods/fml/client/GuiSlotModList.java | 15 +++++++++++++-- common/cpw/mods/fml/common/FMLCommonHandler.java | 15 +++++++++++++-- .../common/modloader/ModLoaderModContainer.java | 2 +- 3 files changed, 27 insertions(+), 5 deletions(-) diff --git a/client/cpw/mods/fml/client/GuiSlotModList.java b/client/cpw/mods/fml/client/GuiSlotModList.java index c7dbd5042e..cc0b2d9f3c 100644 --- a/client/cpw/mods/fml/client/GuiSlotModList.java +++ b/client/cpw/mods/fml/client/GuiSlotModList.java @@ -15,6 +15,8 @@ package cpw.mods.fml.client; import cpw.mods.fml.common.Loader; +import cpw.mods.fml.common.ModContainer; +import cpw.mods.fml.common.ModMetadata; import net.minecraft.client.Minecraft; import net.minecraft.src.GuiLanguage; import net.minecraft.src.GuiSlot; @@ -63,13 +65,22 @@ public class GuiSlotModList extends GuiSlot @Override protected int func_22245_b() { - return this.func_22249_a() * 18; + return this.func_22249_a() * 3 * (this.parent.getFontRenderer().field_41063_b +1); } @Override protected void func_22242_a(int listIndex, int var2, int var3, int var4, Tessellator var5) { - this.parent.func_548_a(this.parent.getFontRenderer(), Loader.getModList().get(listIndex).getName(), this.parent.field_951_c / 2, var3 + 1, 16777215); + ModContainer mc=Loader.getModList().get(listIndex); + ModMetadata meta=mc.getMetadata(); + if (meta!=null) { + this.parent.func_548_a(this.parent.getFontRenderer(), meta.name, this.parent.field_951_c / 2, var3 + 1, 16777215); + this.parent.func_548_a(this.parent.getFontRenderer(), meta.description, this.parent.field_951_c / 2, var3 + this.parent.getFontRenderer().field_41063_b +1, 16777215); + this.parent.func_548_a(this.parent.getFontRenderer(), mc.getName(), this.parent.field_951_c / 2, var3 + this.parent.getFontRenderer().field_41063_b *2 +2, 16777215); + } else { + this.parent.func_548_a(this.parent.getFontRenderer(), mc.getName(), this.parent.field_951_c / 2, var3 + 1, 16777215); + this.parent.func_548_a(this.parent.getFontRenderer(), "Mod information not found", this.parent.field_951_c / 2, var3 + 1, 16777215); + } } } diff --git a/common/cpw/mods/fml/common/FMLCommonHandler.java b/common/cpw/mods/fml/common/FMLCommonHandler.java index 9aa414a1a3..72fb5ceccf 100644 --- a/common/cpw/mods/fml/common/FMLCommonHandler.java +++ b/common/cpw/mods/fml/common/FMLCommonHandler.java @@ -451,7 +451,7 @@ public class FMLCommonHandler try { ZipFile jar = new ZipFile(mod.getSource()); - ZipEntry infoFile=jar.getEntry("/modinfo.json"); + ZipEntry infoFile=jar.getEntry("/mcmod.info"); if (infoFile!=null) { InputStream input=jar.getInputStream(infoFile); ModMetadata data=sidedDelegate.readMetadataFrom(input, mod); @@ -463,7 +463,18 @@ public class FMLCommonHandler // Something wrong but we don't care } } else { - getFMLLogger().fine(String.format("Unable to load metadata for mod %s as it is not a jar/zip packaged file",mod.getName())); + try + { + InputStream input=FMLCommonHandler.class.getClassLoader().getResourceAsStream("/"+mod.getName()+".info"); + if (input!=null) { + ModMetadata data=sidedDelegate.readMetadataFrom(input, mod); + mod.setMetadata(data); + } + } + catch (Exception e) + { + // Something wrong but we don't care + } } } diff --git a/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java b/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java index 8d174ef740..6809030969 100644 --- a/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java +++ b/common/cpw/mods/fml/common/modloader/ModLoaderModContainer.java @@ -398,7 +398,7 @@ public class ModLoaderModContainer implements ModContainer for (ModContainer mc : Loader.getModList()) { - if (mc instanceof ModLoaderModContainer && mc.getModState().ordinal()>ModState.LOADED.ordinal()) + if (mc instanceof ModLoaderModContainer && mc.getMod()!=null) { modList.add(((ModLoaderModContainer)mc).mod); }