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,7 +103,7 @@ public class GuiPanelMods extends GuiPanel | ||
103 | } | 103 | } |
104 | 104 | ||
105 | // Disabled mods | 105 | // Disabled mods |
106 | - for (ModInfo<Loadable<?>> disabledMod : mods.getDisabledMods()) | 106 | + for (ModInfo<?> disabledMod : mods.getDisabledMods()) |
107 | { | 107 | { |
108 | GuiModListEntry modListEntry = new GuiModListEntry(mods, environment, this.mc.fontRendererObj, this.brandColour, decorators, disabledMod); | 108 | GuiModListEntry modListEntry = new GuiModListEntry(mods, environment, this.mc.fontRendererObj, this.brandColour, decorators, disabledMod); |
109 | sortedMods.put(modListEntry.getKey(), modListEntry); | 109 | sortedMods.put(modListEntry.getKey(), modListEntry); |
java/common/com/mumfrey/liteloader/core/LiteLoader.java
@@ -620,7 +620,7 @@ public final class LiteLoader | @@ -620,7 +620,7 @@ public final class LiteLoader | ||
620 | { | 620 | { |
621 | List<Loadable<?>> disabledMods = new ArrayList<Loadable<?>>(); | 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 | disabledMods.add(disabledMod.getContainer()); | 625 | disabledMods.add(disabledMod.getContainer()); |
626 | } | 626 | } |
java/common/com/mumfrey/liteloader/core/LiteLoaderMods.java
1 | package com.mumfrey.liteloader.core; | 1 | package com.mumfrey.liteloader.core; |
2 | 2 | ||
3 | import java.io.File; | 3 | import java.io.File; |
4 | -import java.util.Collection; | ||
5 | import java.util.Collections; | 4 | import java.util.Collections; |
6 | import java.util.HashMap; | 5 | import java.util.HashMap; |
7 | import java.util.LinkedList; | 6 | import java.util.LinkedList; |
@@ -16,9 +15,9 @@ import net.minecraft.client.resources.IResourcePack; | @@ -16,9 +15,9 @@ import net.minecraft.client.resources.IResourcePack; | ||
16 | import com.mumfrey.liteloader.LiteMod; | 15 | import com.mumfrey.liteloader.LiteMod; |
17 | import com.mumfrey.liteloader.api.ModLoadObserver; | 16 | import com.mumfrey.liteloader.api.ModLoadObserver; |
18 | import com.mumfrey.liteloader.common.LoadingProgress; | 17 | import com.mumfrey.liteloader.common.LoadingProgress; |
19 | -import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | ||
20 | import com.mumfrey.liteloader.interfaces.Loadable; | 18 | import com.mumfrey.liteloader.interfaces.Loadable; |
21 | import com.mumfrey.liteloader.interfaces.LoadableMod; | 19 | import com.mumfrey.liteloader.interfaces.LoadableMod; |
20 | +import com.mumfrey.liteloader.interfaces.LoaderEnumerator; | ||
22 | import com.mumfrey.liteloader.interfaces.TweakContainer; | 21 | import com.mumfrey.liteloader.interfaces.TweakContainer; |
23 | import com.mumfrey.liteloader.launch.ClassTransformerManager; | 22 | import com.mumfrey.liteloader.launch.ClassTransformerManager; |
24 | import com.mumfrey.liteloader.launch.LiteLoaderTweaker; | 23 | import com.mumfrey.liteloader.launch.LiteLoaderTweaker; |
@@ -90,7 +89,7 @@ public class LiteLoaderMods | @@ -90,7 +89,7 @@ public class LiteLoaderMods | ||
90 | /** | 89 | /** |
91 | * Mods which are loaded but disabled | 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 | private int startupErrorCount, criticalErrorCount; | 94 | private int startupErrorCount, criticalErrorCount; |
96 | 95 | ||
@@ -103,11 +102,10 @@ public class LiteLoaderMods | @@ -103,11 +102,10 @@ public class LiteLoaderMods | ||
103 | this.configManager = configManager; | 102 | this.configManager = configManager; |
104 | } | 103 | } |
105 | 104 | ||
106 | - @SuppressWarnings("unchecked") | ||
107 | void init(List<ModLoadObserver> observers) | 105 | void init(List<ModLoadObserver> observers) |
108 | { | 106 | { |
109 | this.observers = observers; | 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 | void onPostInit() | 111 | void onPostInit() |
@@ -148,7 +146,7 @@ public class LiteLoaderMods | @@ -148,7 +146,7 @@ public class LiteLoaderMods | ||
148 | /** | 146 | /** |
149 | * Get a list containing all mod files which were NOT loaded | 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 | return this.disabledMods; | 151 | return this.disabledMods; |
154 | } | 152 | } |
@@ -446,6 +444,7 @@ public class LiteLoaderMods | @@ -446,6 +444,7 @@ public class LiteLoaderMods | ||
446 | catch (Throwable th) | 444 | catch (Throwable th) |
447 | { | 445 | { |
448 | this.onModLoadFailed(container, mod.getModClassName(), "an error occurred", th); | 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,7 +521,13 @@ public class LiteLoaderMods | ||
522 | { | 521 | { |
523 | LiteLoaderLogger.warning("Not loading mod %s, %s", identifier, reason); | 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 | this.disabledMods.add(new NonMod(container, false)); | 532 | this.disabledMods.add(new NonMod(container, false)); |
528 | } | 533 | } |
@@ -762,6 +767,11 @@ public class LiteLoaderMods | @@ -762,6 +767,11 @@ public class LiteLoaderMods | ||
762 | this.startupErrorCount++; | 767 | this.startupErrorCount++; |
763 | if (critical) this.criticalErrorCount++; | 768 | if (critical) this.criticalErrorCount++; |
764 | mod.registerStartupError(th); | 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 | void updateSharedModList() | 777 | void updateSharedModList() |