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 540adecc24..78cb1d38d5 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 @@ -58,4 +58,6 @@ public @interface PluginDescriptor boolean developerPlugin() default false; boolean loadWhenOutdated() default false; + + String type() default ""; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningConfig.java index af1b361ec0..e9151c125e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/aoewarnings/AoeWarningConfig.java @@ -28,9 +28,22 @@ import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; +import java.awt.*; + @ConfigGroup("aoe") public interface AoeWarningConfig extends Config { + @ConfigItem( + keyName = "pluginType", + name = "Plugin Type", + description = "Sets the group of this plugin", + hidden = true + ) + default String pluginTyoe() + { + return "PVM"; + } + @ConfigItem( keyName = "enabled", name = "AoE Warnings Enabled", 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 c3219d53b7..2fa20d725f 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 @@ -61,9 +61,10 @@ import java.util.Map; import java.util.logging.Logger; @PluginDescriptor( - name = "!AoE Warnings", + name = "AoE Warnings", description = "Shows the final destination for AoE Attack projectiles", - tags = {"bosses", "combat", "pve", "overlay"} + tags = {"bosses", "combat", "pve", "overlay"}, + type = "PVM" ) @Slf4j 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 d71d054674..7821fd8946 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 @@ -22,9 +22,10 @@ import net.runelite.client.util.Text; import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( - name = "!Clan Man Mode", + name = "Clan Man Mode", description = "Assists in clan PVP scenarios", - tags = {"highlight", "minimap", "overlay", "players"} + tags = {"highlight", "minimap", "overlay", "players"}, + type = "PVP" ) public class ClanManModePlugin extends Plugin { 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 6f5712f4a8..6759c7fa58 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.pluginsorter.PluginSorterPlugin; import net.runelite.client.ui.ColorScheme; import net.runelite.client.ui.DynamicGridLayout; import net.runelite.client.ui.PluginPanel; @@ -112,7 +113,7 @@ public class ConfigPanel extends PluginPanel private final ScheduledExecutorService executorService; private final RuneLiteConfig runeLiteConfig; private final ChatColorConfig chatColorConfig; - private final List pluginList = new ArrayList<>(); + public static List pluginList = new ArrayList<>(); private final IconTextField searchBar = new IconTextField(); private final JPanel topPanel; @@ -187,40 +188,123 @@ public class ConfigPanel extends PluginPanel initializePluginList(); refreshPluginList(); + } private void initializePluginList() { final List pinnedPlugins = getPinnedPluginNames(); - // populate pluginList with all non-hidden plugins + List pvmPlugins = new ArrayList<>(); + // populate pluginList with all PVM Plugins pluginManager.getPlugins().stream() - .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden()) + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("PVM")) .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); + final PluginListItem listItem = new PluginListItem(this, configManager, plugin, descriptor, config, configDescriptor); + System.out.println("Started "+listItem.getName()); listItem.setPinned(pinnedPlugins.contains(listItem.getName())); - pluginList.add(listItem); + pvmPlugins.add(listItem); }); + pvmPlugins.sort(Comparator.comparing(PluginListItem::getName)); + for (PluginListItem plugin : pvmPlugins) + pluginList.add(plugin); + + List pvpPlugins = new ArrayList<>(); + // populate pluginList with all PVP Plugins + pluginManager.getPlugins().stream() + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("PVP")) + .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, configManager, plugin, descriptor, config, configDescriptor); + System.out.println("Started "+listItem.getName()); + listItem.setPinned(pinnedPlugins.contains(listItem.getName())); + pvpPlugins.add(listItem); + }); + + pvpPlugins.sort(Comparator.comparing(PluginListItem::getName)); + for (PluginListItem plugin : pvpPlugins) + pluginList.add(plugin); + + List utilPlugins = new ArrayList<>(); + // populate pluginList with all PVP Plugins + pluginManager.getPlugins().stream() + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("utility")) + .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, configManager, plugin, descriptor, config, configDescriptor); + System.out.println("Started "+listItem.getName()); + listItem.setPinned(pinnedPlugins.contains(listItem.getName())); + utilPlugins.add(listItem); + }); + + utilPlugins.sort(Comparator.comparing(PluginListItem::getName)); + for (PluginListItem plugin : utilPlugins) + pluginList.add(plugin); + + // populate pluginList with all vanilla RL plugins + 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")) + .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, configManager, plugin, descriptor, config, configDescriptor); + listItem.setPinned(pinnedPlugins.contains(listItem.getName())); + vanillaPlugins.add(listItem); + } + ); + + vanillaPlugins.sort(Comparator.comparing(PluginListItem::getName)); + for (PluginListItem plugin : vanillaPlugins) + pluginList.add(plugin); + // add special entries for core client configurations - final PluginListItem runeLite = new PluginListItem(this, runeLiteConfig, + final PluginListItem runeLite = new PluginListItem(this, configManager, runeLiteConfig, 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, + final PluginListItem chatColor = new PluginListItem(this, configManager, chatColorConfig, configManager.getConfigDescriptor(chatColorConfig), CHAT_COLOR_PLUGIN, "Recolor chat text", "colour", "messages"); chatColor.setPinned(pinnedPlugins.contains(CHAT_COLOR_PLUGIN)); pluginList.add(chatColor); - pluginList.sort(Comparator.comparing(PluginListItem::getName)); + // Add plugin sorter to bottom + pluginManager.getPlugins().stream() + .filter(plugin -> plugin.getClass().getAnnotation(PluginDescriptor.class).type().equals("pluginOrganizer")) + .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, configManager, plugin, descriptor, config, configDescriptor); + System.out.println("Started "+listItem.getName()); + pluginList.add(listItem); + }); } void refreshPluginList() 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 c6a23544c7..6f52c04660 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 @@ -33,6 +33,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; import javax.annotation.Nullable; +import javax.inject.Inject; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JPanel; @@ -40,16 +41,20 @@ import lombok.AccessLevel; import lombok.Getter; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigDescriptor; +import net.runelite.client.config.ConfigItemDescriptor; +import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.PluginPanel; import net.runelite.client.ui.components.IconButton; +import net.runelite.client.util.ColorUtil; import net.runelite.client.util.ImageUtil; import org.apache.commons.text.similarity.JaroWinklerDistance; -class PluginListItem extends JPanel +public class PluginListItem extends JPanel { private static final JaroWinklerDistance DISTANCE = new JaroWinklerDistance(); + public JLabel nameLabel; private static final ImageIcon CONFIG_ICON; private static final ImageIcon CONFIG_ICON_HOVER; @@ -59,6 +64,7 @@ class PluginListItem extends JPanel private static final ImageIcon OFF_STAR; private final ConfigPanel configPanel; + public final ConfigManager configManager; @Getter @Nullable @@ -70,7 +76,7 @@ class PluginListItem extends JPanel @Nullable @Getter(AccessLevel.PACKAGE) - private final ConfigDescriptor configDescriptor; + public final ConfigDescriptor configDescriptor; @Getter private final String name; @@ -120,26 +126,27 @@ class PluginListItem extends JPanel * Note that {@code config} and {@code configDescriptor} can be {@code null} * if there is no configuration associated with the plugin. */ - PluginListItem(ConfigPanel configPanel, Plugin plugin, PluginDescriptor descriptor, + PluginListItem(ConfigPanel configPanel, ConfigManager configManager, Plugin plugin, PluginDescriptor descriptor, @Nullable Config config, @Nullable ConfigDescriptor configDescriptor) { - this(configPanel, plugin, config, configDescriptor, + this(configPanel, configManager, plugin, config, configDescriptor, descriptor.name(), descriptor.description(), descriptor.tags()); } /** * Creates a new {@code PluginListItem} for a core configuration. */ - PluginListItem(ConfigPanel configPanel, Config config, ConfigDescriptor configDescriptor, + PluginListItem(ConfigPanel configPanel, ConfigManager configManager, Config config, ConfigDescriptor configDescriptor, String name, String description, String... tags) { - this(configPanel, null, config, configDescriptor, name, description, tags); + this(configPanel, configManager, null, config, configDescriptor, name, description, tags); } - private PluginListItem(ConfigPanel configPanel, @Nullable Plugin plugin, @Nullable Config config, + private PluginListItem(ConfigPanel configPanel, ConfigManager configManager, @Nullable Plugin plugin, @Nullable Config config, @Nullable ConfigDescriptor configDescriptor, String name, String description, String... tags) { this.configPanel = configPanel; + this.configManager = configManager; this.plugin = plugin; this.config = config; this.configDescriptor = configDescriptor; @@ -152,8 +159,7 @@ class PluginListItem extends JPanel setLayout(new BorderLayout(3, 0)); setPreferredSize(new Dimension(PluginPanel.PANEL_WIDTH, 20)); - JLabel nameLabel = new JLabel(name); - nameLabel.setForeground(Color.WHITE); + nameLabel = new JLabel(name); if (!description.isEmpty()) { 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 8af1567609..02ad6e0b35 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 @@ -32,8 +32,10 @@ import java.util.*; import java.util.concurrent.ScheduledExecutorService; @PluginDescriptor( - name = "!Equipment Inspector", - enabledByDefault = false + name = "Equipment Inspector", + description = "Inspects enemy equipment", + enabledByDefault = false, + type = "PVP" ) @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 4eeb311101..8488545015 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 @@ -15,9 +15,10 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( - name = "!Fight Cave - Jad", + name = "Fight Cave - Jad", description = "Show what to pray against Jad", tags = {"bosses", "combat", "minigame", "overlay", "prayer", "pve", "pvm"}, + type = "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 d06451a9d0..b3321a3b33 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 @@ -45,9 +45,10 @@ import net.runelite.client.ui.overlay.OverlayManager; import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( - name = "!Fight Cave - Waves", + 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", enabledByDefault = false ) public class FightCaveWaveHelperPlugin 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 878270bfd4..50f81cf94f 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 @@ -57,9 +57,10 @@ import net.runelite.client.util.ImageUtil; import org.slf4j.Logger; @PluginDescriptor( - name = "!Freeze Timers", + name = "Freeze Timers", description = "PVP Freeze Timers", - tags = {"PvP", "Freeze", "Timers"} + tags = {"PvP", "Freeze", "Timers"}, + type = "PVP" ) public class FreezeTimersPlugin 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 d6df9dc49f..a7f59a7bed 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 @@ -30,9 +30,10 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( - name = "!Grotesque Guardians", + name = "Grotesque Guardians", description = "Display tile indicators for the Grotesque Guardian special attacks", - tags = {"grotesque", "guardians", "gargoyle", "garg"} + tags = {"grotesque", "guardians", "gargoyle", "garg"}, + type = "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 df473a5d0d..61f9b91b44 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 @@ -20,8 +20,9 @@ import java.util.Objects; import java.util.stream.Collectors; @PluginDescriptor( - name = "!Hide Prayers", - description = "Hides specific Prayers in the Prayer tab." + name = "Hide Prayers", + description = "Hides specific Prayers in the Prayer tab.", + type = "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/kittennotifier/KittenNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java index 921dcd4a46..4b6baf66a9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java @@ -14,9 +14,10 @@ import net.runelite.api.Client; import javax.inject.Inject; @PluginDescriptor( - name = "!Kitten Notifier", + name = "Kitten Notifier", description = "Sends a notification when your kitten needs food, attention, or is grown.", - tags = {"kitten, notifications"} + tags = {"kitten, notifications"}, + type = "utility" ) public class KittenNotifierPlugin extends Plugin{ @Inject @@ -54,7 +55,7 @@ public class KittenNotifierPlugin extends Plugin{ if (!config.catOwned()) { for (NPC npc : client.getNpcs()) { if (npc.getInteracting() != null) { - if (npc.getName().contentEquals("Cat") && !config.catOwned()) { + if (npc.getName().equals("Cat") && !config.catOwned()) { // If this if statement is included in previous it could null. if (npc.getInteracting().getName().contentEquals(client.getLocalPlayer().getName())) { config.catOwned(true); 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 e6b3923fea..6b93885523 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 @@ -19,10 +19,11 @@ import java.util.Map; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( - name = "!Lizard Shamans", + name = "Lizard Shamans", description = "Configures timer for lizardmen shaman spawns.", enabledByDefault = false, - tags = {"shaman", "lizard", "lizardmen"} + tags = {"shaman", "lizard", "lizardmen"}, + type = "PVM" ) @Slf4j public class LizardmenShamanPlugin 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 dc5b9e7a27..fedf163a55 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 @@ -25,10 +25,11 @@ import java.util.Iterator; import java.util.List; @PluginDescriptor( - name = "!Menu Modifier", + name = "Menu Modifier", description = "Changes right click menu for players", tags = { "menu", "modifier", "right", "click", "pk", "bogla" }, - enabledByDefault = false + enabledByDefault = false, + type = "utility" ) public class MenuModifierPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/MapLocations.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MapLocations.java similarity index 99% rename from runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/MapLocations.java rename to runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MapLocations.java index 81e8e0f527..09cdabf83f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/MapLocations.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MapLocations.java @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.zoneIndicators; +package net.runelite.client.plugins.multiindicators; import java.awt.Polygon; import java.awt.Rectangle; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java similarity index 96% rename from runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsConfig.java rename to runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java index 370533dac7..0436d936ce 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsConfig.java @@ -22,15 +22,15 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.zoneIndicators; +package net.runelite.client.plugins.multiindicators; import java.awt.Color; import net.runelite.client.config.Config; import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigItem; -@ConfigGroup("zoneIndicators") -public interface ZoneIndicatorsConfig extends Config +@ConfigGroup("multiindicators") +public interface MultiIndicatorsConfig extends Config { @ConfigItem( keyName = "multicombatZoneVisibility", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsMinimapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java similarity index 94% rename from runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsMinimapOverlay.java rename to runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java index 699b0f0ddf..a0d87a4691 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsMinimapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsMinimapOverlay.java @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.zoneIndicators; +package net.runelite.client.plugins.multiindicators; import java.awt.Color; import java.awt.Dimension; @@ -40,7 +40,7 @@ import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; -public class ZoneIndicatorsMinimapOverlay extends Overlay +public class MultiIndicatorsMinimapOverlay extends Overlay { private final static int MAX_LOCAL_DRAW_LENGTH = 20 * Perspective.LOCAL_TILE_SIZE; @@ -48,13 +48,13 @@ public class ZoneIndicatorsMinimapOverlay extends Overlay private Client client; @Inject - private ZoneIndicatorsPlugin plugin; + private MultiIndicatorsPlugin plugin; @Inject - private ZoneIndicatorsConfig config; + private MultiIndicatorsConfig config; @Inject - public ZoneIndicatorsMinimapOverlay() + public MultiIndicatorsMinimapOverlay() { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ALWAYS_ON_TOP); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java similarity index 95% rename from runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsOverlay.java rename to runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java index 0f52222e8b..242effb5aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsOverlay.java @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.zoneIndicators; +package net.runelite.client.plugins.multiindicators; import java.awt.BasicStroke; import java.awt.Color; @@ -41,7 +41,7 @@ import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; import net.runelite.client.ui.overlay.OverlayPriority; -public class ZoneIndicatorsOverlay extends Overlay +public class MultiIndicatorsOverlay extends Overlay { private final static int MAX_LOCAL_DRAW_LENGTH = 20 * Perspective.LOCAL_TILE_SIZE; @@ -49,13 +49,13 @@ public class ZoneIndicatorsOverlay extends Overlay private Client client; @Inject - private ZoneIndicatorsPlugin plugin; + private MultiIndicatorsPlugin plugin; @Inject - private ZoneIndicatorsConfig config; + private MultiIndicatorsConfig config; @Inject - public ZoneIndicatorsOverlay() + public MultiIndicatorsOverlay() { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_SCENE); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java similarity index 95% rename from runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsPlugin.java rename to runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java index 5f3397e900..8410d96d40 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/MultiIndicatorsPlugin.java @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.zoneIndicators; +package net.runelite.client.plugins.multiindicators; import net.runelite.client.eventbus.Subscribe; import com.google.inject.Provides; @@ -52,12 +52,13 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( - name = "!MultiLines", + name = "Multi-Lines", description = "Show borders of multicombat and PvP safezones", tags = {"multicombat", "lines", "pvp", "deadman", "safezones", "bogla"}, - enabledByDefault = false + enabledByDefault = false, + type = "PVP" ) -public class ZoneIndicatorsPlugin extends Plugin +public class MultiIndicatorsPlugin extends Plugin { @Inject private Client client; @@ -66,13 +67,13 @@ public class ZoneIndicatorsPlugin extends Plugin private ClientThread clientThread; @Inject - private ZoneIndicatorsConfig config; + private MultiIndicatorsConfig config; @Inject - private ZoneIndicatorsOverlay overlay; + private MultiIndicatorsOverlay overlay; @Inject - private ZoneIndicatorsMinimapOverlay minimapOverlay; + private MultiIndicatorsMinimapOverlay minimapOverlay; @Inject private OverlayManager overlayManager; @@ -92,9 +93,9 @@ public class ZoneIndicatorsPlugin extends Plugin private int currentPlane; @Provides - ZoneIndicatorsConfig getConfig(ConfigManager configManager) + MultiIndicatorsConfig getConfig(ConfigManager configManager) { - return configManager.getConfig(ZoneIndicatorsConfig.class); + return configManager.getConfig(MultiIndicatorsConfig.class); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneVisibility.java b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/ZoneVisibility.java similarity index 96% rename from runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneVisibility.java rename to runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/ZoneVisibility.java index 9a457d9e50..93ca7e8e26 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/zoneIndicators/ZoneVisibility.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/multiindicators/ZoneVisibility.java @@ -22,7 +22,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package net.runelite.client.plugins.zoneIndicators; +package net.runelite.client.plugins.multiindicators; import lombok.RequiredArgsConstructor; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java index ccece4d4a4..ce6c1ca925 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java @@ -16,10 +16,11 @@ import net.runelite.client.ui.overlay.OverlayManager; import javax.inject.Inject; @PluginDescriptor( - name = "!Next Hit Notifier", + name = "Next Hit Notifier", description = "Shows estimated next hit based on xp drop.", tags = { "experience", "damage", "overlay", "pking", "bogla" }, - enabledByDefault = false + enabledByDefault = false, + type = "utility" ) public class NextHitNotifierPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pkvision/PKVisionPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pkvision/PKVisionPlugin.java index 6fc74fb2c2..5aeb136c66 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pkvision/PKVisionPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pkvision/PKVisionPlugin.java @@ -18,10 +18,11 @@ import net.runelite.client.util.MiscUtils; import net.runelite.client.util.Text; @PluginDescriptor( - name = "!PK Vision", + name = "PK Vision", description = "Highlight players on-screen and/or on the minimap", tags = {"highlight", "minimap", "overlay", "players", "pk", "helper", "vision", "bogla"}, - enabledByDefault = false + enabledByDefault = false, + type = "PVP" ) public class PKVisionPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterConfig.java new file mode 100644 index 0000000000..2287b5a0ef --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterConfig.java @@ -0,0 +1,60 @@ +package net.runelite.client.plugins.pluginsorter; + +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigItem; + +import java.awt.*; + +@ConfigGroup("runelit") +public interface PluginSorterConfig extends Config { + + Color rlDefault = new Color(250, 155, 23); + + boolean pluginsHidden = false; + + @ConfigItem( + position = 0, + keyName = "hidePlugins", + name = "Hide Plugins", + description = "Hides all 3rd party plugins if checked" + ) + default boolean hidePlugins() + { + return pluginsHidden; + } + + @ConfigItem( + position = 1, + keyName = "pvmColor", + name = "PVM color", + description = "Configure the color of PVM related plugins" + ) + default Color pvmColor() + { + return Color.GREEN; + } + + @ConfigItem( + position = 2, + keyName = "pvpColor", + name = "PVP color", + description = "Configure the color of PVP related plugins" + ) + default Color pvpColor() + { + return Color.RED; + } + + @ConfigItem( + position = 3, + keyName = "utilityColor", + name = "Utility color", + description = "Configure the color of utility related plugins" + ) + default Color utilityColor() + { + return Color.CYAN; + } + +} 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 new file mode 100644 index 0000000000..2e7604f536 --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pluginsorter/PluginSorterPlugin.java @@ -0,0 +1,124 @@ +package net.runelite.client.plugins.pluginsorter; + +import com.google.inject.Provides; +import net.runelite.api.GameState; +import net.runelite.api.events.ConfigChanged; +import net.runelite.api.events.GameStateChanged; +import net.runelite.client.config.ConfigItemDescriptor; +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.config.ConfigPanel; +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( + name = "Plugin Organizer", + description = "Hides and colors 3rd party plugins for better control", + tags = {"Fuck RL","Abex is shit :p"}, + type = "pluginOrganizer" +) +public class PluginSorterPlugin extends Plugin { + + //Cache the hidden plugins + public static List removedPlugins = new ArrayList<>(); + + @Inject + private PluginSorterConfig config; + + @Provides + PluginSorterConfig provideConfig(ConfigManager configManager) + { + return configManager.getConfig(PluginSorterConfig.class); + } + + @Override + protected void startUp() throws Exception + { + updateColors(); + } + + @Override + protected void shutDown() throws Exception + { + + } + + @Subscribe + public void onGameStateChanged (GameStateChanged gameStateChanged) + { + if (gameStateChanged.getGameState()== GameState.LOGIN_SCREEN) { + if (config.hidePlugins()) + hidePlugins(); + updateColors(); + } + } + + @Subscribe + public void onConfigChanged(ConfigChanged configChanged) { + if (configChanged.getKey().equals("hidePlugins")) { + if (config.hidePlugins()) { + hidePlugins(); + } else { + showPlugins(); + } + } + updateColors(); + } + + public void updateColors() { + 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("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); + } + } + } + + public void hidePlugins() { + Iterator iter = ConfigPanel.pluginList.iterator(); + 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("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); + } + } + } + + public void showPlugins() { + List tempList = new ArrayList<>(); + for (PluginListItem pli : removedPlugins) { + tempList.add(pli); + } + for (PluginListItem pli : ConfigPanel.pluginList) { + tempList.add(pli); + } + ConfigPanel.pluginList = tempList; + } +} 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 5664621b60..c0dc2644a1 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 @@ -42,9 +42,10 @@ import java.util.ArrayList; import java.util.Arrays; @PluginDescriptor( - name = "!Pray Against Player", + name = "Pray Against Player", description = "Use plugin in PvP situations for best results!!", - tags = {"highlight", "pvp", "overlay", "players"} + tags = {"highlight", "pvp", "overlay", "players"}, + type = "PVP" ) /** 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 aef2adb45e..cedc212d04 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 @@ -41,10 +41,11 @@ import javax.inject.Inject; * Shift Walker Plugin. Credit to MenuEntrySwapperPlugin for code some code structure used here. */ @PluginDescriptor( - name = "!Shift To Walk Here", + name = "Shift To Walk", 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 + enabledByDefault = false, + type = "utility" ) public class ShiftWalkerPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java index 7e07a0564d..c856886cb2 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayermusiq/SlayermusiqPlugin.java @@ -76,9 +76,10 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "!Slayermusiq1 Guides", + name = "Slayermusiq1 Guides", description = "Adds a right-click option to go to Slayermusiq1's guides from the quest tab", - tags = {"quest", "guide", "slayermusiq"} + tags = {"quest", "guide", "slayermusiq"}, + type = "utility" ) @Slf4j public class SlayermusiqPlugin extends Plugin 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 fe2130285c..4e40b23ff3 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 @@ -21,9 +21,10 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; -@PluginDescriptor(name = "!Tick Counter", +@PluginDescriptor(name = "Tick Counter", description = "Counts combat activity for nearby players", - enabledByDefault = false + enabledByDefault = false, + type = "utility" ) public class TickCounterPlugin extends Plugin { 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 9df9a4fa57..847c1f3678 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 @@ -40,9 +40,10 @@ import java.util.HashMap; import java.util.Map; @PluginDescriptor( - name = "!Vetion", + name = "Vetion", description = "Tracks Vet'ion's special attacks", - tags = {"bosses", "combat", "pve", "overlay"} + tags = {"bosses", "combat", "pve", "overlay"}, + type = "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 1ba5e4b0e7..060a9d2246 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 @@ -14,9 +14,10 @@ import net.runelite.client.ui.overlay.OverlayManager; import org.apache.commons.lang3.ArrayUtils; @PluginDescriptor( - name = "!Vorkath", + name = "Vorkath", description = "Vorkath Helper", - tags = {"Vorkath", "Helper"} + tags = {"Vorkath", "Helper"}, + type = "PVM" ) public class VorkathPlugin 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 8fa2ee2481..ee7cee5f4a 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 @@ -26,9 +26,10 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.OverlayManager; @PluginDescriptor( - name = "!Theatre of Blood", + name = "Theatre of Blood", description = "All-in-one plugin for Theatre of Blood", tags = {"ToB"}, + type = "PVM", enabledByDefault = false ) 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 10c9f89e74..4fdbe3fa25 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 @@ -21,9 +21,10 @@ import net.runelite.client.ui.overlay.OverlayManager; import net.runelite.client.util.ImageUtil; @PluginDescriptor( - name = "!Zulrah", + name = "Zulrah", description = "Zulrah Helper", - tags = {"Zulrah", "Helper"} + tags = {"Zulrah", "Helper"}, + type = "PVM" ) public class ZulrahPlugin extends Plugin {