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.Singleton;
import javax.swing.SwingUtilities;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
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.SessionClose;
import net.runelite.client.events.SessionOpen;
import net.runelite.client.plugins.config.PluginConfigurationDescriptor;
import net.runelite.client.task.ScheduledMethod;
import net.runelite.client.task.Scheduler;
import net.runelite.client.ui.RuneLiteSplashScreen;
@@ -92,6 +94,8 @@ public class PluginManager
private final Provider<GameEventManager> sceneTileManager;
private final List<Plugin> plugins = new CopyOnWriteArrayList<>();
private final List<Plugin> activePlugins = new CopyOnWriteArrayList<>();
@Getter
private final List<PluginConfigurationDescriptor> fakePlugins = new ArrayList<>();
private final String runeliteGroupName = RuneLiteConfig.class
.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()
{
externalPluginLoader.scanAndLoad();

View File

@@ -110,7 +110,6 @@ public class PluginListPanel extends PluginPanel
private final PluginManager pluginManager;
private final Provider<ConfigPanel> configPanelProvider;
private final OpenOSRSConfig openOSRSConfig;
private final List<PluginConfigurationDescriptor> fakePlugins = new ArrayList<>();
@Getter
private final MultiplexingPluginPanel muxer;
@@ -245,7 +244,7 @@ public class PluginListPanel extends PluginPanel
// populate pluginList with all non-hidden plugins
pluginList = Stream.concat(
fakePlugins.stream(),
pluginManager.getFakePlugins().stream(),
pluginManager.getPlugins().stream()
.filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden())
.map(plugin ->
@@ -279,7 +278,8 @@ public class PluginListPanel extends PluginPanel
void addFakePlugin(PluginConfigurationDescriptor... descriptor)
{
Collections.addAll(fakePlugins, descriptor);
Collections.addAll(pluginManager.getFakePlugins(), descriptor);
pluginManager.loadFakePluginConfiguration();
}
void refresh()
@@ -367,7 +367,7 @@ public class PluginListPanel extends PluginPanel
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);
}
@@ -383,7 +383,7 @@ public class PluginListPanel extends PluginPanel
{
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);
}
@@ -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);
}
@@ -639,7 +639,7 @@ public class PluginListPanel extends PluginPanel
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()));
}