Commit 4a9abacab556cd0a2d68720d3c9ef23e401621d3
1 parent
a15b480a
add things to the disabled mod list on error, so that utterly broken mods show u…
…p when a notification does
Showing
3 changed files
with
19 additions
and
9 deletions
java/client/com/mumfrey/liteloader/client/gui/GuiPanelMods.java
... | ... | @@ -103,7 +103,7 @@ public class GuiPanelMods extends GuiPanel |
103 | 103 | } |
104 | 104 | |
105 | 105 | // Disabled mods |
106 | - for (ModInfo<Loadable<?>> disabledMod : mods.getDisabledMods()) | |
106 | + for (ModInfo<?> disabledMod : mods.getDisabledMods()) | |
107 | 107 | { |
108 | 108 | GuiModListEntry modListEntry = new GuiModListEntry(mods, environment, this.mc.fontRendererObj, this.brandColour, decorators, disabledMod); |
109 | 109 | sortedMods.put(modListEntry.getKey(), modListEntry); | ... | ... |
java/common/com/mumfrey/liteloader/core/LiteLoader.java
... | ... | @@ -620,7 +620,7 @@ public final class LiteLoader |
620 | 620 | { |
621 | 621 | List<Loadable<?>> disabledMods = new ArrayList<Loadable<?>>(); |
622 | 622 | |
623 | - for (ModInfo<Loadable<?>> disabledMod : this.mods.getDisabledMods()) | |
623 | + for (ModInfo<?> disabledMod : this.mods.getDisabledMods()) | |
624 | 624 | { |
625 | 625 | disabledMods.add(disabledMod.getContainer()); |
626 | 626 | } | ... | ... |
java/common/com/mumfrey/liteloader/core/LiteLoaderMods.java
1 | 1 | package com.mumfrey.liteloader.core; |
2 | 2 | |
3 | 3 | import java.io.File; |
4 | -import java.util.Collection; | |
5 | 4 | import java.util.Collections; |
6 | 5 | import java.util.HashMap; |
7 | 6 | import java.util.LinkedList; |
... | ... | @@ -16,9 +15,9 @@ import net.minecraft.client.resources.IResourcePack; |
16 | 15 | import com.mumfrey.liteloader.LiteMod; |
17 | 16 | import com.mumfrey.liteloader.api.ModLoadObserver; |
18 | 17 | import com.mumfrey.liteloader.common.LoadingProgress; |
19 | -import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | |
20 | 18 | import com.mumfrey.liteloader.interfaces.Loadable; |
21 | 19 | import com.mumfrey.liteloader.interfaces.LoadableMod; |
20 | +import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | |
22 | 21 | import com.mumfrey.liteloader.interfaces.TweakContainer; |
23 | 22 | import com.mumfrey.liteloader.launch.ClassTransformerManager; |
24 | 23 | import com.mumfrey.liteloader.launch.LiteLoaderTweaker; |
... | ... | @@ -90,7 +89,7 @@ public class LiteLoaderMods |
90 | 89 | /** |
91 | 90 | * Mods which are loaded but disabled |
92 | 91 | */ |
93 | - protected final LinkedList<NonMod> disabledMods = new LinkedList<NonMod>(); | |
92 | + protected final LinkedList<ModInfo<?>> disabledMods = new LinkedList<ModInfo<?>>(); | |
94 | 93 | |
95 | 94 | private int startupErrorCount, criticalErrorCount; |
96 | 95 | |
... | ... | @@ -103,11 +102,10 @@ public class LiteLoaderMods |
103 | 102 | this.configManager = configManager; |
104 | 103 | } |
105 | 104 | |
106 | - @SuppressWarnings("unchecked") | |
107 | 105 | void init(List<ModLoadObserver> observers) |
108 | 106 | { |
109 | 107 | this.observers = observers; |
110 | - this.disabledMods.addAll((Collection<? extends NonMod>)this.enumerator.getDisabledContainers()); | |
108 | + this.disabledMods.addAll(this.enumerator.getDisabledContainers()); | |
111 | 109 | } |
112 | 110 | |
113 | 111 | void onPostInit() |
... | ... | @@ -148,7 +146,7 @@ public class LiteLoaderMods |
148 | 146 | /** |
149 | 147 | * Get a list containing all mod files which were NOT loaded |
150 | 148 | */ |
151 | - public List<? extends ModInfo<Loadable<?>>> getDisabledMods() | |
149 | + public List<? extends ModInfo<?>> getDisabledMods() | |
152 | 150 | { |
153 | 151 | return this.disabledMods; |
154 | 152 | } |
... | ... | @@ -446,6 +444,7 @@ public class LiteLoaderMods |
446 | 444 | catch (Throwable th) |
447 | 445 | { |
448 | 446 | this.onModLoadFailed(container, mod.getModClassName(), "an error occurred", th); |
447 | + this.registerModStartupError(mod, th); | |
449 | 448 | } |
450 | 449 | } |
451 | 450 | } |
... | ... | @@ -522,7 +521,13 @@ public class LiteLoaderMods |
522 | 521 | { |
523 | 522 | LiteLoaderLogger.warning("Not loading mod %s, %s", identifier, reason); |
524 | 523 | |
525 | - if (container != LoadableMod.NONE && !this.disabledMods.contains(container)) | |
524 | + for (ModInfo<?> mod : this.disabledMods) | |
525 | + { | |
526 | + if (mod.getContainer().equals(container)) | |
527 | + return; | |
528 | + } | |
529 | + | |
530 | + if (container != LoadableMod.NONE) | |
526 | 531 | { |
527 | 532 | this.disabledMods.add(new NonMod(container, false)); |
528 | 533 | } |
... | ... | @@ -762,6 +767,11 @@ public class LiteLoaderMods |
762 | 767 | this.startupErrorCount++; |
763 | 768 | if (critical) this.criticalErrorCount++; |
764 | 769 | mod.registerStartupError(th); |
770 | + | |
771 | + if (!this.loadedMods.contains(mod) && !this.disabledMods.contains(mod)) | |
772 | + { | |
773 | + this.disabledMods.add(mod); | |
774 | + } | |
765 | 775 | } |
766 | 776 | |
767 | 777 | void updateSharedModList() | ... | ... |