config: fix fake plugin default configs (#2371)

This commit is contained in:
ThatGamerBlue
2020-02-22 18:48:06 +00:00
committed by GitHub
parent 067e4ad00b
commit de152de864
2 changed files with 35 additions and 7 deletions

View File

@@ -60,6 +60,7 @@ import javax.inject.Named;
import javax.inject.Provider; import javax.inject.Provider;
import javax.inject.Singleton; import javax.inject.Singleton;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.runelite.client.RuneLite; import net.runelite.client.RuneLite;
@@ -71,6 +72,7 @@ import net.runelite.client.eventbus.EventBus;
import net.runelite.client.events.PluginChanged; import net.runelite.client.events.PluginChanged;
import net.runelite.client.events.SessionClose; import net.runelite.client.events.SessionClose;
import net.runelite.client.events.SessionOpen; import net.runelite.client.events.SessionOpen;
import net.runelite.client.plugins.config.PluginConfigurationDescriptor;
import net.runelite.client.task.ScheduledMethod; import net.runelite.client.task.ScheduledMethod;
import net.runelite.client.task.Scheduler; import net.runelite.client.task.Scheduler;
import net.runelite.client.ui.RuneLiteSplashScreen; import net.runelite.client.ui.RuneLiteSplashScreen;
@@ -92,6 +94,8 @@ public class PluginManager
private final Provider<GameEventManager> sceneTileManager; private final Provider<GameEventManager> sceneTileManager;
private final List<Plugin> plugins = new CopyOnWriteArrayList<>(); private final List<Plugin> plugins = new CopyOnWriteArrayList<>();
private final List<Plugin> activePlugins = new CopyOnWriteArrayList<>(); private final List<Plugin> activePlugins = new CopyOnWriteArrayList<>();
@Getter
private final List<PluginConfigurationDescriptor> fakePlugins = new ArrayList<>();
private final String runeliteGroupName = RuneLiteConfig.class private final String runeliteGroupName = RuneLiteConfig.class
.getAnnotation(ConfigGroup.class).value(); .getAnnotation(ConfigGroup.class).value();
@@ -232,6 +236,30 @@ public class PluginManager
} }
} }
public void loadFakePluginConfiguration()
{
try
{
for (Object config : fakePlugins.stream().map(PluginConfigurationDescriptor::getConfig).toArray())
{
if (config == null)
{
continue;
}
configManager.setDefaultConfiguration(config, false);
}
}
catch (ThreadDeath e)
{
throw e;
}
catch (Throwable ex)
{
log.warn("Unable to reset plugin configuration", ex);
}
}
public void loadExternalPlugins() public void loadExternalPlugins()
{ {
externalPluginLoader.scanAndLoad(); externalPluginLoader.scanAndLoad();

View File

@@ -110,7 +110,6 @@ public class PluginListPanel extends PluginPanel
private final PluginManager pluginManager; private final PluginManager pluginManager;
private final Provider<ConfigPanel> configPanelProvider; private final Provider<ConfigPanel> configPanelProvider;
private final OpenOSRSConfig openOSRSConfig; private final OpenOSRSConfig openOSRSConfig;
private final List<PluginConfigurationDescriptor> fakePlugins = new ArrayList<>();
@Getter @Getter
private final MultiplexingPluginPanel muxer; private final MultiplexingPluginPanel muxer;
@@ -245,7 +244,7 @@ public class PluginListPanel extends PluginPanel
// populate pluginList with all non-hidden plugins // populate pluginList with all non-hidden plugins
pluginList = Stream.concat( pluginList = Stream.concat(
fakePlugins.stream(), pluginManager.getFakePlugins().stream(),
pluginManager.getPlugins().stream() pluginManager.getPlugins().stream()
.filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden()) .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden())
.map(plugin -> .map(plugin ->
@@ -279,7 +278,8 @@ public class PluginListPanel extends PluginPanel
void addFakePlugin(PluginConfigurationDescriptor... descriptor) void addFakePlugin(PluginConfigurationDescriptor... descriptor)
{ {
Collections.addAll(fakePlugins, descriptor); Collections.addAll(pluginManager.getFakePlugins(), descriptor);
pluginManager.loadFakePluginConfiguration();
} }
void refresh() void refresh()
@@ -367,7 +367,7 @@ public class PluginListPanel extends PluginPanel
if (text.isEmpty()) if (text.isEmpty())
{ {
if (openOSRSConfig.pluginSortMode() == net.runelite.client.config.OpenOSRSConfig.SortStyle.ALPHABETICALLY || !openOSRSConfig.enableCategories()) if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.ALPHABETICALLY || !openOSRSConfig.enableCategories())
{ {
pluginList.stream().filter(item -> pinned == item.isPinned()).forEach(mainPanel::add); pluginList.stream().filter(item -> pinned == item.isPinned()).forEach(mainPanel::add);
} }
@@ -383,7 +383,7 @@ public class PluginListPanel extends PluginPanel
{ {
if (pinned == listItem.isPinned() && listItem.matchesSearchTerms(searchTerms)) if (pinned == listItem.isPinned() && listItem.matchesSearchTerms(searchTerms))
{ {
if (openOSRSConfig.pluginSortMode() == net.runelite.client.config.OpenOSRSConfig.SortStyle.ALPHABETICALLY || !openOSRSConfig.enableCategories()) if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.ALPHABETICALLY || !openOSRSConfig.enableCategories())
{ {
mainPanel.add(listItem); mainPanel.add(listItem);
} }
@@ -395,7 +395,7 @@ public class PluginListPanel extends PluginPanel
}); });
} }
if (openOSRSConfig.pluginSortMode() == net.runelite.client.config.OpenOSRSConfig.SortStyle.CATEGORY && openOSRSConfig.enableCategories()) if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.CATEGORY && openOSRSConfig.enableCategories())
{ {
generatePluginList(plugins); generatePluginList(plugins);
} }
@@ -639,7 +639,7 @@ public class PluginListPanel extends PluginPanel
return; return;
} }
if (openOSRSConfig.pluginSortMode() == net.runelite.client.config.OpenOSRSConfig.SortStyle.CATEGORY) if (openOSRSConfig.pluginSortMode() == OpenOSRSConfig.SortStyle.CATEGORY)
{ {
pluginList.sort(categoryComparator.thenComparing(ev -> ev.getPluginConfig().getName())); pluginList.sort(categoryComparator.thenComparing(ev -> ev.getPluginConfig().getName()));
} }