Refactor PluginSorter

This commit is contained in:
Scott Burns
2019-05-16 01:01:29 +02:00
parent 044e06de14
commit 2b61a17447
2 changed files with 138 additions and 127 deletions

View File

@@ -24,17 +24,14 @@
*/ */
package net.runelite.client.plugins.pluginsorter; package net.runelite.client.plugins.pluginsorter;
import java.awt.Color;
import net.runelite.client.config.Config; import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItem;
import java.awt.*;
@ConfigGroup("pluginsorter") @ConfigGroup("pluginsorter")
public interface PluginSorterConfig extends Config { public interface PluginSorterConfig extends Config
{
Color rlDefault = new Color(250, 155, 23);
boolean pluginsHidden = false; boolean pluginsHidden = false;
@ConfigItem( @ConfigItem(

View File

@@ -25,10 +25,14 @@
package net.runelite.client.plugins.pluginsorter; package net.runelite.client.plugins.pluginsorter;
import com.google.inject.Provides; import com.google.inject.Provides;
import java.awt.Color;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.inject.Inject;
import net.runelite.api.GameState; import net.runelite.api.GameState;
import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.ConfigChanged;
import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GameStateChanged;
import net.runelite.client.config.ConfigItemDescriptor;
import net.runelite.client.config.ConfigManager; import net.runelite.client.config.ConfigManager;
import net.runelite.client.eventbus.Subscribe; import net.runelite.client.eventbus.Subscribe;
import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.Plugin;
@@ -37,22 +41,16 @@ import net.runelite.client.plugins.PluginType;
import net.runelite.client.plugins.config.ConfigPanel; import net.runelite.client.plugins.config.ConfigPanel;
import net.runelite.client.plugins.config.PluginListItem; import net.runelite.client.plugins.config.PluginListItem;
import javax.inject.Inject;
import java.awt.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@PluginDescriptor( @PluginDescriptor(
name = "Plugin Organizer", name = "Plugin Organizer",
description = "Hides and colors 3rd party plugins for better control", description = "Hides and colors 3rd party plugins for better control",
tags = {"plugins", "organizer"}, tags = {"plugins", "organizer"},
type = PluginType.PLUGIN_ORGANIZER type = PluginType.PLUGIN_ORGANIZER
) )
public class PluginSorterPlugin extends Plugin { public class PluginSorterPlugin extends Plugin
{
//Cache the hidden plugins //Cache the hidden plugins
public static List<PluginListItem> removedPlugins = new ArrayList<>(); private static List<PluginListItem> removedPlugins = new ArrayList<>();
@Inject @Inject
private PluginSorterConfig config; private PluginSorterConfig config;
@@ -78,29 +76,41 @@ public class PluginSorterPlugin extends Plugin {
@Subscribe @Subscribe
public void onGameStateChanged(GameStateChanged gameStateChanged) public void onGameStateChanged(GameStateChanged gameStateChanged)
{ {
if (gameStateChanged.getGameState()== GameState.LOGIN_SCREEN) { if (gameStateChanged.getGameState() == GameState.LOGIN_SCREEN)
{
if (config.hidePlugins()) if (config.hidePlugins())
{
hidePlugins(); hidePlugins();
}
updateColors(); updateColors();
} }
} }
@Subscribe @Subscribe
public void onConfigChanged(ConfigChanged configChanged) { public void onConfigChanged(ConfigChanged configChanged)
if (configChanged.getKey().equals("hidePlugins")) { {
if (config.hidePlugins()) { if (configChanged.getKey().equals("hidePlugins"))
{
if (config.hidePlugins())
{
hidePlugins(); hidePlugins();
} else { }
else
{
showPlugins(); showPlugins();
} }
} }
updateColors(); updateColors();
} }
public void updateColors() { private void updateColors()
for (PluginListItem pli : ConfigPanel.pluginList) { {
if (pli.getPlugin()!=null) { for (PluginListItem pli : ConfigPanel.pluginList)
switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()) { {
if (pli.getPlugin() != null)
{
switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type())
{
case EXTERNAL: case EXTERNAL:
pli.nameLabel.setForeground(config.externalColor()); pli.nameLabel.setForeground(config.externalColor());
break; break;
@@ -121,11 +131,14 @@ public class PluginSorterPlugin extends Plugin {
} }
} }
public void hidePlugins() { private void hidePlugins()
{
Iterator<PluginListItem> iter = ConfigPanel.pluginList.iterator(); Iterator<PluginListItem> iter = ConfigPanel.pluginList.iterator();
while (iter.hasNext()) { while (iter.hasNext())
{
PluginListItem pli = iter.next(); PluginListItem pli = iter.next();
if (pli.getPlugin() != null) { if (pli.getPlugin() != null)
{
switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()) switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type())
{ {
case PVM: case PVM:
@@ -143,7 +156,8 @@ public class PluginSorterPlugin extends Plugin {
} }
} }
public void showPlugins() { private void showPlugins()
{
List<PluginListItem> tempList = new ArrayList<>(); List<PluginListItem> tempList = new ArrayList<>();
tempList.addAll(removedPlugins); tempList.addAll(removedPlugins);
tempList.addAll(ConfigPanel.pluginList); tempList.addAll(ConfigPanel.pluginList);