Commit aa7b247d5d477fff050079a9c612fe338fe6054b

Authored by Mumfrey
1 parent 180c08e5

Fix display bug with errored mods, add copy error to clipboard button

src/client/java/com/mumfrey/liteloader/client/gui/GuiPanelError.java
... ... @@ -12,10 +12,12 @@ import java.util.List;
12 12  
13 13 import org.lwjgl.input.Keyboard;
14 14  
  15 +import com.google.common.base.Joiner;
15 16 import com.mumfrey.liteloader.core.ModInfo;
16 17  
17 18 import net.minecraft.client.Minecraft;
18 19 import net.minecraft.client.gui.GuiButton;
  20 +import net.minecraft.client.gui.GuiScreen;
19 21 import net.minecraft.client.resources.I18n;
20 22  
21 23 public class GuiPanelError extends GuiPanel implements ScrollPanelContent
... ... @@ -98,6 +100,7 @@ public class GuiPanelError extends GuiPanel implements ScrollPanelContent
98 100  
99 101 this.scrollPane.setSizeAndPosition(MARGIN, TOP, this.width - (MARGIN * 2), this.height - TOP - BOTTOM);
100 102 this.controls.add(new GuiButton(0, this.width - 59 - MARGIN, this.height - BOTTOM + 9, 60, 20, I18n.format("gui.done")));
  103 + this.controls.add(new GuiButton(1, this.width - 204 - MARGIN, this.height - BOTTOM + 9, 140, 20, I18n.format("gui.error.copytoclipboard")));
101 104 }
102 105  
103 106 @Override
... ... @@ -131,7 +134,10 @@ public class GuiPanelError extends GuiPanel implements ScrollPanelContent
131 134 @Override
132 135 void keyPressed(char keyChar, int keyCode)
133 136 {
134   - if (keyCode == Keyboard.KEY_ESCAPE) this.close();
  137 + if (keyCode == Keyboard.KEY_ESCAPE)
  138 + {
  139 + this.close();
  140 + }
135 141 }
136 142  
137 143 @Override
... ... @@ -161,6 +167,14 @@ public class GuiPanelError extends GuiPanel implements ScrollPanelContent
161 167 @Override
162 168 void actionPerformed(GuiButton control)
163 169 {
164   - if (control.id == 0) this.close();
  170 + if (control.id == 0)
  171 + {
  172 + this.close();
  173 + }
  174 +
  175 + if (control.id == 1)
  176 + {
  177 + GuiScreen.setClipboardString(Joiner.on('\n').join(this.scrollPaneContent));
  178 + }
165 179 }
166 180 }
... ...
src/client/java/com/mumfrey/liteloader/client/gui/modlist/ModList.java
... ... @@ -76,7 +76,7 @@ public class ModList
76 76 // Disabled mods
77 77 for (ModInfo<?> disabledMod : mods.getDisabledMods())
78 78 {
79   - if (environment.getEnabledModsList().getEnabled(environment.getProfile(), disabledMod.getIdentifier()) == Enabled.DISABLED)
  79 + if (environment.getEnabledModsList().getEnabled(environment.getProfile(), disabledMod.getIdentifier()) != Enabled.FILTERED)
80 80 {
81 81 ModListEntry modListEntry = new ModListEntry(this, mods, environment, minecraft.fontRendererObj, brandColour, decorators, disabledMod);
82 82 sortedMods.put(modListEntry.getKey(), modListEntry);
... ...
src/main/java/com/mumfrey/liteloader/modconfig/ConfigManager.java
... ... @@ -17,6 +17,7 @@ import com.google.common.collect.Maps;
17 17 import com.google.common.io.Files;
18 18 import com.mumfrey.liteloader.Configurable;
19 19 import com.mumfrey.liteloader.LiteMod;
  20 +import com.mumfrey.liteloader.util.log.LiteLoaderLogger;
20 21  
21 22 /**
22 23 * Registry where we keep the mod config panel classes and config file writers
... ... @@ -165,6 +166,10 @@ public class ConfigManager
165 166 }
166 167 catch (InstantiationException ex) {}
167 168 catch (IllegalAccessException ex) {}
  169 + catch (Exception ex)
  170 + {
  171 + LiteLoaderLogger.severe("Error creating mod configuration panel <%s> for mod %s", this.configPanels.get(modClass), modClass);
  172 + }
168 173  
169 174 // If instantiation fails, remove the panel
170 175 this.configPanels.remove(modClass);
... ...
src/main/resources/assets/liteloader/lang/en_us.lang
... ... @@ -86,6 +86,7 @@ gui.log.uploadsuccess=Upload succeeded, log available at
86 86 gui.log.closedialog=Close
87 87  
88 88 gui.error.title=Startup errors for %s
  89 +gui.error.copytoclipboard=Copy error to clipboard
89 90  
90 91 gui.error.tooltip=%d mod startup error(s) detected (%d critical)
91 92  
... ...