From 09d2b056f1218ee82cebbe8f64c4f0e5bd80c086 Mon Sep 17 00:00:00 2001 From: Giovanni Ruddy Gazivoda Date: Thu, 18 Apr 2019 22:59:00 -0400 Subject: [PATCH 1/6] Transform objects now use an interface --- .../rs/bytecode/transformers/ActorTransform.java | 14 +++++--------- .../rs/bytecode/transformers/PlayerTransform.java | 6 +++++- .../bytecode/transformers/ProjectileTransform.java | 10 ++++++---- .../client/rs/bytecode/transformers/Transform.java | 8 ++++++++ 4 files changed, 24 insertions(+), 14 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java index 37b4777c56..73dc2a6930 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ActorTransform.java @@ -1,22 +1,15 @@ package net.runelite.client.rs.bytecode.transformers; -import javassist.CannotCompileException; import javassist.CtClass; import javassist.CtMethod; import javassist.CtNewMethod; import javassist.NotFoundException; import net.runelite.client.rs.bytecode.ByteCodePatcher; -import net.runelite.client.rs.bytecode.ByteCodeUtils; -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.net.URLClassLoader; - -public class ActorTransform { +public class ActorTransform implements Transform { public CtClass ct = null; - + @Override public void modify(Class actor) { try { ct = ByteCodePatcher.classPool.get(actor.getName()); @@ -28,6 +21,9 @@ public class ActorTransform { } } + @Override + public void transform() { } + public void transformGetAnimation() { try { CtMethod protectedAnimation = ct.getDeclaredMethod("1protect$getRsAnimation"); diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java index 1fbec240c6..7e02ca1e74 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/PlayerTransform.java @@ -5,9 +5,10 @@ import javassist.CtMethod; import javassist.CtNewMethod; import net.runelite.client.rs.bytecode.ByteCodePatcher; -public class PlayerTransform { +public class PlayerTransform implements Transform { public CtClass ct = null; + @Override public void modify(Class player) { try { ct = ByteCodePatcher.classPool.get(player.getName()); @@ -19,6 +20,9 @@ public class PlayerTransform { } } + @Override + public void transform(){} + public void transformProtectedGetSkullIcon() { CtMethod protectedGetSkullIcon; try { diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java index 9cdae79a77..e9af2b826b 100644 --- a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java +++ b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/ProjectileTransform.java @@ -4,22 +4,23 @@ import javassist.CtClass; import javassist.CtMethod; import javassist.CtNewMethod; import net.runelite.client.rs.bytecode.ByteCodePatcher; -import net.runelite.client.rs.bytecode.ByteCodeUtils; -public class ProjectileTransform { +public class ProjectileTransform implements Transform { public CtClass ct = null; + @Override public void modify(Class projectile) { try { ct = ByteCodePatcher.classPool.get(projectile.getName()); - transformProjectileMoved(); + transform(); ByteCodePatcher.modifiedClasses.add(ct); } catch (Exception e) { e.printStackTrace(); } } - public void transformProjectileMoved() { + @Override + public void transform() { CtMethod getAnimation; try { getAnimation = ct.getDeclaredMethod("projectileMoved", new CtClass[]{CtClass.intType, CtClass.intType, CtClass.intType, CtClass.intType}); @@ -37,4 +38,5 @@ public class ProjectileTransform { e.printStackTrace(); } } + } diff --git a/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java new file mode 100644 index 0000000000..e7b8210b22 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/rs/bytecode/transformers/Transform.java @@ -0,0 +1,8 @@ +package net.runelite.client.rs.bytecode.transformers; + +public interface Transform { + + void modify(Class clazz); + void transform(); + +} From 8e094f738686140104202c6c5aac8b5eb7e47a38 Mon Sep 17 00:00:00 2001 From: Giovanni Ruddy Gazivoda Date: Fri, 19 Apr 2019 03:20:27 -0400 Subject: [PATCH 2/6] Plugins can now accept colors (not my code) --- .../client/plugins/config/ConfigPanel.java | 57 ++++++++++--------- .../client/plugins/config/PluginListItem.java | 28 ++++----- 2 files changed, 44 insertions(+), 41 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index b71d5e8b0e..3919162165 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -130,7 +130,7 @@ public class ConfigPanel extends PluginPanel } ConfigPanel(PluginManager pluginManager, ConfigManager configManager, ScheduledExecutorService executorService, - RuneLiteConfig runeLiteConfig, ChatColorConfig chatColorConfig) + RuneLiteConfig runeLiteConfig, ChatColorConfig chatColorConfig) { super(false); this.pluginManager = pluginManager; @@ -195,28 +195,28 @@ public class ConfigPanel extends PluginPanel // populate pluginList with all non-hidden plugins pluginManager.getPlugins().stream() - .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden()) - .forEach(plugin -> - { - final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); - final Config config = pluginManager.getPluginConfigProxy(plugin); - final ConfigDescriptor configDescriptor = config == null ? null : configManager.getConfigDescriptor(config); + .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden()) + .forEach(plugin -> + { + final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); + final Config config = pluginManager.getPluginConfigProxy(plugin); + final ConfigDescriptor configDescriptor = config == null ? null : configManager.getConfigDescriptor(config); - final PluginListItem listItem = new PluginListItem(this, plugin, descriptor, config, configDescriptor); - listItem.setPinned(pinnedPlugins.contains(listItem.getName())); - pluginList.add(listItem); - }); + final PluginListItem listItem = new PluginListItem(this, plugin, descriptor, config, configDescriptor); + listItem.setPinned(pinnedPlugins.contains(listItem.getName())); + pluginList.add(listItem); + }); // add special entries for core client configurations final PluginListItem runeLite = new PluginListItem(this, runeLiteConfig, - configManager.getConfigDescriptor(runeLiteConfig), - RUNELITE_PLUGIN, "RuneLite client settings", "client"); + configManager.getConfigDescriptor(runeLiteConfig), + RUNELITE_PLUGIN, "RuneLite client settings", "client"); runeLite.setPinned(pinnedPlugins.contains(RUNELITE_PLUGIN)); pluginList.add(runeLite); final PluginListItem chatColor = new PluginListItem(this, chatColorConfig, - configManager.getConfigDescriptor(chatColorConfig), - CHAT_COLOR_PLUGIN, "Recolor chat text", "colour", "messages"); + configManager.getConfigDescriptor(chatColorConfig), + CHAT_COLOR_PLUGIN, "Recolor chat text", "colour", "messages"); chatColor.setPinned(pinnedPlugins.contains(CHAT_COLOR_PLUGIN)); pluginList.add(chatColor); @@ -310,7 +310,8 @@ public class ConfigPanel extends PluginPanel String name = listItem.getName(); JLabel title = new JLabel(name); title.setForeground(Color.WHITE); - title.setToolTipText("" + name + ":
" + listItem.getDescription() + ""); + title.setText("" + name +""); + title.setToolTipText("" + ":
" + listItem.getDescription() + ""); topPanel.add(title); for (ConfigItemDescriptor cid : cd.getItems()) @@ -421,7 +422,7 @@ public class ConfigPanel extends PluginPanel public void mouseClicked(MouseEvent e) { RuneliteColorPicker colorPicker = new RuneliteColorPicker(SwingUtilities.windowForComponent(ConfigPanel.this), - colorPickerBtn.getBackground(), cid.getItem().name(), cid.getAlpha() == null); + colorPickerBtn.getBackground(), cid.getItem().name(), cid.getAlpha() == null); colorPicker.setLocation(getLocationOnScreen()); colorPicker.setOnColorChange(c -> { @@ -467,7 +468,7 @@ public class ConfigPanel extends PluginPanel heightSpinnerTextField.setColumns(4); ChangeListener listener = e -> - configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), widthSpinner.getValue() + "x" + heightSpinner.getValue()); + configManager.setConfiguration(cd.getGroup().value(), cid.getItem().keyName(), widthSpinner.getValue() + "x" + heightSpinner.getValue()); widthSpinner.addChangeListener(listener); heightSpinner.addChangeListener(listener); @@ -512,8 +513,8 @@ public class ConfigPanel extends PluginPanel if (cid.getType() == Keybind.class || cid.getType() == ModifierlessKeybind.class) { Keybind startingValue = configManager.getConfiguration(cd.getGroup().value(), - cid.getItem().keyName(), - (Class) cid.getType()); + cid.getItem().keyName(), + (Class) cid.getType()); HotkeyButton button = new HotkeyButton(startingValue, cid.getType() == ModifierlessKeybind.class); @@ -536,8 +537,8 @@ public class ConfigPanel extends PluginPanel resetButton.addActionListener((e) -> { final int result = JOptionPane.showOptionDialog(resetButton, "Are you sure you want to reset this plugin's configuration?", - "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, - null, new String[]{"Yes", "No"}, "No"); + "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, + null, new String[]{"Yes", "No"}, "No"); if (result == JOptionPane.YES_OPTION) { @@ -564,8 +565,8 @@ public class ConfigPanel extends PluginPanel if (!Strings.isNullOrEmpty(configItem.warning())) { final int result = JOptionPane.showOptionDialog(component, configItem.warning(), - "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, - null, new String[]{"Yes", "No"}, "No"); + "Are you sure?", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, + null, new String[]{"Yes", "No"}, "No"); if (result != JOptionPane.YES_OPTION) { @@ -659,9 +660,9 @@ public class ConfigPanel extends PluginPanel void savePinnedPlugins() { final String value = pluginList.stream() - .filter(PluginListItem::isPinned) - .map(PluginListItem::getName) - .collect(Collectors.joining(",")); + .filter(PluginListItem::isPinned) + .map(PluginListItem::getName) + .collect(Collectors.joining(",")); configManager.setConfiguration(RUNELITE_GROUP_NAME, PINNED_PLUGINS_CONFIG_KEY, value); } @@ -704,4 +705,4 @@ public class ConfigPanel extends PluginPanel } } -} \ No newline at end of file +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListItem.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListItem.java index 64b97a6ab8..3ffba69b4c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListItem.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/PluginListItem.java @@ -99,17 +99,17 @@ class PluginListItem extends JPanel ON_STAR = new ImageIcon(onStar); CONFIG_ICON_HOVER = new ImageIcon(ImageUtil.grayscaleOffset(configIcon, -100)); BufferedImage offSwitcherImage = ImageUtil.flipImage( - ImageUtil.grayscaleOffset( - ImageUtil.grayscaleImage(onSwitcher), - 0.61f - ), - true, - false + ImageUtil.grayscaleOffset( + ImageUtil.grayscaleImage(onSwitcher), + 0.61f + ), + true, + false ); OFF_SWITCHER = new ImageIcon(offSwitcherImage); BufferedImage offStar = ImageUtil.grayscaleOffset( - ImageUtil.grayscaleImage(onStar), - 0.77f + ImageUtil.grayscaleImage(onStar), + 0.77f ); OFF_STAR = new ImageIcon(offStar); } @@ -121,23 +121,23 @@ class PluginListItem extends JPanel * if there is no configuration associated with the plugin. */ PluginListItem(ConfigPanel configPanel, Plugin plugin, PluginDescriptor descriptor, - @Nullable Config config, @Nullable ConfigDescriptor configDescriptor) + @Nullable Config config, @Nullable ConfigDescriptor configDescriptor) { this(configPanel, plugin, config, configDescriptor, - descriptor.name(), descriptor.description(), descriptor.tags()); + descriptor.name(), descriptor.description(), descriptor.tags()); } /** * Creates a new {@code PluginListItem} for a core configuration. */ PluginListItem(ConfigPanel configPanel, Config config, ConfigDescriptor configDescriptor, - String name, String description, String... tags) + String name, String description, String... tags) { this(configPanel, null, config, configDescriptor, name, description, tags); } private PluginListItem(ConfigPanel configPanel, @Nullable Plugin plugin, @Nullable Config config, - @Nullable ConfigDescriptor configDescriptor, String name, String description, String... tags) + @Nullable ConfigDescriptor configDescriptor, String name, String description, String... tags) { this.configPanel = configPanel; this.plugin = plugin; @@ -153,8 +153,10 @@ class PluginListItem extends JPanel setPreferredSize(new Dimension(PluginPanel.PANEL_WIDTH, 20)); JLabel nameLabel = new JLabel(name); + nameLabel.setText("" + name +""); nameLabel.setForeground(Color.WHITE); + if (!description.isEmpty()) { nameLabel.setToolTipText("" + name + ":
" + description + ""); @@ -260,7 +262,7 @@ class PluginListItem extends JPanel for (String term : searchTerms) { if (keywords.stream().noneMatch((t) -> t.contains(term) || - DISTANCE.apply(t, term) > 0.9)) + DISTANCE.apply(t, term) > 0.9)) { return false; } From f02ac6f13ffdae7ec499688e395ce4b127763c8c Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Mon, 22 Apr 2019 18:32:03 +0200 Subject: [PATCH 3/6] Check Matcher#find Fixes #44 --- .../client/plugins/freezetimers/FreezeTimersPlugin.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java index 5e0c7a7824..cb97861189 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java @@ -129,9 +129,9 @@ public class FreezeTimersPlugin extends Plugin final Pattern ppattern = Pattern.compile("> (.+?) Date: Mon, 22 Apr 2019 16:10:35 -0400 Subject: [PATCH 4/6] PluginType --- .../client/plugins/PluginDescriptor.java | 2 +- .../runelite/client/plugins/PluginType.java | 15 ++++++++++ .../plugins/antidrag/AntiDragPlugin.java | 3 +- .../plugins/aoewarnings/AoeWarningPlugin.java | 3 +- .../client/plugins/batools/BAToolsPlugin.java | 3 +- .../clanmanmode/ClanManModePlugin.java | 3 +- .../EquipmentInspectorPlugin.java | 3 +- .../FightCaveJadHelperPlugin.java | 3 +- .../FightCaveWaveHelperPlugin.java | 3 +- .../client/plugins/flexo/FlexoPlugin.java | 3 +- .../freezetimers/FreezeTimersPlugin.java | 3 +- .../GrotesqueGuardiansPlugin.java | 3 +- .../hideprayers/HidePrayersPlugin.java | 3 +- .../client/plugins/hydra/HydraPlugin.java | 3 +- .../LizardmenShamanPlugin.java | 4 ++- .../LootingBagViewerPlugin.java | 3 +- .../client/plugins/maxhit/MaxHitPlugin.java | 3 +- .../menumodifier/MenuModifierPlugin.java | 3 +- .../MultiIndicatorsPlugin.java | 3 +- .../PlayerIndicatorsPlugin.java | 3 +- .../pluginsorter/PluginSorterPlugin.java | 30 ++++++++++++------- .../PrayAgainstPlayerPlugin.java | 3 +- .../plugins/pvptools/PvpToolsPlugin.java | 3 +- .../raidsthieving/RaidsThievingPlugin.java | 3 +- .../rememberclan/RememberClanPlugin.java | 3 +- .../ShayzienInfirmaryPlugin.java | 3 +- .../shiftwalker/ShiftWalkerPlugin.java | 3 +- .../SuppliesTrackerPlugin.java | 3 +- .../tickcounter/TickCounterPlugin.java | 3 +- .../tobdamagecount/DamageCounterPlugin.java | 3 +- .../plugins/vanguards/VanguardPlugin.java | 3 +- .../client/plugins/vetion/VetionPlugin.java | 3 +- .../client/plugins/vorkath/VorkathPlugin.java | 3 +- .../warindicators/WarIndicatorPlugin.java | 4 ++- .../whalewatchers/WhaleWatchersPlugin.java | 3 +- .../WildernessLocationsPlugin.java | 4 ++- .../worldmaphider/WorldMapHiderPlugin.java | 3 +- .../client/plugins/ztob/TheatrePlugin.java | 3 +- .../client/plugins/zulrah/ZulrahPlugin.java | 3 +- 39 files changed, 110 insertions(+), 48 deletions(-) create mode 100644 runelite-client/src/main/java/net/runelite/client/plugins/PluginType.java diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java index 78cb1d38d5..fafcaebcbd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginDescriptor.java @@ -59,5 +59,5 @@ public @interface PluginDescriptor boolean loadWhenOutdated() default false; - String type() default ""; + PluginType type() default PluginType.GENERAL_USE; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginType.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginType.java new file mode 100644 index 0000000000..1ba59834cb --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginType.java @@ -0,0 +1,15 @@ +package net.runelite.client.plugins; + +public enum PluginType { + + PVM, + PVP, + + UTILITY, + GENERAL_USE, + + EXTERNAL, + + PLUGIN_ORGANIZER + +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java index 4dafc29b8c..70f7400d7b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/antidrag/AntiDragPlugin.java @@ -35,10 +35,11 @@ import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; @PluginDescriptor( name = "Anti Drag", - type = "utility", + type = PluginType.UTILITY, enabledByDefault = false) public class AntiDragPlugin extends Plugin implements KeyListener { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java index 2fa20d725f..5314f65fd0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningPlugin.java @@ -52,6 +52,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import javax.inject.Inject; @@ -64,7 +65,7 @@ import java.util.logging.Logger; name = "AoE Warnings", description = "Shows the final destination for AoE Attack projectiles", tags = {"bosses", "combat", "pve", "overlay"}, - type = "PVM" + type = PluginType.PVM ) @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/batools/BAToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/batools/BAToolsPlugin.java index 961e8760cb..d7af4f3228 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/batools/BAToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/batools/BAToolsPlugin.java @@ -70,6 +70,7 @@ import net.runelite.client.input.KeyListener; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; import net.runelite.client.util.Text; @@ -79,7 +80,7 @@ import net.runelite.client.util.Text; name = "BA Tools", description = "Custom tools for Barbarian Assault", tags = {"minigame", "overlay", "timer"}, - type = "utility" + type = PluginType.UTILITY ) public class BAToolsPlugin extends Plugin implements KeyListener { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java index 7821fd8946..624bad7078 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanmanmode/ClanManModePlugin.java @@ -17,6 +17,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.game.ClanManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.Text; import org.apache.commons.lang3.ArrayUtils; @@ -25,7 +26,7 @@ import org.apache.commons.lang3.ArrayUtils; name = "Clan Man Mode", description = "Assists in clan PVP scenarios", tags = {"highlight", "minimap", "overlay", "players"}, - type = "PVP" + type = PluginType.PVP ) public class ClanManModePlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java index 29904c2fb8..35711a9a63 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/equipmentinspector/EquipmentInspectorPlugin.java @@ -19,6 +19,7 @@ import net.runelite.client.game.ItemManager; import net.runelite.client.menus.MenuManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; @@ -36,7 +37,7 @@ import java.util.concurrent.ScheduledExecutorService; @PluginDescriptor( name = "Equipment Inspector", enabledByDefault = false, - type = "utility" + type = PluginType.UTILITY ) @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fightcavejadhelper/FightCaveJadHelperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fightcavejadhelper/FightCaveJadHelperPlugin.java index 8488545015..6fd2ab22ca 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fightcavejadhelper/FightCaveJadHelperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fightcavejadhelper/FightCaveJadHelperPlugin.java @@ -12,13 +12,14 @@ import net.runelite.api.events.NpcSpawned; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( name = "Fight Cave - Jad", description = "Show what to pray against Jad", tags = {"bosses", "combat", "minigame", "overlay", "prayer", "pve", "pvm"}, - type = "PVM", + type = PluginType.PVM, enabledByDefault = false ) public class FightCaveJadHelperPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fightcavewavehelper/FightCaveWaveHelperPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fightcavewavehelper/FightCaveWaveHelperPlugin.java index b3321a3b33..c7a3a29b6c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fightcavewavehelper/FightCaveWaveHelperPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fightcavewavehelper/FightCaveWaveHelperPlugin.java @@ -41,6 +41,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import org.apache.commons.lang3.ArrayUtils; @@ -48,7 +49,7 @@ import org.apache.commons.lang3.ArrayUtils; name = "Fight Cave - Waves", description = "Displays current and upcoming wave monsters in the Fight Caves", tags = {"bosses", "combat", "minigame", "overlay", "pve", "pvm", "jad", "fire", "cape", "wave"}, - type = "PVM", + type = PluginType.PVM, enabledByDefault = false ) public class FightCaveWaveHelperPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java index 7cd7b961bc..3921f49e12 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/flexo/FlexoPlugin.java @@ -18,6 +18,7 @@ import net.runelite.client.flexo.Flexo; import net.runelite.client.flexo.FlexoUtils; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.stretchedmode.StretchedModeConfig; import net.runelite.client.ui.overlay.OverlayManager; @@ -29,7 +30,7 @@ import java.util.List; name = "Flexo Config", description = "Customizes Flexo, the MouseInput Assistant ;)", tags = {"flexo", "null"}, - type = "utility" + type = PluginType.UTILITY ) @Slf4j public class FlexoPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java index cb97861189..59f4ff6ccb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/freezetimers/FreezeTimersPlugin.java @@ -26,6 +26,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ImageUtil; import org.slf4j.Logger; @@ -33,7 +34,7 @@ import org.slf4j.Logger; @PluginDescriptor( name = "Freeze Timers", description = "PVP Freeze Timers", - type = "PVP", + type = PluginType.PVP, tags = {"PvP", "Freeze", "Timers", "pklite"} ) public class FreezeTimersPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java index a7f59a7bed..e41c1a4b47 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grotesqueguardians/GrotesqueGuardiansPlugin.java @@ -27,13 +27,14 @@ package net.runelite.client.plugins.grotesqueguardians; import javax.inject.Inject; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( name = "Grotesque Guardians", description = "Display tile indicators for the Grotesque Guardian special attacks", tags = {"grotesque", "guardians", "gargoyle", "garg"}, - type = "PVM" + type = PluginType.PVM ) public class GrotesqueGuardiansPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java index 61f9b91b44..fa88699a97 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hideprayers/HidePrayersPlugin.java @@ -13,6 +13,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import javax.inject.Inject; import java.util.List; @@ -22,7 +23,7 @@ import java.util.stream.Collectors; @PluginDescriptor( name = "Hide Prayers", description = "Hides specific Prayers in the Prayer tab.", - type = "utility" + type = PluginType.UTILITY ) public class HidePrayersPlugin extends Plugin { private static final int PRAYER_COUNT = Prayer.values().length; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hydra/HydraPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hydra/HydraPlugin.java index f976a9cd2b..92089b31d2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hydra/HydraPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hydra/HydraPlugin.java @@ -9,6 +9,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import java.util.HashMap; @@ -18,7 +19,7 @@ import java.util.Map; name = "Hydra", description = "Hydra Helper", tags = {"Hydra", "Helper"}, - type = "PVM" + type = PluginType.PVM ) public class HydraPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java index 6b93885523..49422add2e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lizardmenshaman/LizardmenShamanPlugin.java @@ -16,6 +16,8 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import java.util.HashMap; import java.util.Map; + +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( @@ -23,7 +25,7 @@ import net.runelite.client.ui.overlay.OverlayManager; description = "Configures timer for lizardmen shaman spawns.", enabledByDefault = false, tags = {"shaman", "lizard", "lizardmen"}, - type = "PVM" + type = PluginType.PVM ) @Slf4j public class LizardmenShamanPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java index 5d28a4bbea..df73647d3a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lootingbagviewer/LootingBagViewerPlugin.java @@ -27,6 +27,7 @@ package net.runelite.client.plugins.lootingbagviewer; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import javax.inject.Inject; @@ -35,7 +36,7 @@ import javax.inject.Inject; name = "PvP Looting Bag Viewer", description = "Add an overlay showing the contents of your looting bag", tags = {"alternate", "items", "overlay", "second"}, - type = "utility", + type = PluginType.UTILITY, enabledByDefault = false ) public class LootingBagViewerPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java index 874f038774..8afa99a904 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/maxhit/MaxHitPlugin.java @@ -36,6 +36,7 @@ import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.maxhit.calculators.MagicMaxHitCalculator; import net.runelite.client.plugins.maxhit.calculators.MeleeMaxHitCalculator; import net.runelite.client.plugins.maxhit.calculators.RangeMaxHitCalculator; @@ -45,7 +46,7 @@ import javax.inject.Inject; @PluginDescriptor( name = "Max Hit", description = "Max Hit Calculator", - type = "PVM", + type = PluginType.PVM, enabledByDefault = false ) public class MaxHitPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/menumodifier/MenuModifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/menumodifier/MenuModifierPlugin.java index fedf163a55..13dde647e5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/menumodifier/MenuModifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/menumodifier/MenuModifierPlugin.java @@ -15,6 +15,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.util.MiscUtils; import net.runelite.client.util.Text; @@ -29,7 +30,7 @@ import java.util.List; description = "Changes right click menu for players", tags = { "menu", "modifier", "right", "click", "pk", "bogla" }, enabledByDefault = false, - type = "utility" + type = PluginType.UTILITY ) public class MenuModifierPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java index 8410d96d40..5c24ec6f95 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java @@ -49,6 +49,7 @@ import net.runelite.client.callback.ClientThread; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( @@ -56,7 +57,7 @@ import net.runelite.client.ui.overlay.OverlayManager; description = "Show borders of multicombat and PvP safezones", tags = {"multicombat", "lines", "pvp", "deadman", "safezones", "bogla"}, enabledByDefault = false, - type = "PVP" + type = PluginType.PVP ) public class MultiIndicatorsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java index fd56c88fea..00c603b481 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/playerindicators/PlayerIndicatorsPlugin.java @@ -42,6 +42,7 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.ClanManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ColorUtil; import com.google.common.base.Splitter; @@ -58,7 +59,7 @@ import net.runelite.client.util.WildcardMatcher; name = "Player Indicators", description = "Highlight players on-screen and/or on the minimap", tags = {"highlight", "minimap", "overlay", "players"}, - type = "utility" + type = PluginType.UTILITY ) public class PlayerIndicatorsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java index ba31160a32..34285f6ea8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java @@ -9,6 +9,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.config.ConfigPanel; import net.runelite.client.plugins.config.PluginListItem; @@ -22,7 +23,7 @@ import java.util.List; name = "Plugin Organizer", description = "Hides and colors 3rd party plugins for better control", tags = {"Fuck RL","Abex is shit :p"}, - type = "pluginOrganizer" + type = PluginType.PLUGIN_ORGANIZER ) public class PluginSorterPlugin extends Plugin { @@ -76,16 +77,23 @@ public class PluginSorterPlugin extends Plugin { for (PluginListItem pli : ConfigPanel.pluginList) { if (pli.getPlugin()!=null) { if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()!=null) - if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("external")) - pli.nameLabel.setForeground(config.externalColor()); - else if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("PVM")) - pli.nameLabel.setForeground(config.pvmColor()); - else if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("PVP")) - pli.nameLabel.setForeground(config.pvpColor()); - else if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("utility")) - pli.nameLabel.setForeground(config.utilityColor()); - else - pli.nameLabel.setForeground(Color.WHITE); + switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()) { + case EXTERNAL: + pli.nameLabel.setForeground(config.externalColor()); + break; + case PVM: + pli.nameLabel.setForeground(config.pvmColor()); + break; + case PVP: + pli.nameLabel.setForeground(config.pvpColor()); + break; + case UTILITY: + pli.nameLabel.setForeground(config.utilityColor()); + break; + default: + pli.nameLabel.setForeground(Color.WHITE); + break; + } } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java index c0dc2644a1..0f9d144bcb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayagainstplayer/PrayAgainstPlayerPlugin.java @@ -32,6 +32,7 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ImageUtil; @@ -45,7 +46,7 @@ import java.util.Arrays; name = "Pray Against Player", description = "Use plugin in PvP situations for best results!!", tags = {"highlight", "pvp", "overlay", "players"}, - type = "PVP" + type = PluginType.PVP ) /** diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java index 47aee1f8b6..42f8e4395f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pvptools/PvpToolsPlugin.java @@ -54,6 +54,7 @@ import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginManager; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.clanchat.ClanChatPlugin; import static net.runelite.client.plugins.pvptools.PvpToolsPanel.htmlLabel; import net.runelite.client.ui.ClientToolbar; @@ -70,7 +71,7 @@ import org.apache.commons.lang3.ArrayUtils; name = "PvP Tools", description = "Enable the PvP Tools panel", tags = {"panel", "pvp", "pk", "pklite"}, - type = "PVP" + type = PluginType.PVP ) public class PvpToolsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java index 10873e02d8..8f0baf9639 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/raidsthieving/RaidsThievingPlugin.java @@ -41,6 +41,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.raidsthieving.BatSolver.BatSolver; import net.runelite.client.plugins.raidsthieving.BatSolver.ChestIdentifier; import net.runelite.client.plugins.raidsthieving.BatSolver.ThievingRoomType; @@ -56,7 +57,7 @@ import java.util.Map; name = "Raids Bat Finder", description = "Tracks which chests need to be searched for bats and which poison", tags = {"overlay", "skilling", "raid"}, - type = "PVM" + type = PluginType.PVM ) public class RaidsThievingPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/rememberclan/RememberClanPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/rememberclan/RememberClanPlugin.java index 2b5dd54b35..bdac2a3289 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/rememberclan/RememberClanPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/rememberclan/RememberClanPlugin.java @@ -41,11 +41,12 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; @PluginDescriptor( name = "Remember Clan", description = "Remember a specific clan!", - type = "utility", + type = PluginType.UTILITY, enabledByDefault = false ) public class RememberClanPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java index 954eb72b56..70f47daf4c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/shayzieninfirmary/ShayzienInfirmaryPlugin.java @@ -36,6 +36,7 @@ import net.runelite.api.events.GameTick; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @Slf4j @@ -43,7 +44,7 @@ import net.runelite.client.ui.overlay.OverlayManager; name = "Shayzien Infirmary", description = "Shows the status of wounded soldiers", tags = {"shayzien", "infirmary", "soldiers"}, - type = "utility" + type = PluginType.UTILITY ) public class ShayzienInfirmaryPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java index cedc212d04..5593ef59b9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/shiftwalker/ShiftWalkerPlugin.java @@ -33,6 +33,7 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.input.KeyManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.util.Text; import javax.inject.Inject; @@ -45,7 +46,7 @@ import javax.inject.Inject; description = "Use Shift to toggle the Walk Here menu option. While pressed you will Walk rather than interact with objects.", tags = {"npcs", "items", "objects"}, enabledByDefault = false, - type = "utility" + type = PluginType.UTILITY ) public class ShiftWalkerPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java index 9212432d7e..c39e284e89 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/suppliestracker/SuppliesTrackerPlugin.java @@ -40,6 +40,7 @@ import net.runelite.client.game.ItemManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.ClientToolbar; import net.runelite.client.ui.NavigationButton; import net.runelite.client.util.ImageUtil; @@ -63,7 +64,7 @@ import java.awt.image.BufferedImage; name = "Supplies Used Tracker", description = "Tracks supplies used during the session", tags = {"cost"}, - type = "PVM", + type = PluginType.PVM, enabledByDefault = false ) @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java index 4e40b23ff3..cc17572eba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tickcounter/TickCounterPlugin.java @@ -19,12 +19,13 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor(name = "Tick Counter", description = "Counts combat activity for nearby players", enabledByDefault = false, - type = "utility" + type = PluginType.UTILITY ) public class TickCounterPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java index 7b49a30ece..2225ebde17 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tobdamagecount/DamageCounterPlugin.java @@ -49,6 +49,7 @@ import net.runelite.client.chat.QueuedMessage; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.eventbus.Subscribe; +import net.runelite.client.plugins.PluginType; @PluginDescriptor( @@ -56,7 +57,7 @@ import net.runelite.client.eventbus.Subscribe; description = "Gives you an estimation damage on a boss and taken after the fight is done" + "the damage will be posted in the chat", tags = {"combat", "npcs", "tob", "damage"}, - type = "PVM", + type = PluginType.PVM, enabledByDefault = false ) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/vanguards/VanguardPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/vanguards/VanguardPlugin.java index 88cb075867..e872cada91 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/vanguards/VanguardPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/vanguards/VanguardPlugin.java @@ -4,6 +4,7 @@ package net.runelite.client.plugins.vanguards; import javax.inject.Inject; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( @@ -11,7 +12,7 @@ import net.runelite.client.ui.overlay.OverlayManager; description= "tracks HP of all three vanguards", tags= {"overlay", "vangs", "cox"}, enabledByDefault = false, - type = "PVM" + type = PluginType.PVM ) public class VanguardPlugin extends Plugin { private static final int MAGE_VANGUARD_ID = 7526; //i think diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java index 847c1f3678..7c637b65c1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/vetion/VetionPlugin.java @@ -32,6 +32,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import javax.inject.Inject; @@ -43,7 +44,7 @@ import java.util.Map; name = "Vetion", description = "Tracks Vet'ion's special attacks", tags = {"bosses", "combat", "pve", "overlay"}, - type = "PVM" + type = PluginType.PVM ) public class VetionPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java index 060a9d2246..ab058dc5b1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/vorkath/VorkathPlugin.java @@ -10,6 +10,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import org.apache.commons.lang3.ArrayUtils; @@ -17,7 +18,7 @@ import org.apache.commons.lang3.ArrayUtils; name = "Vorkath", description = "Vorkath Helper", tags = {"Vorkath", "Helper"}, - type = "PVM" + type = PluginType.PVM ) public class VorkathPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java index 9dc378547c..b43aca57f1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/warindicators/WarIndicatorPlugin.java @@ -30,6 +30,8 @@ import com.google.inject.Provides; import java.awt.Color; import java.util.Collection; import javax.inject.Inject; + +import net.runelite.client.plugins.PluginType; import org.apache.commons.lang3.ArrayUtils; import net.runelite.api.Client; import static net.runelite.api.MenuAction.FOLLOW; @@ -57,7 +59,7 @@ import net.runelite.client.ui.overlay.OverlayManager; name = "War calling indicators", description = "War War War.", tags = {"skill", "total", "max", "PVP"}, - type = "PVP", + type = PluginType.PVP, enabledByDefault = false ) public class WarIndicatorPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java index b08d7e4ca4..356b846bdc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/whalewatchers/WhaleWatchersPlugin.java @@ -36,6 +36,7 @@ import net.runelite.client.eventbus.Subscribe; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.WorldUtil; import org.apache.commons.lang3.ObjectUtils; @@ -48,7 +49,7 @@ import org.jetbrains.annotations.NotNull; enabledByDefault = true, hidden = false, developerPlugin = false, - type = "PVP", + type = PluginType.PVP, loadWhenOutdated = false ) public class WhaleWatchersPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java index c698e5894a..30cc474a2b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/wildernesslocations/WildernessLocationsPlugin.java @@ -18,6 +18,7 @@ import net.runelite.api.events.GameTick; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.wildernesslocations.WildernessLocationsOverlay; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayManager; @@ -26,7 +27,8 @@ import net.runelite.client.util.WildernessLocation; @PluginDescriptor(name="PvP Wild Locations", description="Indicates the players current location in the wild", tags={"Wildy,", "Wilderness Location", "location", "loc", "pvp", "pklite"}, - type = "PVP") + type = PluginType.PVP +) public class WildernessLocationsPlugin extends Plugin { @Inject diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/worldmaphider/WorldMapHiderPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/worldmaphider/WorldMapHiderPlugin.java index d1f2971cd6..34b79a803e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/worldmaphider/WorldMapHiderPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/worldmaphider/WorldMapHiderPlugin.java @@ -24,11 +24,12 @@ import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; @PluginDescriptor( name = "Hide Worldmap Button", description = "Hides the world map button", - type = "PVM", + type = PluginType.PVM, tags = {"world", "world map", "hide", "button", "map", "hide world map", "pklite"} ) public class WorldMapHiderPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java index fe91da0930..1f3d4ae0a9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/ztob/TheatrePlugin.java @@ -20,6 +20,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.Subscribe; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.Text; @@ -31,7 +32,7 @@ import java.util.*; description = "All-in-one plugin for Theatre of Blood", tags = {"ToB"}, enabledByDefault = false, - type = "PVM" + type = PluginType.PVM ) public class TheatrePlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java index 4fdbe3fa25..534f836349 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/zulrah/ZulrahPlugin.java @@ -17,6 +17,7 @@ import net.runelite.client.config.ConfigManager; import net.runelite.client.game.SpriteManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginType; import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ImageUtil; @@ -24,7 +25,7 @@ import net.runelite.client.util.ImageUtil; name = "Zulrah", description = "Zulrah Helper", tags = {"Zulrah", "Helper"}, - type = "PVM" + type = PluginType.PVM ) public class ZulrahPlugin extends Plugin { From d63d125df2e4dcdcba2fb62f3d0038df2db79a66 Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Mon, 22 Apr 2019 22:35:37 +0200 Subject: [PATCH 5/6] Use the PluginType enum in ConfigPanel --- .../client/plugins/config/ConfigPanel.java | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java index ea8908b824..4037f639d1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPanel.java @@ -82,6 +82,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.plugins.PluginInstantiationException; import net.runelite.client.plugins.PluginManager; +import net.runelite.client.plugins.PluginType; import net.runelite.client.plugins.pluginsorter.PluginSorterPlugin; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.DynamicGridLayout; @@ -219,7 +220,7 @@ public class ConfigPanel extends PluginPanel List pvmPlugins = new ArrayList<>(); // populate pluginList with all PVM Plugins pluginManager.getPlugins().stream() - .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("PVM")) + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.PVM)) .forEach(plugin -> { final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); @@ -239,7 +240,7 @@ public class ConfigPanel extends PluginPanel List pvpPlugins = new ArrayList<>(); // populate pluginList with all PVP Plugins pluginManager.getPlugins().stream() - .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("PVP")) + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.PVP)) .forEach(plugin -> { final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); @@ -259,7 +260,7 @@ public class ConfigPanel extends PluginPanel List utilPlugins = new ArrayList<>(); // populate pluginList with all utility Plugins pluginManager.getPlugins().stream() - .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("utility")) + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.UTILITY)) .forEach(plugin -> { final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); @@ -287,10 +288,10 @@ public class ConfigPanel extends PluginPanel List vanillaPlugins = new ArrayList<>(); pluginManager.getPlugins().stream() .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden()) - .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("PVM")) - .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("PVP")) - .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("utility")) - .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("pluginOrganizer")) + .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.PVM)) + .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.PVP)) + .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.UTILITY)) + .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.PLUGIN_ORGANIZER)) .forEach(plugin -> { final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); @@ -322,7 +323,7 @@ public class ConfigPanel extends PluginPanel // Add plugin sorter to bottom pluginManager.getPlugins().stream() - .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("pluginOrganizer")) + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals(PluginType.PLUGIN_ORGANIZER)) .forEach(plugin -> { final PluginDescriptor descriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); From b05432e2c527e7813e9c278cc09803380afc599b Mon Sep 17 00:00:00 2001 From: Scott Burns Date: Mon, 22 Apr 2019 22:47:37 +0200 Subject: [PATCH 6/6] Small refactor to Plugin sorter --- .../pluginsorter/PluginSorterPlugin.java | 76 ++++++++----------- 1 file changed, 32 insertions(+), 44 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java index 34285f6ea8..c5d48b0d82 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java @@ -76,24 +76,23 @@ public class PluginSorterPlugin extends Plugin { public void updateColors() { for (PluginListItem pli : ConfigPanel.pluginList) { if (pli.getPlugin()!=null) { - if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()!=null) - switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()) { - case EXTERNAL: - pli.nameLabel.setForeground(config.externalColor()); - break; - case PVM: - pli.nameLabel.setForeground(config.pvmColor()); - break; - case PVP: - pli.nameLabel.setForeground(config.pvpColor()); - break; - case UTILITY: - pli.nameLabel.setForeground(config.utilityColor()); - break; - default: - pli.nameLabel.setForeground(Color.WHITE); - break; - } + switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()) { + case EXTERNAL: + pli.nameLabel.setForeground(config.externalColor()); + break; + case PVM: + pli.nameLabel.setForeground(config.pvmColor()); + break; + case PVP: + pli.nameLabel.setForeground(config.pvpColor()); + break; + case UTILITY: + pli.nameLabel.setForeground(config.utilityColor()); + break; + default: + pli.nameLabel.setForeground(Color.WHITE); + break; + } } } } @@ -103,38 +102,27 @@ public class PluginSorterPlugin extends Plugin { while (iter.hasNext()) { PluginListItem pli = iter.next(); if (pli.getPlugin() != null) { - if (!pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("")) - if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("external")) { - iter.remove(); - removedPlugins.add(pli); - } - if (!pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("")) - if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("PVM")) { - iter.remove(); - removedPlugins.add(pli); - } - if (!pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("")) - if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("PVP")) { - iter.remove(); - removedPlugins.add(pli); - } - if (!pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("")) - if (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type().equals("utility")) { - iter.remove(); - removedPlugins.add(pli); - } + switch (pli.getPlugin().getClass().getAnnotation(PluginDescriptor.class).type()) + { + case PVM: + case PVP: + case UTILITY: + case EXTERNAL: + iter.remove(); + removedPlugins.add(pli); + break; + case GENERAL_USE: + default: + break; + } } } } public void showPlugins() { List tempList = new ArrayList<>(); - for (PluginListItem pli : removedPlugins) { - tempList.add(pli); - } - for (PluginListItem pli : ConfigPanel.pluginList) { - tempList.add(pli); - } + tempList.addAll(removedPlugins); + tempList.addAll(ConfigPanel.pluginList); ConfigPanel.pluginList = tempList; } }