diff --git a/runelite-client/src/main/java/net/runelite/client/RuneLite.java b/runelite-client/src/main/java/net/runelite/client/RuneLite.java index 4fb9e71652..d1d875885d 100644 --- a/runelite-client/src/main/java/net/runelite/client/RuneLite.java +++ b/runelite-client/src/main/java/net/runelite/client/RuneLite.java @@ -151,7 +151,7 @@ public class RuneLite // Initialize Discord service discordService.init(); - // Load default configuration + // Load user configuration configManager.load(); // Register event listeners @@ -159,6 +159,7 @@ public class RuneLite eventBus.register(menuManager); eventBus.register(chatMessageManager); eventBus.register(gui); + eventBus.register(pluginManager); // Setup the notifier notifier = new Notifier(properties.getTitle(), gui.getTrayIcon()); @@ -172,7 +173,7 @@ public class RuneLite // Plugins have provided their config, so set default config // to main settings - configManager.loadDefault(); + pluginManager.loadDefaultPluginConfiguration(); // Start plugins pluginManager.startCorePlugins(); diff --git a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java index ee74cc1fae..f72fcf0b93 100644 --- a/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java +++ b/runelite-client/src/main/java/net/runelite/client/account/SessionManager.java @@ -41,10 +41,10 @@ import javax.inject.Inject; import javax.inject.Singleton; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import net.runelite.client.RuneLite; -import net.runelite.client.config.ConfigManager; import net.runelite.api.events.SessionClose; import net.runelite.api.events.SessionOpen; +import net.runelite.client.RuneLite; +import net.runelite.client.config.ConfigManager; import net.runelite.http.api.account.AccountClient; import net.runelite.http.api.account.OAuthResponse; import net.runelite.http.api.ws.messages.LoginResponse; @@ -261,4 +261,4 @@ public class SessionManager closeSession(); deleteSession(); } -} \ No newline at end of file +} diff --git a/runelite-client/src/main/java/net/runelite/client/config/Config.java b/runelite-client/src/main/java/net/runelite/client/config/Config.java index 4c82282d7d..6c95e9941a 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/Config.java +++ b/runelite-client/src/main/java/net/runelite/client/config/Config.java @@ -26,5 +26,4 @@ package net.runelite.client.config; public interface Config { - } diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java index 66637c58f4..8f1a97a1f1 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigManager.java @@ -25,8 +25,6 @@ package net.runelite.client.config; import com.google.common.eventbus.EventBus; -import com.google.inject.Injector; -import com.google.inject.Key; import java.awt.Color; import java.awt.Dimension; import java.io.File; @@ -37,8 +35,8 @@ import java.io.IOException; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.lang.reflect.Proxy; -import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.Properties; import java.util.concurrent.ScheduledExecutorService; @@ -46,10 +44,9 @@ import java.util.stream.Collectors; import javax.inject.Inject; import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.events.ConfigChanged; import net.runelite.client.RuneLite; import net.runelite.client.account.AccountSession; -import net.runelite.api.events.ConfigChanged; -import net.runelite.client.plugins.PluginManager; import net.runelite.http.api.config.ConfigClient; import net.runelite.http.api.config.ConfigEntry; import net.runelite.http.api.config.Configuration; @@ -66,9 +63,6 @@ public class ConfigManager @Inject ScheduledExecutorService executor; - @Inject - PluginManager pluginManager; - private AccountSession session; private ConfigClient client; private File propertiesFile; @@ -81,42 +75,6 @@ public class ConfigManager this.propertiesFile = getPropertiesFile(); } - public ConfigManager(EventBus eventBus, AccountSession session) - { - this.eventBus = eventBus; - switchSession(session); - } - - public List getConfigProxies() - { - List injectors = new ArrayList<>(); - injectors.add(RuneLite.getInjector()); - pluginManager.getPlugins().forEach(pl -> injectors.add(pl.getInjector())); - - List list = new ArrayList<>(); - for (Injector injector : injectors) - { - for (Key key : injector.getAllBindings().keySet()) - { - Class type = key.getTypeLiteral().getRawType(); - if (Config.class.isAssignableFrom(type)) - { - Config config = (Config) injector.getInstance(key); - list.add(config); - } - } - } - return list; - } - - public void loadDefault() - { - for (Object config : getConfigProxies()) - { - setDefaultConfiguration(config, false); - } - } - public final void switchSession(AccountSession session) { if (session == null) @@ -133,7 +91,6 @@ public class ConfigManager this.propertiesFile = getPropertiesFile(); load(); // load profile specific config - loadDefault(); // set defaults over anything not set } private File getPropertiesFile() @@ -183,8 +140,18 @@ public class ConfigManager for (ConfigEntry entry : configuration.getConfig()) { log.debug("Loading configuration value from client {}: {}", entry.getKey(), entry.getValue()); + final String[] split = entry.getKey().split("\\."); + final String groupName = split[0]; + final String key = split[1]; + final String value = entry.getValue(); + final String oldValue = (String) properties.setProperty(entry.getKey(), value); - properties.setProperty(entry.getKey(), entry.getValue()); + ConfigChanged configChanged = new ConfigChanged(); + configChanged.setGroup(groupName); + configChanged.setKey(key); + configChanged.setOldValue(oldValue); + configChanged.setNewValue(value); + eventBus.post(configChanged); } try @@ -343,16 +310,11 @@ public class ConfigManager List items = Arrays.stream(inter.getMethods()) .filter(m -> m.getParameterCount() == 0) - .sorted((m1, m2) - -> Integer.compare( - m1.getDeclaredAnnotation(ConfigItem.class).position(), - m2.getDeclaredAnnotation(ConfigItem.class).position() - ) - ) + .sorted(Comparator.comparingInt(m -> m.getDeclaredAnnotation(ConfigItem.class).position())) .map(m -> new ConfigItemDescriptor( - m.getDeclaredAnnotation(ConfigItem.class), - m.getReturnType() - )) + m.getDeclaredAnnotation(ConfigItem.class), + m.getReturnType() + )) .collect(Collectors.toList()); return new ConfigDescriptor(group, items); } 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 19599c815c..2db2db78fa 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 @@ -37,6 +37,14 @@ public @interface PluginDescriptor { String name(); + boolean enabledByDefault() default true; + + /** + * Whether or not plugin is hidden from configuration panel + * @return + */ + boolean hidden() default false; + boolean developerPlugin() default false; boolean loadWhenOutdated() default false; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java index 491b173ed9..a554c9d090 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/PluginManager.java @@ -26,12 +26,14 @@ package net.runelite.client.plugins; import com.google.common.collect.ImmutableSet; import com.google.common.eventbus.EventBus; +import com.google.common.eventbus.Subscribe; import com.google.common.reflect.ClassPath; import com.google.common.reflect.ClassPath.ClassInfo; import com.google.inject.Binder; import com.google.inject.CreationException; import com.google.inject.Inject; import com.google.inject.Injector; +import com.google.inject.Key; import com.google.inject.Module; import java.io.IOException; import java.lang.reflect.InvocationTargetException; @@ -40,15 +42,23 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.ScheduledExecutorService; import javax.inject.Singleton; import javax.swing.SwingUtilities; import lombok.Setter; import lombok.extern.slf4j.Slf4j; +import net.runelite.api.events.SessionClose; +import net.runelite.api.events.SessionOpen; import net.runelite.client.RuneLite; +import net.runelite.client.config.Config; +import net.runelite.client.config.ConfigGroup; +import net.runelite.client.config.ConfigManager; +import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.events.PluginChanged; import net.runelite.client.task.Schedule; import net.runelite.client.task.ScheduledMethod; import net.runelite.client.task.Scheduler; +import net.runelite.client.util.RegionTileManager; @Singleton @Slf4j @@ -65,10 +75,114 @@ public class PluginManager @Inject Scheduler scheduler; + @Inject + ConfigManager configManager; + + @Inject + ScheduledExecutorService executor; + + @Inject + RegionTileManager regionTileManager; + @Setter boolean isOutdated; private final List plugins = new CopyOnWriteArrayList<>(); + private final List activePlugins = new CopyOnWriteArrayList<>(); + private final String runeliteGroupName = RuneLiteConfig.class + .getAnnotation(ConfigGroup.class).keyName(); + + @Subscribe + public void onSessionOpen(SessionOpen event) + { + refreshPlugins(); + } + + @Subscribe + public void onSessionClose(SessionClose event) + { + refreshPlugins(); + } + + private void refreshPlugins() + { + loadDefaultPluginConfiguration(); + getPlugins() + .forEach(plugin -> executor.submit(() -> + { + try + { + if (!startPlugin(plugin)) + { + stopPlugin(plugin); + } + } + catch (PluginInstantiationException e) + { + log.warn("Error during starting/stopping plugin {}. {}", plugin.getClass().getSimpleName(), e); + } + })); + } + + public Config getPluginConfigProxy(Plugin plugin) + { + final Injector injector = plugin.getInjector(); + + for (Key key : injector.getAllBindings().keySet()) + { + Class type = key.getTypeLiteral().getRawType(); + if (Config.class.isAssignableFrom(type)) + { + return (Config) injector.getInstance(key); + } + } + + return null; + } + + public List getPluginConfigProxies() + { + List injectors = new ArrayList<>(); + injectors.add(RuneLite.getInjector()); + getPlugins().forEach(pl -> injectors.add(pl.getInjector())); + + List list = new ArrayList<>(); + for (Injector injector : injectors) + { + for (Key key : injector.getAllBindings().keySet()) + { + Class type = key.getTypeLiteral().getRawType(); + if (Config.class.isAssignableFrom(type)) + { + Config config = (Config) injector.getInstance(key); + list.add(config); + } + } + } + + return list; + } + + public void loadDefaultPluginConfiguration() + { + for (Object config : getPluginConfigProxies()) + { + configManager.setDefaultConfiguration(config, false); + } + + for (Plugin plugin : getPlugins()) + { + final String keyName = plugin.getClass().getSimpleName().toLowerCase(); + final String value = configManager.getConfiguration(runeliteGroupName, keyName); + + if (value == null) + { + final PluginDescriptor pluginDescriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); + final boolean enabled = pluginDescriptor == null || pluginDescriptor.enabledByDefault(); + configManager.setConfiguration(runeliteGroupName, keyName, String.valueOf(enabled)); + } + } + } public void loadCorePlugins() throws IOException { @@ -86,7 +200,7 @@ public class PluginManager } catch (PluginInstantiationException ex) { - log.warn("Unable to start plugin {}", plugin.getClass().getSimpleName(), ex); + log.warn("Unable to start plugin {}. {}", plugin.getClass().getSimpleName(), ex); plugins.remove(plugin); } } @@ -136,11 +250,11 @@ public class PluginManager Plugin plugin; try { - plugin = instantiate(pluginDescriptor, (Class) clazz); + plugin = instantiate((Class) clazz); } catch (PluginInstantiationException ex) { - log.warn("error instantiating plugin!", ex); + log.warn("Error instantiating plugin!", ex); continue; } @@ -150,8 +264,15 @@ public class PluginManager return scannedPlugins; } - void startPlugin(Plugin plugin) throws PluginInstantiationException + public synchronized boolean startPlugin(Plugin plugin) throws PluginInstantiationException { + if (activePlugins.contains(plugin) || !isPluginEnabled(plugin)) + { + return false; + } + + activePlugins.add(plugin); + try { // plugins always start in the event thread @@ -168,23 +289,32 @@ public class PluginManager }); log.debug("Plugin {} is now running", plugin.getClass().getSimpleName()); + regionTileManager.simulateObjectSpawns(plugin); eventBus.register(plugin); - eventBus.post(new PluginChanged(plugin, true)); schedule(plugin); + eventBus.post(new PluginChanged(plugin, true)); } catch (InterruptedException | InvocationTargetException ex) { throw new PluginInstantiationException(ex); } + + return true; } - void stopPlugin(Plugin plugin) throws PluginInstantiationException + public synchronized boolean stopPlugin(Plugin plugin) throws PluginInstantiationException { + if (!activePlugins.contains(plugin) || isPluginEnabled(plugin)) + { + return false; + } + + activePlugins.remove(plugin); + try { unschedule(plugin); eventBus.unregister(plugin); - eventBus.post(new PluginChanged(plugin, false)); // plugins always stop in the event thread SwingUtilities.invokeAndWait(() -> @@ -199,19 +329,37 @@ public class PluginManager } }); + log.debug("Plugin {} is now stopped", plugin.getClass().getSimpleName()); + eventBus.post(new PluginChanged(plugin, false)); + } catch (InterruptedException | InvocationTargetException ex) { throw new PluginInstantiationException(ex); } + + return true; } - Plugin instantiate(PluginDescriptor pluginDescriptor, Class clazz) throws PluginInstantiationException + public void setPluginEnabled(Plugin plugin, boolean enabled) + { + final String keyName = plugin.getClass().getSimpleName().toLowerCase(); + configManager.setConfiguration(runeliteGroupName, keyName, String.valueOf(enabled)); + } + + public boolean isPluginEnabled(Plugin plugin) + { + final String keyName = plugin.getClass().getSimpleName().toLowerCase(); + final String value = configManager.getConfiguration(runeliteGroupName, keyName); + return Boolean.valueOf(value); + } + + private Plugin instantiate(Class clazz) throws PluginInstantiationException { Plugin plugin; try { - plugin = (Plugin) clazz.newInstance(); + plugin = clazz.newInstance(); } catch (InstantiationException | IllegalAccessException ex) { @@ -222,7 +370,7 @@ public class PluginManager { Module pluginModule = (Binder binder) -> { - binder.bind((Class) clazz).toInstance(plugin); + binder.bind(clazz).toInstance(plugin); binder.install(plugin); }; Injector pluginInjector = RuneLite.getInjector().createChildInjector(pluginModule); @@ -234,7 +382,7 @@ public class PluginManager throw new PluginInstantiationException(ex); } - log.debug("Loaded plugin {}", pluginDescriptor.name()); + log.debug("Loaded plugin {}", clazz.getSimpleName()); return plugin; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java index b912aef0b9..0533ae154c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/account/AccountPlugin.java @@ -42,7 +42,7 @@ import net.runelite.client.ui.PluginToolbar; import net.runelite.client.util.RunnableExceptionLogger; @PluginDescriptor( - name = "Account plugin", + name = "Account", loadWhenOutdated = true ) @Slf4j diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityOverlay.java index 29fbd58c7c..a336482376 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityOverlay.java @@ -44,26 +44,19 @@ public class AgilityOverlay extends Overlay private final Client client; private final AgilityPlugin plugin; - private final AgilityPluginConfiguration config; @Inject - public AgilityOverlay(@Nullable Client client, AgilityPlugin plugin, AgilityPluginConfiguration config) + public AgilityOverlay(@Nullable Client client, AgilityPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_SCENE); this.client = client; this.plugin = plugin; - this.config = config; } @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled()) - { - return null; - } - Point playerLocation = client.getLocalPlayer().getLocalLocation(); Point mousePosition = client.getMouseCanvasPosition(); plugin.getObstacles().forEach((object, tile) -> diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPlugin.java index c1790159fc..df5704eb01 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPlugin.java @@ -26,7 +26,6 @@ package net.runelite.client.plugins.agilityplugin; import com.google.common.eventbus.Subscribe; import com.google.inject.Binder; -import com.google.inject.Provides; import java.util.HashMap; import javax.inject.Inject; import lombok.Getter; @@ -47,12 +46,11 @@ import net.runelite.api.events.GroundObjectSpawned; import net.runelite.api.events.WallObjectChanged; import net.runelite.api.events.WallObjectDespawned; import net.runelite.api.events.WallObjectSpawned; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Agility plugin" + name = "Agility" ) @Slf4j public class AgilityPlugin extends Plugin @@ -64,10 +62,10 @@ public class AgilityPlugin extends Plugin @Getter private AgilityOverlay overlay; - @Provides - AgilityPluginConfiguration getConfig(ConfigManager configManager) + @Override + protected void shutDown() throws Exception { - return configManager.getConfig(AgilityPluginConfiguration.class); + obstacles.clear(); } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPluginConfiguration.java b/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPluginConfiguration.java deleted file mode 100644 index 426bbf5204..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/agilityplugin/AgilityPluginConfiguration.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 2018, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.agilityplugin; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "agilityplugin", - name = "Agility plugin", - description = "Configuration for the agility plugin" -) -public interface AgilityPluginConfiguration extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enable overlay", - description = "Configures whether the overlay is enabled" - ) - default boolean enabled() - { - return true; - } - -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorConfig.java index df96d31219..0e65a1d9f4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorConfig.java @@ -35,17 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface AttackIndicatorConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Show attack style", - description = "Configures whether or not the attack indicator overlay is displayed", - position = 1 - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "warnForDefensive", name = "Warn for defensive", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java index 52b819f6db..31f5a35728 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorOverlay.java @@ -37,26 +37,19 @@ public class AttackIndicatorOverlay extends Overlay { private static final int COMPONENT_WIDTH = 80; - private final AttackIndicatorConfig config; private final AttackIndicatorPlugin plugin; private final PanelComponent panelComponent = new PanelComponent(); @Inject - public AttackIndicatorOverlay(AttackIndicatorPlugin plugin, AttackIndicatorConfig config) + public AttackIndicatorOverlay(AttackIndicatorPlugin plugin) { setPosition(OverlayPosition.ABOVE_CHATBOX_RIGHT); this.plugin = plugin; - this.config = config; } @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - final String attackStyleString = plugin.getAttackStyle().getName(); panelComponent.setTitleColor(plugin.isWarnedSkillSelected() ? Color.RED : Color.WHITE); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorPlugin.java index 5a55256af3..b8f313a0bb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/attackindicator/AttackIndicatorPlugin.java @@ -24,6 +24,11 @@ */ package net.runelite.client.plugins.attackindicator; +import static net.runelite.api.widgets.WidgetID.COMBAT_GROUP_ID; +import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; +import static net.runelite.client.plugins.attackindicator.AttackStyle.CASTING; +import static net.runelite.client.plugins.attackindicator.AttackStyle.DEFENSIVE_CASTING; +import static net.runelite.client.plugins.attackindicator.AttackStyle.OTHER; import com.google.common.collect.HashBasedTable; import com.google.common.collect.Table; import com.google.common.eventbus.Subscribe; @@ -43,16 +48,13 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.api.events.WidgetHiddenChanged; import net.runelite.api.widgets.Widget; -import static net.runelite.api.widgets.WidgetID.COMBAT_GROUP_ID; import net.runelite.api.widgets.WidgetInfo; -import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -import static net.runelite.client.plugins.attackindicator.AttackStyle.*; @PluginDescriptor( - name = "Attack indicator plugin" + name = "Attack indicator" ) @Slf4j public class AttackIndicatorPlugin extends Plugin @@ -202,8 +204,6 @@ public class AttackIndicatorPlugin extends Plugin boolean enabled = event.getNewValue().equals("true"); switch (event.getKey()) { - case "enabled": - break; case "warnForDefensive": updateWarnedSkills(enabled, Skill.DEFENCE); break; @@ -222,8 +222,6 @@ public class AttackIndicatorPlugin extends Plugin case "removeWarnedStyles": hideWarnedStyles(enabled); break; - default: - log.warn("Unreachable default case for config keys"); } } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultConfig.java index 82015b5a24..80503996f0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface BarbarianAssaultConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable plugin", - description = "Configures whether or not the plugin is enabled" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "removeUnused", name = "Remove incorrect calls", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultOverlay.java index d419c785de..7654032475 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultOverlay.java @@ -62,7 +62,7 @@ public class BarbarianAssaultOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled() || client.getGameState() != GameState.LOGGED_IN || currentRound == null) + if (client.getGameState() != GameState.LOGGED_IN || currentRound == null) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java index 8e672d547e..c0a876d62e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barbarianassault/BarbarianAssaultPlugin.java @@ -52,7 +52,7 @@ import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Barbarian Assault Plugin" + name = "Barbarian Assault" ) public class BarbarianAssaultPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsConfig.java index 3031645729..3db0de4e49 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface BarrowsConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not the Barrows plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showMinimap", name = "Show Minimap in tunnels", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java index 22685c5131..9348fb2f67 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsOverlay.java @@ -62,11 +62,6 @@ class BarrowsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - Player local = client.getLocalPlayer(); // tunnels are only on z=0 diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java index 580beacd9a..00eee5348a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/barrows/BarrowsPlugin.java @@ -91,6 +91,13 @@ public class BarrowsPlugin extends Plugin return barrowsOverlay; } + @Override + protected void shutDown() + { + walls.clear(); + ladders.clear(); + } + @Subscribe public void onWallObjectSpanwed(WallObjectSpawned event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java index 936da5bb7e..0c6db7ee0f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceCofferOverlay.java @@ -41,16 +41,14 @@ class BlastFurnaceCofferOverlay extends Overlay { private final Client client; private final BlastFurnacePlugin plugin; - private final BlastFurnaceConfig config; private final PanelComponent panelComponent = new PanelComponent(); @Inject - BlastFurnaceCofferOverlay(Client client, BlastFurnacePlugin plugin, BlastFurnaceConfig config) + BlastFurnaceCofferOverlay(Client client, BlastFurnacePlugin plugin) { setPosition(OverlayPosition.TOP_LEFT); this.client = client; this.plugin = plugin; - this.config = config; } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceConfig.java index 8e447d8724..8548317eb9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface BlastFurnaceConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether to enable the blast furnace plugin" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showConveyorBelt", name = "Show Conveyor belt clickbox", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java index 97bfc1979a..02dc109761 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnaceOverlay.java @@ -39,25 +39,23 @@ class BlastFurnaceOverlay extends Overlay { private final Client client; private final BlastFurnacePlugin plugin; - private final BlastFurnaceConfig config; private final ImagePanelComponent imagePanelComponent = new ImagePanelComponent(); @Inject private ItemManager itemManager; @Inject - BlastFurnaceOverlay(Client client, BlastFurnacePlugin plugin, BlastFurnaceConfig config) + BlastFurnaceOverlay(Client client, BlastFurnacePlugin plugin) { setPosition(OverlayPosition.TOP_LEFT); this.plugin = plugin; this.client = client; - this.config = config; } @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled() || plugin.getConveyorBelt() == null) + if (plugin.getConveyorBelt() == null) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java index ba3df84fe8..e84108002c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/BlastFurnacePlugin.java @@ -59,6 +59,12 @@ public class BlastFurnacePlugin extends Plugin @Inject private ConveyorBeltOverlay conveyorBeltOverlay; + @Override + protected void shutDown() + { + conveyorBelt = null; + } + @Provides BlastFurnaceConfig provideConfig(ConfigManager configManager) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/ConveyorBeltOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/ConveyorBeltOverlay.java index 6952e781d6..61a9337c0a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/ConveyorBeltOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/blastfurnace/ConveyorBeltOverlay.java @@ -55,7 +55,7 @@ class ConveyorBeltOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled() || !config.showConveyorBelt() || plugin.getConveyorBelt() == null) + if (!config.showConveyorBelt() || plugin.getConveyorBelt() == null) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsConfig.java index a04ddf692a..3aba81c186 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.Config; ) public interface BoostsConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not boost info is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "enableSkill", name = "Enable Skill Boosts", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java index 92d9b0e756..532b274f1a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsOverlay.java @@ -72,11 +72,6 @@ class BoostsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - panelComponent = new PanelComponent(); for (Skill skill : plugin.getShownSkills()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java index 98855dee30..521bb4e0e0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/boosts/BoostsPlugin.java @@ -40,7 +40,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @PluginDescriptor( - name = "Boosts plugin" + name = "Boosts" ) public class BoostsPlugin extends Plugin { @@ -88,10 +88,7 @@ public class BoostsPlugin extends Plugin @Override protected void startUp() { - if (config.enabled()) - { - updateShownSkills(config.enableSkill()); - } + updateShownSkills(config.enableSkill()); } @Override @@ -103,12 +100,6 @@ public class BoostsPlugin extends Plugin @Subscribe public void onConfigChanged(ConfigChanged event) { - if (!config.enabled()) - { - infoBoxManager.removeIf(t -> t instanceof BoostIndicator); - return; - } - updateShownSkills(config.enableSkill()); infoBoxManager.removeIf(t -> t instanceof BoostIndicator diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java index d463f6f733..059c82df7a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/bosstimer/BossTimersPlugin.java @@ -35,7 +35,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @PluginDescriptor( - name = "Boss timers plugin" + name = "Boss timers" ) @Slf4j public class BossTimersPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonConfig.java index e067e553fd..ad4f9fd57b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonConfig.java @@ -30,21 +30,11 @@ import net.runelite.client.config.ConfigItem; @ConfigGroup( keyName = "cannon", - name = "Cannon Plugin", + name = "Cannon", description = "Configuration for the Cannon plugin" ) public interface CannonConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not the Cannon plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showEmptyCannonNotification", name = "Empty cannon notification", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonOverlay.java index 2ee8d67cfd..631ac4c1db 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonOverlay.java @@ -59,7 +59,7 @@ class CannonOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!plugin.cannonPlaced || plugin.myCannon == null || !config.enabled()) + if (!plugin.cannonPlaced || plugin.myCannon == null) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java index 0e47efb2fc..532267cb09 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cannon/CannonPlugin.java @@ -50,7 +50,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Cannon plugin" + name = "Cannon" ) public class CannonPlugin extends Plugin { @@ -93,6 +93,14 @@ public class CannonPlugin extends Plugin return cannonOverlay; } + @Override + protected void shutDown() throws Exception + { + cannonPlaced = false; + myCannon = null; + cballsLeft = 0; + } + @Subscribe public void onGameObjectSpawned(GameObjectSpawned event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java index e4e6608b91..90ecb7d759 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/chatcommands/ChatCommandsPlugin.java @@ -58,7 +58,7 @@ import net.runelite.http.api.item.ItemPrice; import net.runelite.http.api.item.SearchResult; @PluginDescriptor( - name = "Chat commands plugin" + name = "Chat commands" ) @Slf4j public class ChatCommandsPlugin extends Plugin @@ -82,6 +82,13 @@ public class ChatCommandsPlugin extends Plugin @Inject private ScheduledExecutorService executor; + @Override + protected void startUp() + { + cacheConfiguredColors(); + chatMessageManager.refreshAll(); + } + @Provides ChatCommandsConfig provideConfig(ConfigManager configManager) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java deleted file mode 100644 index 52b77240e4..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.clanchat; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "clanchat", - name = "Clan Chat", - description = "Configuration for clan chat" -) -public interface ClanChatConfig extends Config -{ - @ConfigItem( - keyName = "clanRank", - name = "Show Clan Ranks Icon", - description = "Configures whether the clan ranks icons are shown next to name in chat" - ) - default boolean clanRank() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java index 779ed39960..c7cec907a8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/clanchat/ClanChatPlugin.java @@ -28,7 +28,6 @@ import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; import com.google.common.eventbus.Subscribe; -import com.google.inject.Provides; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.DataBufferByte; @@ -48,17 +47,16 @@ import net.runelite.api.ClanMemberRank; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.IndexedSprite; -import net.runelite.api.widgets.Widget; -import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.config.ConfigManager; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.SetMessage; +import net.runelite.api.widgets.Widget; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @PluginDescriptor( - name = "Clan chat plugin" + name = "Clan chat" ) @Slf4j public class ClanChatPlugin extends Plugin @@ -72,47 +70,48 @@ public class ClanChatPlugin extends Plugin }; - private LoadingCache clanRanksCache; + private final LoadingCache clanRanksCache = CacheBuilder.newBuilder() + .maximumSize(100) + .expireAfterAccess(1, TimeUnit.MINUTES) + .build(new CacheLoader() + { + @Override + public ClanMemberRank load(String key) throws Exception + { + final ClanMember[] clanMembersArr = client.getClanMembers(); + + if (clanMembersArr == null || clanMembersArr.length == 0) + { + return ClanMemberRank.UNRANKED; + } + + return Arrays.stream(clanMembersArr) + .filter(Objects::nonNull) + .filter(clanMember -> sanitize(clanMember.getUsername()).equals(sanitize(key))) + .map(ClanMember::getRank) + .findAny() + .orElse(ClanMemberRank.UNRANKED); + } + }); + private int modIconsLength; @Inject private Client client; - @Inject - private ClanChatConfig config; - - @Provides - ClanChatConfig provideConfig(ConfigManager configManager) - { - return configManager.getConfig(ClanChatConfig.class); - } - @Override protected void startUp() throws Exception { - clanRanksCache = CacheBuilder.newBuilder() - .maximumSize(100) - .expireAfterAccess(1, TimeUnit.MINUTES) - .build(new CacheLoader() - { - @Override - public ClanMemberRank load(String key) throws Exception - { - final ClanMember[] clanMembersArr = client.getClanMembers(); + if (modIconsLength == 0 && client.getGameState().compareTo(GameState.LOGIN_SCREEN) >= 0) + { + loadClanChatIcons(); + } + } - if (clanMembersArr == null || clanMembersArr.length == 0) - { - return ClanMemberRank.UNRANKED; - } - - return Arrays.stream(clanMembersArr) - .filter(Objects::nonNull) - .filter(clanMember -> sanitize(clanMember.getUsername()).equals(sanitize(key))) - .map(ClanMember::getRank) - .findAny() - .orElse(ClanMemberRank.UNRANKED); - } - }); + @Override + protected void shutDown() + { + clanRanksCache.invalidateAll(); } @Subscribe @@ -152,7 +151,7 @@ public class ClanChatPlugin extends Plugin return; } - if (config.clanRank() && setMessage.getType() == ChatMessageType.CLANCHAT) + if (setMessage.getType() == ChatMessageType.CLANCHAT) { insertClanRankIcon(setMessage); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollConfig.java deleted file mode 100644 index 6042a68f92..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollConfig.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2016-2017, Seth - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (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.cluescrolls; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "cluescrolls", - name = "Clue Scrolls", - description = "Configuration for the clue scroll plugin" -) -public interface ClueScrollConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether the clue scroll plugin is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java index c3e51e7e56..9d9cf62e3b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollOverlay.java @@ -44,28 +44,21 @@ public class ClueScrollOverlay extends Overlay private static final Duration WAIT_DURATION = Duration.ofMinutes(4); private final Client client; - private final ClueScrollConfig config; private final PanelComponent panelComponent = new PanelComponent(); ClueScroll clue; Instant clueTimeout; @Inject - public ClueScrollOverlay(@Nullable Client client, ClueScrollConfig config) + public ClueScrollOverlay(@Nullable Client client) { setPosition(OverlayPosition.TOP_LEFT); this.client = client; - this.config = config; } @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - if (clue == null) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java index 04a4965c34..84adaba78f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/cluescrolls/ClueScrollPlugin.java @@ -27,7 +27,6 @@ package net.runelite.client.plugins.cluescrolls; import com.google.inject.Binder; -import com.google.inject.Provides; import java.time.Instant; import java.time.temporal.ChronoUnit; import javax.inject.Inject; @@ -35,22 +34,18 @@ import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.widgets.Widget; 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.task.Schedule; @PluginDescriptor( - name = "Clue scroll plugin" + name = "Clue scroll" ) public class ClueScrollPlugin extends Plugin { @Inject private Client client; - @Inject - private ClueScrollConfig config; - @Inject private ClueScrollOverlay clueScrollOverlay; @@ -60,12 +55,6 @@ public class ClueScrollPlugin extends Plugin binder.bind(ClueScrollOverlay.class); } - @Provides - ClueScrollConfig provideConfig(ConfigManager configManager) - { - return configManager.getConfig(ClueScrollConfig.class); - } - @Override public ClueScrollOverlay getOverlay() { @@ -78,7 +67,7 @@ public class ClueScrollPlugin extends Plugin ) public void checkForClues() { - if (client.getGameState() != GameState.LOGGED_IN || !config.enabled()) + if (client.getGameState() != GameState.LOGGED_IN) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelConfig.java deleted file mode 100644 index afd3ae89c9..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Devin French - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.combatlevel; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "combatlevel", - name = "Combat Level", - description = "Configuration for the precise combat level plugin" -) -public interface CombatLevelConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not precise combat level is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java index ca5b9535c9..628c4a1c76 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/combatlevel/CombatLevelPlugin.java @@ -25,7 +25,6 @@ package net.runelite.client.plugins.combatlevel; import com.google.common.eventbus.Subscribe; -import com.google.inject.Provides; import java.text.DecimalFormat; import javax.inject.Inject; import net.runelite.api.Client; @@ -35,12 +34,11 @@ import net.runelite.api.Skill; import net.runelite.api.events.GameTick; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Combat level plugin" + name = "Combat level" ) public class CombatLevelPlugin extends Plugin { @@ -49,13 +47,20 @@ public class CombatLevelPlugin extends Plugin @Inject Client client; - @Inject - CombatLevelConfig config; - - @Provides - CombatLevelConfig provideConfig(ConfigManager configManager) + @Override + protected void shutDown() throws Exception { - return configManager.getConfig(CombatLevelConfig.class); + Widget combatLevelWidget = client.getWidget(WidgetInfo.COMBAT_LEVEL); + + if (combatLevelWidget != null) + { + String widgetText = combatLevelWidget.getText(); + + if (widgetText.contains(".")) + { + combatLevelWidget.setText(widgetText.substring(0, widgetText.indexOf("."))); + } + } } @Subscribe @@ -72,9 +77,7 @@ public class CombatLevelPlugin extends Plugin return; } - if (config.enabled()) - { - double combatLevelPrecise = Experience.getCombatLevelPrecise( + double combatLevelPrecise = Experience.getCombatLevelPrecise( client.getRealSkillLevel(Skill.ATTACK), client.getRealSkillLevel(Skill.STRENGTH), client.getRealSkillLevel(Skill.DEFENCE), @@ -82,16 +85,8 @@ public class CombatLevelPlugin extends Plugin client.getRealSkillLevel(Skill.MAGIC), client.getRealSkillLevel(Skill.RANGED), client.getRealSkillLevel(Skill.PRAYER) - ); - combatLevelWidget.setText("Combat Lvl: " + decimalFormat.format(combatLevelPrecise)); - } - else - { - String widgetText = combatLevelWidget.getText(); - if (widgetText.contains(".")) - { - combatLevelWidget.setText(widgetText.substring(0, widgetText.indexOf("."))); - } - } + ); + + combatLevelWidget.setText("Combat Lvl: " + decimalFormat.format(combatLevelPrecise)); } } 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 a4b2cd59e4..39e1777396 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 @@ -24,13 +24,11 @@ */ package net.runelite.client.plugins.config; -import static javax.swing.JOptionPane.WARNING_MESSAGE; -import static javax.swing.JOptionPane.YES_NO_OPTION; -import static javax.swing.JOptionPane.YES_OPTION; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; +import java.awt.GridLayout; import java.awt.event.FocusEvent; import java.awt.event.FocusListener; import java.awt.event.ItemEvent; @@ -38,9 +36,14 @@ import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; -import java.util.AbstractMap; +import java.awt.image.BufferedImage; +import java.io.IOException; +import java.util.Comparator; import java.util.Map; import java.util.TreeMap; +import java.util.concurrent.ScheduledExecutorService; +import javax.imageio.ImageIO; +import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JColorChooser; @@ -50,6 +53,9 @@ import javax.swing.JFormattedTextField; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; +import static javax.swing.JOptionPane.WARNING_MESSAGE; +import static javax.swing.JOptionPane.YES_NO_OPTION; +import static javax.swing.JOptionPane.YES_OPTION; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSpinner; @@ -66,6 +72,11 @@ import net.runelite.client.config.ConfigDescriptor; import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItemDescriptor; import net.runelite.client.config.ConfigManager; +import net.runelite.client.config.RuneLiteConfig; +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.ui.PluginPanel; @Slf4j @@ -73,16 +84,39 @@ public class ConfigPanel extends PluginPanel { private static final int TEXT_FIELD_WIDTH = 7; private static final int SPINNER_FIELD_WIDTH = 6; + private static BufferedImage CONFIG_ICON; + private static BufferedImage UNCHECK_ICON; + private static BufferedImage CHECK_ICON; + static + { + try + { + CONFIG_ICON = ImageIO.read(ConfigPanel.class.getResourceAsStream("config_icon.png")); + UNCHECK_ICON = ImageIO.read(ConfigPanel.class.getResourceAsStream("698-0.png")); + CHECK_ICON = ImageIO.read(ConfigPanel.class.getResourceAsStream("699-0.png")); + } + catch (IOException e) + { + log.warn("Failed to read icon", e); + } + } + + private final PluginManager pluginManager; private final ConfigManager configManager; + private final ScheduledExecutorService executorService; + private final RuneLiteConfig runeLiteConfig; private final JTextField searchBar = new JTextField(); private Map children = new TreeMap<>(); private int scrollBarPosition = 0; - public ConfigPanel(ConfigManager configManager) + public ConfigPanel(PluginManager pluginManager, ConfigManager configManager, ScheduledExecutorService executorService, RuneLiteConfig runeLiteConfig) { super(); + this.pluginManager = pluginManager; this.configManager = configManager; + this.executorService = executorService; + this.runeLiteConfig = runeLiteConfig; searchBar.getDocument().addDocumentListener(new DocumentListener() { @@ -111,36 +145,126 @@ public class ConfigPanel extends PluginPanel final void rebuildPluginList() { + scrollBarPosition = getScrollPane().getVerticalScrollBar().getValue(); Map newChildren = new TreeMap<>(); - configManager.getConfigProxies() - .stream() - // Convert config proxies to pair of config descriptors and config proxies - .map(c -> new AbstractMap.SimpleEntry<>(configManager.getConfigDescriptor(c), c)) - .filter(e -> e.getKey().getItems().stream().anyMatch(cid -> !cid.getItem().hidden())) - .forEach(e -> - { - ConfigDescriptor cd = e.getKey(); - Config config = e.getValue(); - String groupName = cd.getGroup().name(); - if (children.containsKey(groupName)) + pluginManager.getPlugins().stream() + .filter(plugin -> !plugin.getClass().getAnnotation(PluginDescriptor.class).hidden()) + .sorted(Comparator.comparing(left -> left.getClass().getAnnotation(PluginDescriptor.class).name())) + .forEach(plugin -> { - newChildren.put(groupName, children.get(groupName)); - return; - } + final Config pluginConfigProxy = pluginManager.getPluginConfigProxy(plugin); + final String pluginName = plugin.getClass().getAnnotation(PluginDescriptor.class).name(); - JPanel groupPanel = new JPanel(); - groupPanel.setLayout(new BorderLayout()); - JButton viewGroupItemsButton = new JButton(groupName); - viewGroupItemsButton.addActionListener(ae -> openGroupConfigPanel(config, cd, configManager)); - groupPanel.add(viewGroupItemsButton); - newChildren.put(groupName, groupPanel); - }); + final JPanel groupPanel = buildGroupPanel(); + groupPanel.add(new JLabel(pluginName), BorderLayout.CENTER); + + final JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new GridLayout(1, 2, 3, 0)); + groupPanel.add(buttonPanel, BorderLayout.LINE_END); + + final JButton editConfigButton = buildConfigButton(pluginConfigProxy); + buttonPanel.add(editConfigButton); + + final JButton toggleButton = buildToggleButton(plugin); + buttonPanel.add(toggleButton); + + newChildren.put(pluginName, groupPanel); + }); + + + final JPanel groupPanel = buildGroupPanel(); + groupPanel.add(new JLabel("RuneLite"), BorderLayout.CENTER); + + final JPanel buttonPanel = new JPanel(); + buttonPanel.setLayout(new GridLayout(1, 2, 3, 0)); + groupPanel.add(buttonPanel, BorderLayout.LINE_END); + + final JButton editConfigButton = buildConfigButton(runeLiteConfig); + buttonPanel.add(editConfigButton); + + final JButton toggleButton = buildToggleButton(null); + buttonPanel.add(toggleButton); + newChildren.put("RuneLite", groupPanel); children = newChildren; openConfigList(); } + private JPanel buildGroupPanel() + { + // Create base panel for the config button and enabled/disabled button + final JPanel groupPanel = new JPanel(); + groupPanel.setLayout(new BorderLayout(3, 0)); + return groupPanel; + } + + private JButton buildConfigButton(Config config) + { + // Create edit config button and disable it by default + final JButton editConfigButton = new JButton(new ImageIcon(CONFIG_ICON)); + editConfigButton.setPreferredSize(new Dimension(32, 0)); + editConfigButton.setEnabled(false); + + // If we have configuration proxy enable the button and add edit config listener + if (config != null) + { + final ConfigDescriptor configDescriptor = configManager.getConfigDescriptor(config); + editConfigButton.addActionListener(ae -> openGroupConfigPanel(config, configDescriptor, configManager)); + editConfigButton.setEnabled(true); + editConfigButton.setToolTipText("Edit plugin configuration"); + } + + return editConfigButton; + } + + private JButton buildToggleButton(Plugin plugin) + { + // Create enabling/disabling button + final JButton toggleButton = new JButton(new ImageIcon(CHECK_ICON)); + toggleButton.setPreferredSize(new Dimension(32, 0)); + + if (plugin == null) + { + toggleButton.setEnabled(false); + return toggleButton; + } + + highlightButton(toggleButton, pluginManager.isPluginEnabled(plugin)); + + toggleButton.addActionListener(e -> executorService.submit(() -> + { + final boolean enabled = pluginManager.isPluginEnabled(plugin); + pluginManager.setPluginEnabled(plugin, !enabled); + + try + { + if (enabled) + { + pluginManager.stopPlugin(plugin); + } + else + { + pluginManager.startPlugin(plugin); + } + } + catch (PluginInstantiationException ex) + { + log.warn("Error during starting/stopping plugin {}", plugin.getClass().getSimpleName(), ex); + } + + highlightButton(toggleButton, !enabled); + })); + + return toggleButton; + } + + private void highlightButton(JButton button, boolean enabled) + { + button.setIcon(enabled ? new ImageIcon(CHECK_ICON) : new ImageIcon(UNCHECK_ICON)); + button.setToolTipText(enabled ? "Disable plugin" : "Enable plugin"); + } + private void onSearchBarChanged() { children.forEach((key, value) -> diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java index 02d3210c56..b36bc9c9e4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/config/ConfigPlugin.java @@ -25,19 +25,23 @@ package net.runelite.client.plugins.config; import com.google.common.eventbus.Subscribe; +import java.util.concurrent.ScheduledExecutorService; import javax.imageio.ImageIO; import javax.inject.Inject; import javax.swing.SwingUtilities; import net.runelite.client.config.ConfigManager; +import net.runelite.client.config.RuneLiteConfig; import net.runelite.client.events.PluginChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; +import net.runelite.client.plugins.PluginManager; import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.NavigationButton; @PluginDescriptor( - name = "Configuration plugin", - loadWhenOutdated = true + name = "Configuration", + loadWhenOutdated = true, + hidden = true // prevent users from disabling ) public class ConfigPlugin extends Plugin { @@ -47,13 +51,22 @@ public class ConfigPlugin extends Plugin @Inject private ConfigManager configManager; + @Inject + private PluginManager pluginManager; + + @Inject + private ScheduledExecutorService executorService; + + @Inject + private RuneLiteConfig runeLiteConfig; + private ConfigPanel configPanel; private NavigationButton navButton; @Override protected void startUp() throws Exception { - configPanel = new ConfigPanel(configManager); + configPanel = new ConfigPanel(pluginManager, configManager, executorService, runeLiteConfig); navButton = new NavigationButton( "Configuration", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java index f83b62fce5..ee3c835606 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/devtools/DevToolsPlugin.java @@ -37,7 +37,7 @@ import net.runelite.client.ui.NavigationButton; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Developer tools plugin", + name = "Developer tools", developerPlugin = true ) public class DevToolsPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressConfig.java deleted file mode 100644 index f0be2b9b77..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2018, oplosthee - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.diaryprogress; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "diaryprogress", - name = "Diary Progress", - description = "Configuration for the plugin for enabling and disabling diary progress indicators" -) -public interface DiaryProgressConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not to display diary progress indicators" - ) - default boolean enabled() - { - return false; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressPlugin.java index b10f8b1783..298c6dbd87 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/diaryprogress/DiaryProgressPlugin.java @@ -26,18 +26,17 @@ package net.runelite.client.plugins.diaryprogress; import com.google.common.eventbus.Subscribe; import com.google.inject.Inject; -import com.google.inject.Provides; import net.runelite.api.Client; import net.runelite.api.Varbits; import net.runelite.api.events.GameTick; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Diary Progress plugin" + name = "Diary Progress", + enabledByDefault = false ) public class DiaryProgressPlugin extends Plugin { @@ -47,13 +46,21 @@ public class DiaryProgressPlugin extends Plugin @Inject private Client client; - @Inject - private DiaryProgressConfig config; - - @Provides - DiaryProgressConfig provideConfig(ConfigManager configManager) + @Override + protected void shutDown() throws Exception { - return configManager.getConfig(DiaryProgressConfig.class); + Widget diaryWidget = client.getWidget(WidgetInfo.DIARY_LIST); + + if (diaryWidget == null) + { + return; + } + + for (DiaryEntry entry : DiaryEntry.values()) + { + Widget child = diaryWidget.getChild(entry.getIndex()); + child.setText(entry.getName()); + } } @Subscribe @@ -71,28 +78,20 @@ public class DiaryProgressPlugin extends Plugin Widget child = diaryWidget.getChild(entry.getIndex()); StringBuilder progress = new StringBuilder(); - if (config.enabled()) + for (Varbits varbits : entry.getVarbits()) { - for (Varbits varbits : entry.getVarbits()) + int value = client.getSetting(varbits); + if ((entry != DiaryEntry.KARAMJA && value == 1) || value == 2) { - int value = client.getSetting(varbits); - if ((entry != DiaryEntry.KARAMJA && value == 1) || value == 2) - { - progress.append(STAGE_FINISHED_STRING); - } - else - { - progress.append(STAGE_UNFINISHED_STRING); - } + progress.append(STAGE_FINISHED_STRING); + } + else + { + progress.append(STAGE_UNFINISHED_STRING); } - - progress.append(" ").append(entry.getName()); - } - else - { - progress.append(entry.getName()); } + progress.append(" ").append(entry.getName()); child.setText(progress.toString()); } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordConfig.java index c8460dedd8..44aba43b4d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface DiscordConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not Discord plugin is enabled" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "actionTimeout", name = "Action timeout (minutes)", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java index b8f8666e4e..d6d886e801 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordPlugin.java @@ -42,7 +42,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @PluginDescriptor( - name = "Discord plugin" + name = "Discord" ) public class DiscordPlugin extends Plugin { @@ -65,14 +65,22 @@ public class DiscordPlugin extends Plugin return configManager.getConfig(DiscordConfig.class); } + @Override + protected void startUp() throws Exception + { + updateGameStatus(client.getGameState(), true); + } + + @Override + protected void shutDown() throws Exception + { + discordService.clearPresence(); + discordState.reset(); + } + @Subscribe public void onGameStateChanged(GameStateChanged event) { - if (!config.enabled()) - { - return; - } - updateGameStatus(event.getGameState(), false); } @@ -87,11 +95,6 @@ public class DiscordPlugin extends Plugin return; } - if (!config.enabled()) - { - return; - } - final DiscordGameEventType discordGameEventType = DiscordGameEventType.fromSkill(event.getSkill()); if (discordGameEventType != null) @@ -106,11 +109,6 @@ public class DiscordPlugin extends Plugin ) public void checkForValidStatus() { - if (!config.enabled()) - { - return; - } - if (discordState.checkForTimeout(config.actionTimeout())) { updateGameStatus(client.getGameState(), true); @@ -123,11 +121,6 @@ public class DiscordPlugin extends Plugin ) public void flushDiscordStatus() { - if (!config.enabled()) - { - return; - } - discordState.flushEvent(discordService); } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java index 630b2c4097..a6365bed66 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/discord/DiscordState.java @@ -41,6 +41,16 @@ public class DiscordState private DiscordPresence lastPresence; private boolean needsFlush; + void reset() + { + lastQueue.clear(); + lastEvent = null; + startOfAction = null; + lastAction = null; + lastPresence = null; + needsFlush = false; + } + void flushEvent(DiscordService discordService) { if (lastPresence != null && needsFlush) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExamineConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExamineConfig.java index ca0b4babec..4f4baa79b7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExamineConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExamineConfig.java @@ -36,17 +36,6 @@ import net.runelite.client.config.ConfigItem; ) public interface ExamineConfig extends Config { - @ConfigItem( - position = 1, - keyName = "itemPrice", - name = "Show item price on examine", - description = "Configures whether the item price is shown when examining item" - ) - default boolean itemPrice() - { - return true; - } - @ConfigItem( position = 2, keyName = "hexColorExamine", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java index b5c52ff2d3..7b45e08371 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/examine/ExaminePlugin.java @@ -24,6 +24,8 @@ */ package net.runelite.client.plugins.examine; +import static net.runelite.api.widgets.WidgetInfo.TO_CHILD; +import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.eventbus.Subscribe; @@ -39,6 +41,10 @@ import net.runelite.api.ChatMessageType; import net.runelite.api.Client; import net.runelite.api.GameState; import net.runelite.api.ItemComposition; +import net.runelite.api.events.ChatMessage; +import net.runelite.api.events.ConfigChanged; +import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.MenuOptionClicked; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; import net.runelite.api.widgets.WidgetItem; @@ -47,17 +53,11 @@ import net.runelite.client.chat.ChatColorType; import net.runelite.client.chat.ChatMessageBuilder; import net.runelite.client.chat.ChatMessageManager; import net.runelite.client.config.ConfigManager; -import net.runelite.api.events.ChatMessage; -import net.runelite.api.events.ConfigChanged; -import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.MenuOptionClicked; import net.runelite.client.game.ItemManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.http.api.examine.ExamineClient; import net.runelite.http.api.item.ItemPrice; -import static net.runelite.api.widgets.WidgetInfo.TO_CHILD; -import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; /** * Submits exammine info to the api @@ -65,7 +65,7 @@ import static net.runelite.api.widgets.WidgetInfo.TO_GROUP; * @author Adam */ @PluginDescriptor( - name = "Examine plugin" + name = "Examine" ) @Slf4j public class ExaminePlugin extends Plugin @@ -93,6 +93,13 @@ public class ExaminePlugin extends Plugin @Inject private ScheduledExecutorService executor; + @Override + protected void startUp() + { + cacheConfiguredColors(); + chatMessageManager.refreshAll(); + } + @Provides ExamineConfig provideConfig(ConfigManager configManager) { @@ -208,11 +215,7 @@ public class ExaminePlugin extends Plugin log.debug("Got examine for {} {}: {}", pendingExamine.getType(), pendingExamine.getId(), event.getMessage()); - if (config.itemPrice()) - { - findExamineItem(pendingExamine); - } - + findExamineItem(pendingExamine); CacheKey key = new CacheKey(type, pendingExamine.getId()); Boolean cached = cache.getIfPresent(key); if (cached != null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropConfig.java index 8eea8f30d7..5bfd4af795 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropConfig.java @@ -36,16 +36,6 @@ import net.runelite.client.config.ConfigItem; ) public interface ExperienceDropConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not plugin is enabled." - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "meleePrayerColor", name = "Melee Prayer Color", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java index 9b1ddd2152..a0b90a6252 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/experiencedrop/ExperienceDropPlugin.java @@ -38,7 +38,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Experience drop plugin" + name = "Experience drop" ) public class ExperienceDropPlugin extends Plugin { @@ -67,7 +67,7 @@ public class ExperienceDropPlugin extends Plugin } PrayerType prayer = getActivePrayerType(); - if (!config.enabled() || widget.isHidden()) + if (widget.isHidden()) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCaveConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCaveConfig.java deleted file mode 100644 index 39596cf059..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCaveConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Devin French - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.fightcave; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "fightcave", - name = "Fight Cave", - description = "Configuration for the fight cave plugin" -) -public interface FightCaveConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not fight cave overlay is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java index ca3a0b3d82..444e8b0236 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fightcave/FightCavePlugin.java @@ -25,7 +25,6 @@ package net.runelite.client.plugins.fightcave; import com.google.inject.Binder; -import com.google.inject.Provides; import java.time.temporal.ChronoUnit; import javax.inject.Inject; import net.runelite.api.Client; @@ -33,7 +32,6 @@ import net.runelite.api.GameState; import net.runelite.api.NPC; import net.runelite.api.Query; import net.runelite.api.queries.NPCQuery; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @@ -41,7 +39,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.util.QueryRunner; @PluginDescriptor( - name = "Fight cave plugin" + name = "Fight cave" ) public class FightCavePlugin extends Plugin { @@ -51,9 +49,6 @@ public class FightCavePlugin extends Plugin @Inject private QueryRunner queryRunner; - @Inject - private FightCaveConfig config; - @Inject private FightCaveOverlay overlay; @@ -65,12 +60,6 @@ public class FightCavePlugin extends Plugin binder.bind(FightCaveOverlay.class); } - @Provides - FightCaveConfig provideConfig(ConfigManager configManager) - { - return configManager.getConfig(FightCaveConfig.class); - } - @Override public Overlay getOverlay() { @@ -83,7 +72,7 @@ public class FightCavePlugin extends Plugin ) public void update() { - if (!config.enabled() || client.getGameState() != GameState.LOGGED_IN) + if (client.getGameState() != GameState.LOGGED_IN) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java index 8ecc1c5e2d..7d6e9f5c1b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface FishingConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether or not the fishing plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showIcons", name = "Display Fish icons", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java index a19ef78c00..7f998eb8ef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingOverlay.java @@ -58,11 +58,6 @@ class FishingOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - FishingSession session = plugin.getSession(); if (session.getLastFishCaught() == null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java index 97ce692e39..aee45f9bd4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingPlugin.java @@ -53,7 +53,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.util.QueryRunner; @PluginDescriptor( - name = "Fishing plugin" + name = "Fishing" ) @Singleton public class FishingPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotMinimapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotMinimapOverlay.java index 2b03edfa51..5a455ca906 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotMinimapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotMinimapOverlay.java @@ -38,25 +38,18 @@ import net.runelite.client.ui.overlay.OverlayUtil; class FishingSpotMinimapOverlay extends Overlay { private final FishingPlugin plugin; - private final FishingConfig config; @Inject - public FishingSpotMinimapOverlay(FishingPlugin plugin, FishingConfig config) + public FishingSpotMinimapOverlay(FishingPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); this.plugin = plugin; - this.config = config; } @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - NPC[] fishingSpots = plugin.getFishingSpots(); if (fishingSpots == null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java index 0a864a771d..a79bfb76ab 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/fishing/FishingSpotOverlay.java @@ -57,11 +57,6 @@ class FishingSpotOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - NPC[] fishingSpots = plugin.getFishingSpots(); if (fishingSpots == null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsConfig.java index 1148ab94da..3961ca87b9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsConfig.java @@ -38,16 +38,6 @@ import java.awt.Color; ) public interface GroundItemsConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not item names/quantities are displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showGEPrice", name = "Show Grand Exchange Prices", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java index 9ef3b5f26b..f025c077c3 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsOverlay.java @@ -99,11 +99,6 @@ public class GroundItemsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled()) - { - return null; - } - // gets the hidden/highlighted items from the text box in the config String configItems = config.getHiddenItems().toLowerCase(); List hiddenItems = Arrays.asList(configItems.split(DELIMITER_REGEX)); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java index 49db6827cb..ca0743118c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/grounditems/GroundItemsPlugin.java @@ -33,7 +33,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Ground items plugin" + name = "Ground items" ) public class GroundItemsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java index 52e29fff3e..c3e97f7047 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hiscore/HiscorePlugin.java @@ -38,7 +38,7 @@ import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.NavigationButton; @PluginDescriptor( - name = "Hiscore plugin", + name = "Hiscore", loadWhenOutdated = true ) public class HiscorePlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/CatchrateOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/CatchrateOverlay.java index c22fd7ac5e..ab7a5bb944 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/CatchrateOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/CatchrateOverlay.java @@ -60,16 +60,14 @@ public class CatchrateOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (config.enabled()) + if (Duration.between(plugin.getLastActionTime(), Instant.now()).compareTo(catchRatePanelTimeOut) < 0) { - if (Duration.between(plugin.getLastActionTime(), Instant.now()).compareTo(catchRatePanelTimeOut) < 0) - { - final String attackStyleString = String.format("%.2f", plugin.getCatchRate() * 100) + " %"; - catchRatePanel.setTitle(attackStyleString); - catchRatePanel.setWidth(80); - return catchRatePanel.render(graphics, parent); - } + final String attackStyleString = String.format("%.2f", plugin.getCatchRate() * 100) + " %"; + catchRatePanel.setTitle(attackStyleString); + catchRatePanel.setWidth(80); + return catchRatePanel.render(graphics, parent); } + return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterConfig.java index b1953bc80b..d3f376ea6e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterConfig.java @@ -31,22 +31,11 @@ import net.runelite.client.config.ConfigItem; @ConfigGroup( keyName = "hunterplugin", - name = "Hunter plugin", + name = "Hunter", description = "Configuration for the hunter plugin" ) public interface HunterConfig extends Config { - @ConfigItem( - position = 0, - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not the hunter plugin is enabled" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( position = 1, keyName = "hexColorOpenTrap", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java index 585baec567..47f003f4eb 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/HunterPlugin.java @@ -45,12 +45,12 @@ import net.runelite.api.GameState; import net.runelite.api.ObjectID; import net.runelite.api.Player; import net.runelite.api.Point; -import net.runelite.api.queries.GameObjectQuery; -import net.runelite.api.queries.PlayerQuery; -import net.runelite.client.config.ConfigManager; import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameObjectSpawned; import net.runelite.api.events.GameStateChanged; +import net.runelite.api.queries.GameObjectQuery; +import net.runelite.api.queries.PlayerQuery; +import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @@ -59,7 +59,7 @@ import net.runelite.client.util.QueryRunner; @Slf4j @PluginDescriptor( - name = "Hunter plugin" + name = "Hunter" ) public class HunterPlugin extends Plugin { @@ -69,9 +69,6 @@ public class HunterPlugin extends Plugin @Inject private QueryRunner queryRunner; - @Inject - private HunterConfig config; - @Inject private TrapOverlay trapOverlay; @@ -106,14 +103,18 @@ public class HunterPlugin extends Plugin return Arrays.asList(trapOverlay, catchrateOverlay); } + @Override + protected void shutDown() throws Exception + { + catchAtempts = 0; + catchSuccess = 0; + lastActionTime = Instant.ofEpochMilli(0); + traps.clear(); + } + @Subscribe public void onGameObjectSpawned(GameObjectSpawned event) { - if (!config.enabled()) - { - return; - } - GameObject gameObject = event.getGameObject(); HunterTrap myTrap = getTrapFromCollection(gameObject); @@ -199,7 +200,7 @@ public class HunterPlugin extends Plugin lastActionTime = Instant.now(); } break; - //Black chin shaking box + //Black chin shaking box case ObjectID.BOX_TRAP: case ObjectID.BOX_TRAP_2026: case ObjectID.BOX_TRAP_2028: @@ -279,11 +280,6 @@ public class HunterPlugin extends Plugin ) public void updateTraps() { - if (!config.enabled()) - { - return; - } - //Check if all traps are still there, and remove the ones that are not. //TODO: use despawn events Iterator it = traps.iterator(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java index 79ec415fa9..fa163fd9ed 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/hunter/TrapOverlay.java @@ -81,10 +81,7 @@ public class TrapOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (config.enabled()) - { - drawTraps(graphics); - } + drawTraps(graphics); return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java index ea4b15ef32..f6cdda5d19 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierConfig.java @@ -35,17 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface IdleNotifierConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Toggles idle notifications", - position = 1 - ) - default boolean isEnabled() - { - return false; - } - @ConfigItem( keyName = "tray", name = "Send Tray Notification", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java index fccb8135ee..e5101721aa 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/idlenotifier/IdleNotifierPlugin.java @@ -110,7 +110,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.ClientUI; @PluginDescriptor( - name = "Idle notifier plugin" + name = "Idle notifier" ) public class IdleNotifierPlugin extends Plugin { @@ -152,7 +152,7 @@ public class IdleNotifierPlugin extends Plugin @Subscribe public void onAnimationChanged(AnimationChanged event) { - if (!config.isEnabled() || client.getGameState() != GameState.LOGGED_IN) + if (client.getGameState() != GameState.LOGGED_IN) { return; } @@ -276,7 +276,7 @@ public class IdleNotifierPlugin extends Plugin final Player local = client.getLocalPlayer(); final Duration waitDuration = Duration.ofMillis(config.getTimeout()); - if (!config.isEnabled() || client.getGameState() != GameState.LOGGED_IN || local == null) + if (client.getGameState() != GameState.LOGGED_IN || local == null) { return; } @@ -409,6 +409,11 @@ public class IdleNotifierPlugin extends Plugin private boolean check6hrLogout() { + if (sixHourWarningTime == null) + { + return false; + } + if (Instant.now().compareTo(sixHourWarningTime) >= 0) { if (notify6HourLogout) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java index 3a60eaf068..4d1f957c9c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsConfig.java @@ -1,26 +1,26 @@ -/* - * Copyright (c) 2017, Robin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +/* + * Copyright (c) 2017, Robin + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (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.implings; @@ -40,18 +40,6 @@ import net.runelite.client.config.ConfigItem; ) public interface ImplingsConfig extends Config { - - @ConfigItem( - position = 0, - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not the impling plugin is enabled" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( position = 1, keyName = "showbaby", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java index 1590dac18c..81fa79de74 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/implings/ImplingsPlugin.java @@ -39,7 +39,7 @@ import net.runelite.client.ui.overlay.Overlay; * @author robin */ @PluginDescriptor( - name = "Implings plugin" + name = "Implings" ) public class ImplingsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java index 8a1a1163b4..9a8cca3571 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/info/InfoPlugin.java @@ -33,7 +33,7 @@ import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.NavigationButton; @PluginDescriptor( - name = "Info panel plugin", + name = "Info panel", loadWhenOutdated = true ) public class InfoPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapConfig.java deleted file mode 100644 index c91ba50005..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.instancemap; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "instancemap", - name = "Instance Map", - description = "Displays a map of the current instance" -) -public interface InstanceMapConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Enables or disables the overlay" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java index 2f388620b4..b602297f39 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapOverlay.java @@ -24,6 +24,26 @@ */ package net.runelite.client.plugins.instancemap; +import static net.runelite.client.plugins.instancemap.PixelMaps.ALL; +import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM; +import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_LEFT_CORNER; +import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_LEFT_DOT; +import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_LEFT_TO_TOP_RIGHT; +import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_RIGHT_CORNER; +import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_RIGHT_DOT; +import static net.runelite.client.plugins.instancemap.PixelMaps.LEFT; +import static net.runelite.client.plugins.instancemap.PixelMaps.RIGHT; +import static net.runelite.client.plugins.instancemap.PixelMaps.TOP; +import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_LEFT_CORNER; +import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_LEFT_DOT; +import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_LEFT_TO_BOTTOM_RIGHT; +import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_RIGHT_CORNER; +import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_RIGHT_DOT; +import static net.runelite.client.plugins.instancemap.WallOffset.BOTTOM_LEFT; +import static net.runelite.client.plugins.instancemap.WallOffset.BOTTOM_RIGHT; +import static net.runelite.client.plugins.instancemap.WallOffset.NONE; +import static net.runelite.client.plugins.instancemap.WallOffset.TOP_LEFT; +import static net.runelite.client.plugins.instancemap.WallOffset.TOP_RIGHT; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; @@ -45,26 +65,6 @@ import net.runelite.api.Tile; import net.runelite.api.WallObject; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.MapRegionChanged; -import static net.runelite.client.plugins.instancemap.PixelMaps.ALL; -import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM; -import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_LEFT_CORNER; -import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_LEFT_DOT; -import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_LEFT_TO_TOP_RIGHT; -import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_RIGHT_CORNER; -import static net.runelite.client.plugins.instancemap.PixelMaps.BOTTOM_RIGHT_DOT; -import static net.runelite.client.plugins.instancemap.PixelMaps.LEFT; -import static net.runelite.client.plugins.instancemap.PixelMaps.RIGHT; -import static net.runelite.client.plugins.instancemap.PixelMaps.TOP; -import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_LEFT_CORNER; -import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_LEFT_DOT; -import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_LEFT_TO_BOTTOM_RIGHT; -import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_RIGHT_CORNER; -import static net.runelite.client.plugins.instancemap.PixelMaps.TOP_RIGHT_DOT; -import static net.runelite.client.plugins.instancemap.WallOffset.BOTTOM_LEFT; -import static net.runelite.client.plugins.instancemap.WallOffset.BOTTOM_RIGHT; -import static net.runelite.client.plugins.instancemap.WallOffset.NONE; -import static net.runelite.client.plugins.instancemap.WallOffset.TOP_LEFT; -import static net.runelite.client.plugins.instancemap.WallOffset.TOP_RIGHT; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayLayer; import net.runelite.client.ui.overlay.OverlayPosition; @@ -101,8 +101,6 @@ class InstanceMapOverlay extends Overlay private int viewedPlane = 0; private final Client client; - private final InstanceMapConfig config; - private final InstanceMapPlugin plugin; /** * Saved image of the region, no reason to draw the whole thing every @@ -112,13 +110,11 @@ class InstanceMapOverlay extends Overlay private boolean showMap = false; @Inject - InstanceMapOverlay(@Nullable Client client, InstanceMapConfig config, InstanceMapPlugin plugin) + InstanceMapOverlay(@Nullable Client client) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ALWAYS_ON_TOP); this.client = client; - this.config = config; - this.plugin = plugin; } public boolean isMapShown() @@ -173,7 +169,7 @@ class InstanceMapOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled() || !showMap) + if (!showMap) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java index f9875aa162..b51195ddc7 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/instancemap/InstanceMapPlugin.java @@ -24,17 +24,14 @@ */ package net.runelite.client.plugins.instancemap; +import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP; import com.google.common.eventbus.Subscribe; import com.google.inject.Binder; -import com.google.inject.Provides; import javax.inject.Inject; -import net.runelite.api.widgets.WidgetInfo; -import static net.runelite.api.widgets.WidgetInfo.WORLD_MAP; -import net.runelite.client.config.ConfigManager; -import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.MapRegionChanged; import net.runelite.api.events.WidgetMenuOptionClicked; +import net.runelite.api.widgets.WidgetInfo; import net.runelite.client.menus.MenuManager; import net.runelite.client.menus.WidgetMenuOption; import net.runelite.client.plugins.Plugin; @@ -50,9 +47,6 @@ public class InstanceMapPlugin extends Plugin private final WidgetMenuOption ascendOption = new WidgetMenuOption("Ascend", "Instance Map", WidgetInfo.WORLD_MAP); private final WidgetMenuOption descendOption = new WidgetMenuOption("Descend", "Instance Map", WidgetInfo.WORLD_MAP); - @Inject - private InstanceMapConfig config; - @Inject private InstanceMapOverlay overlay; @@ -65,12 +59,6 @@ public class InstanceMapPlugin extends Plugin binder.bind(InstanceMapOverlay.class); } - @Provides - InstanceMapConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(InstanceMapConfig.class); - } - private void addCustomOptions() { menuManager.addManagedCustomMenu(openMapOption); @@ -88,10 +76,7 @@ public class InstanceMapPlugin extends Plugin @Override protected void startUp() throws Exception { - if (config.enabled()) - { - addCustomOptions(); - } + addCustomOptions(); } @Override @@ -100,19 +85,6 @@ public class InstanceMapPlugin extends Plugin removeCustomOptions(); } - @Subscribe - public void onConfigChanged(ConfigChanged event) - { - if (config.enabled()) - { - addCustomOptions(); - } - else - { - removeCustomOptions(); - } - } - @Subscribe public void regionChange(MapRegionChanged event) { @@ -133,7 +105,7 @@ public class InstanceMapPlugin extends Plugin @Subscribe public void onWidgetMenuOptionClicked(WidgetMenuOptionClicked event) { - if (!config.enabled() || event.getWidget() != WORLD_MAP) + if (event.getWidget() != WORLD_MAP) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java index 0ceab99e3b..a90bca7c3a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/itemstats/ItemStatPlugin.java @@ -34,7 +34,7 @@ import net.runelite.client.plugins.itemstats.stats.Stats; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Item stat plugin" + name = "Item stat" ) public class ItemStatPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountConfig.java deleted file mode 100644 index 28fad23e09..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Seth - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.jewellerycount; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "jewellerycount", - name = "Jewellery Count", - description = "Configuration for the jewellery count plugin" -) -public interface JewelleryCountConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether or not the jewellery count plugin is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java index 8a13836534..284224eca8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountOverlay.java @@ -47,25 +47,18 @@ import net.runelite.client.util.QueryRunner; class JewelleryCountOverlay extends Overlay { private final QueryRunner queryRunner; - private final JewelleryCountConfig config; @Inject - JewelleryCountOverlay(QueryRunner queryRunner, JewelleryCountConfig config) + JewelleryCountOverlay(QueryRunner queryRunner) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); this.queryRunner = queryRunner; - this.config = config; } @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - graphics.setFont(FontManager.getRunescapeSmallFont()); for (WidgetItem item : getJewelleryWidgetItems()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java index 2f2aee9058..3e2c43d2a1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/jewellerycount/JewelleryCountPlugin.java @@ -25,21 +25,16 @@ package net.runelite.client.plugins.jewellerycount; import com.google.inject.Binder; -import com.google.inject.Provides; import javax.inject.Inject; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Jewellery count plugin" + name = "Jewellery count" ) public class JewelleryCountPlugin extends Plugin { - @Inject - private JewelleryCountConfig config; - @Inject private JewelleryCountOverlay overlay; @@ -49,12 +44,6 @@ public class JewelleryCountPlugin extends Plugin binder.bind(JewelleryCountOverlay.class); } - @Provides - JewelleryCountConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(JewelleryCountConfig.class); - } - @Override public Overlay getOverlay() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryConfig.java deleted file mode 100644 index 5bb9e85c3a..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryConfig.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2018, Tomas Slusny - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.lowmemory; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "lowmemory", - name = "Low Memory Mode", - description = "Configuration for the plugin for enabling and disabling RuneScape low memory mode" -) -public interface LowMemoryConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not low memory mode is enabled", - confirmationWarining = "Please re-log into RuneScape for this change to fully take effect.", - warnOnEnable = true, - warnOnDisable = true - ) - default boolean enabled() - { - return false; - } -} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java index 56a79c1794..fbf93e9231 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/lowmemory/LowMemoryPlugin.java @@ -25,37 +25,26 @@ package net.runelite.client.plugins.lowmemory; import com.google.common.eventbus.Subscribe; -import com.google.inject.Provides; import javax.inject.Inject; import net.runelite.api.Client; import net.runelite.api.GameState; -import net.runelite.api.events.ConfigChanged; import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.SessionClose; -import net.runelite.api.events.SessionOpen; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; -@PluginDescriptor(name = "Low memory plugin") +@PluginDescriptor( + name = "Low memory", + enabledByDefault = false +) public class LowMemoryPlugin extends Plugin { @Inject private Client client; - @Inject - private LowMemoryConfig config; - - @Provides - LowMemoryConfig provideConfig(ConfigManager configManager) - { - return configManager.getConfig(LowMemoryConfig.class); - } - @Override protected void startUp() throws Exception { - client.changeMemoryMode(config.enabled()); + client.changeMemoryMode(true); } @Override @@ -64,33 +53,12 @@ public class LowMemoryPlugin extends Plugin client.changeMemoryMode(false); } - @Subscribe - private void onConfigChanged(ConfigChanged event) - { - if (event.getGroup().equals("lowmemory")) - { - client.changeMemoryMode(config.enabled()); - } - } - - @Subscribe - private void onSessionOpen(SessionOpen event) - { - client.changeMemoryMode(config.enabled()); - } - - @Subscribe - private void onSessionClose(SessionClose event) - { - client.changeMemoryMode(config.enabled()); - } - @Subscribe private void onGameStateChanged(GameStateChanged event) { if (event.getGameState() == GameState.LOGIN_SCREEN) { - client.changeMemoryMode(config.enabled()); + client.changeMemoryMode(true); } } -} \ No newline at end of file +} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java index e8beccf6b4..f1216a1aef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePlugin.java @@ -36,7 +36,8 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Metronome plugin" + name = "Metronome", + enabledByDefault = false ) public class MetronomePlugin extends Plugin { @@ -58,7 +59,7 @@ public class MetronomePlugin extends Plugin @Subscribe void onTick(GameTick tick) { - if (!config.enabled() || config.tickCount() == 0) + if (config.tickCount() == 0) { return; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePluginConfiguration.java b/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePluginConfiguration.java index cc47b5990e..bd1d047880 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePluginConfiguration.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/metronome/MetronomePluginConfiguration.java @@ -36,17 +36,6 @@ import net.runelite.client.config.ConfigItem; ) public interface MetronomePluginConfiguration extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable metronome", - description = "Toggles tick metronome", - position = 1 - ) - default boolean enabled() - { - return false; - } - @ConfigItem( keyName = "tickCount", name = "Tick count", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeConfig.java index 988ca70d61..b77902784c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface MotherlodeConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether or not the motherlode plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showRocks", name = "Show Pay-dirt mining spots", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java index a064da01f6..8ea10e72d9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeOverlay.java @@ -74,11 +74,6 @@ class MotherlodeOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - MotherlodeSession session = plugin.getSession(); if (session.getLastPayDirtMined() == null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java index 5a3ee445d4..6e596e8edf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodePlugin.java @@ -64,7 +64,8 @@ import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Motherlode plugin" + name = "Motherlode", + enabledByDefault = false ) public class MotherlodePlugin extends Plugin { @@ -108,6 +109,13 @@ public class MotherlodePlugin extends Plugin return Arrays.asList(overlay, rocksOverlay, motherlodeSackOverlay); } + @Override + protected void shutDown() throws Exception + { + veins.clear(); + rocks.clear(); + } + public MotherlodeSession getSession() { return session; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeRocksOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeRocksOverlay.java index ee9edd7713..1857a93159 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeRocksOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeRocksOverlay.java @@ -69,7 +69,7 @@ class MotherlodeRocksOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled() || !config.showRocks()) + if (!config.showRocks()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSackOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSackOverlay.java index f16fde8830..dd7a0ef63a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSackOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/motherlode/MotherlodeSackOverlay.java @@ -54,11 +54,6 @@ class MotherlodeSackOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - Widget sack = client.getWidget(WidgetInfo.MOTHERLODE_MINE); panelComponent.getLines().clear(); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightConfig.java deleted file mode 100644 index f8a42c6aed..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Seth - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.mousehighlight; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "mousehighlight", - name = "Mouse Highlighting", - description = "Configuration for the mouse Highlight plugin" -) -public interface MouseHighlightConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not mouse hover info is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java index 6aa440e045..aa628217d1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightOverlay.java @@ -38,27 +38,20 @@ import net.runelite.client.ui.overlay.tooltip.TooltipManager; class MouseHighlightOverlay extends Overlay { - private final MouseHighlightConfig config; private final TooltipManager tooltipManager; private final Client client; @Inject - MouseHighlightOverlay(@Nullable Client client, MouseHighlightConfig config, TooltipManager tooltipManager) + MouseHighlightOverlay(@Nullable Client client, TooltipManager tooltipManager) { setPosition(OverlayPosition.DYNAMIC); this.client = client; - this.config = config; this.tooltipManager = tooltipManager; } @Override public Dimension render(Graphics2D graphics, Point point) { - if (!config.enabled()) - { - return null; - } - if (client.isMenuOpen()) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java index 697cadef26..c071952b23 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/mousehighlight/MouseHighlightPlugin.java @@ -25,21 +25,16 @@ package net.runelite.client.plugins.mousehighlight; import com.google.inject.Binder; -import com.google.inject.Provides; import javax.inject.Inject; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Mouse highlight plugin" + name = "Mouse highlight" ) public class MouseHighlightPlugin extends Plugin { - @Inject - private MouseHighlightConfig config; - @Inject private MouseHighlightOverlay overlay; @@ -49,12 +44,6 @@ public class MouseHighlightPlugin extends Plugin binder.bind(MouseHighlightOverlay.class); } - @Provides - MouseHighlightConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(MouseHighlightConfig.class); - } - @Override public Overlay getOverlay() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneConfig.java index f9d3b8355a..21e17d3783 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneConfig.java @@ -35,17 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface NightmareZoneConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable plugin", - description = "Configures whether or not the plugin is enabled", - position = 1 - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "tray", name = "Send Tray Notification", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java index b43e646071..ce288504ba 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZoneOverlay.java @@ -72,7 +72,7 @@ class NightmareZoneOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled() || !plugin.isInNightmareZone() || !config.moveOverlay()) + if (!plugin.isInNightmareZone() || !config.moveOverlay()) { if (absorptionCounter != null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java index a63bf43e80..623c15a8b0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/nightmarezone/NightmareZonePlugin.java @@ -42,7 +42,7 @@ import net.runelite.client.ui.ClientUI; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Nightmare Zone Plugin" + name = "Nightmare Zone" ) public class NightmareZonePlugin extends Plugin { @@ -88,7 +88,7 @@ public class NightmareZonePlugin extends Plugin @Subscribe public void onGameTick(GameTick event) { - if (!config.enabled() || !isInNightmareZone()) + if (!isInNightmareZone()) { return; } @@ -101,8 +101,7 @@ public class NightmareZonePlugin extends Plugin @Subscribe public void onChatMessage(ChatMessage event) { - if (!config.enabled() - || event.getType() != ChatMessageType.SERVER + if (event.getType() != ChatMessageType.SERVER || !isInNightmareZone() || !config.overloadNotification()) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentConfig.java deleted file mode 100644 index 5e4084c3a8..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.opponentinfo; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "oppinfo", - name = "Opponent Info", - description = "Configuration for the opponent info plugin" -) -public interface OpponentConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not opponent info is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java index 7e5f812815..a4ab4e1c97 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoOverlay.java @@ -60,7 +60,6 @@ class OpponentInfoOverlay extends Overlay private static final Duration WAIT = Duration.ofSeconds(3); private final Client client; - private final OpponentConfig config; private Integer lastMaxHealth; private DecimalFormat df = new DecimalFormat("0.0"); private float lastRatio = 0; @@ -69,12 +68,11 @@ class OpponentInfoOverlay extends Overlay private Map oppInfoHealth = OpponentInfoPlugin.loadNpcHealth(); @Inject - OpponentInfoOverlay(@Nullable Client client, OpponentConfig config) + OpponentInfoOverlay(@Nullable Client client) { setPosition(OverlayPosition.TOP_LEFT); setPriority(OverlayPriority.HIGH); this.client = client; - this.config = config; } private Actor getOpponent() @@ -91,11 +89,6 @@ class OpponentInfoOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - Actor opponent = getOpponent(); if (opponent != null && opponent.getHealth() > 0) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java index efdbd48bec..46c5ebfe36 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/opponentinfo/OpponentInfoPlugin.java @@ -27,19 +27,17 @@ package net.runelite.client.plugins.opponentinfo; import com.google.common.reflect.TypeToken; import com.google.gson.Gson; import com.google.inject.Binder; -import com.google.inject.Provides; import java.io.InputStream; import java.io.InputStreamReader; import java.lang.reflect.Type; import java.util.Map; import javax.inject.Inject; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Opponent information plugin" + name = "Opponent information" ) public class OpponentInfoPlugin extends Plugin { @@ -52,12 +50,6 @@ public class OpponentInfoPlugin extends Plugin binder.bind(OpponentInfoOverlay.class); } - @Provides - OpponentConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(OpponentConfig.class); - } - @Override public Overlay getOverlay() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java index 1880ca018f..573a1737ef 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/pestcontrol/PestControlPlugin.java @@ -33,7 +33,7 @@ import net.runelite.client.ui.FontManager; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Pest control plugin" + name = "Pest control" ) public class PestControlPlugin 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 6de65bbc53..7b98b0c92f 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 @@ -33,7 +33,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Player names plugin" + name = "Player names" ) public class PlayerIndicatorsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java index 01782fa45a..126569476d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/BurnerOverlay.java @@ -60,7 +60,7 @@ public class BurnerOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled() || !config.showBurner()) + if (!config.showBurner()) { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohConfig.java index f630c81b44..6cfaa386b5 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface PohConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not the POH plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showVarrock", name = "Show Varrock portal", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java index 6285b73ecd..51237b6c32 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohOverlay.java @@ -80,11 +80,6 @@ public class PohOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled()) - { - return null; - } - Point localLocation = client.getLocalPlayer().getLocalLocation(); plugin.getPohObjects().forEach((object, tile) -> { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java index 406074c7c7..db27a49c96 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/poh/PohPlugin.java @@ -55,7 +55,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Poh plugin" + name = "Poh" ) public class PohPlugin extends Plugin { @@ -95,6 +95,12 @@ public class PohPlugin extends Plugin overlay.updateConfig(); } + @Override + protected void shutDown() throws Exception + { + pohObjects.clear(); + } + @Subscribe public void updateConfig(ConfigChanged event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickConfig.java deleted file mode 100644 index f6f633550e..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.prayflick; - -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; -import net.runelite.client.config.Config; - -@ConfigGroup( - keyName = "prayflick", - name = "Prayer Flick", - description = "Configuration for the prayer flicking plugin" -) -public interface PrayerFlickConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not prayer flicking plugin is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java index 4e4ba3b975..486254a12c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickOverlay.java @@ -44,17 +44,15 @@ import net.runelite.client.ui.overlay.OverlayPosition; public class PrayerFlickOverlay extends Overlay { private final Client client; - private final PrayerFlickConfig config; private boolean prayersActive = false; private Instant startOfLastTick = Instant.now(); @Inject - public PrayerFlickOverlay(@Nullable Client client, PrayerFlickConfig config) + public PrayerFlickOverlay(@Nullable Client client) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); this.client = client; - this.config = config; } public void onTick() @@ -66,7 +64,7 @@ public class PrayerFlickOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point point) { - if (!config.enabled() || !prayersActive)//If there are no prayers active we don't need to be flicking + if (!prayersActive) //If there are no prayers active we don't need to be flicking { return null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickPlugin.java index 4bea1a4643..99d8498e44 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/prayflick/PrayerFlickPlugin.java @@ -26,16 +26,14 @@ package net.runelite.client.plugins.prayflick; import com.google.common.eventbus.Subscribe; import com.google.inject.Binder; -import com.google.inject.Provides; import javax.inject.Inject; -import net.runelite.client.config.ConfigManager; import net.runelite.api.events.GameTick; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Prayer flicking plugin" + name = "Prayer flicking" ) public class PrayerFlickPlugin extends Plugin { @@ -48,12 +46,6 @@ public class PrayerFlickPlugin extends Plugin binder.bind(PrayerFlickOverlay.class); } - @Provides - PrayerFlickConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(PrayerFlickConfig.class); - } - @Override public Overlay getOverlay() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java index a93a130f3a..54ecb679d8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/puzzlesolver/PuzzleSolverPlugin.java @@ -33,7 +33,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Puzzle solver plugin" + name = "Puzzle solver" ) public class PuzzleSolverPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernameConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernameConfig.java index 857240c18a..f5e5661de1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernameConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernameConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface RememberUsernameConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether remember username plugin is enabled" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "username", name = "", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java index 617944ccda..570f0e015e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/rememberusername/RememberUsernamePlugin.java @@ -35,7 +35,7 @@ import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; @PluginDescriptor( - name = "Remember username plugin" + name = "Remember username" ) public class RememberUsernamePlugin extends Plugin { @@ -54,11 +54,6 @@ public class RememberUsernamePlugin extends Plugin @Subscribe public void onGameStateChange(GameStateChanged event) { - if (!config.enabled()) - { - return; - } - if (event.getGameState() == GameState.LOGIN_SCREEN) { if (config.username() == null || config.username().isEmpty()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenConfig.java deleted file mode 100644 index d6f819d3d2..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2018, Shaun Dreclin - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.roguesden; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "roguesden", - name = "Rogues' Den", - description = "Configuration for the Rogues' Den plugin" -) -public interface RoguesDenConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enable overlay", - description = "Configures whether the overlay is enabled" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenOverlay.java index 1e6aab7b3c..3cc02180b1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenOverlay.java @@ -43,26 +43,19 @@ public class RoguesDenOverlay extends Overlay private final Client client; private final RoguesDenPlugin plugin; - private final RoguesDenConfig config; @Inject - public RoguesDenOverlay(Client client, RoguesDenPlugin plugin, RoguesDenConfig config) + public RoguesDenOverlay(Client client, RoguesDenPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_SCENE); this.client = client; this.plugin = plugin; - this.config = config; } @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (!config.enabled()) - { - return null; - } - if (!plugin.isHasGem()) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java index bf25a3e88e..15faafb1bf 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/roguesden/RoguesDenPlugin.java @@ -26,7 +26,6 @@ package net.runelite.client.plugins.roguesden; import com.google.common.eventbus.Subscribe; import com.google.inject.Binder; -import com.google.inject.Provides; import java.time.temporal.ChronoUnit; import java.util.HashMap; import javax.inject.Inject; @@ -48,13 +47,12 @@ import net.runelite.api.events.GameStateChanged; import net.runelite.api.events.GroundObjectChanged; import net.runelite.api.events.GroundObjectDespawned; import net.runelite.api.events.GroundObjectSpawned; -import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.task.Schedule; @PluginDescriptor( - name = "Rogues' Den plugin" + name = "Rogues' Den" ) @Slf4j public class RoguesDenPlugin extends Plugin @@ -75,13 +73,12 @@ public class RoguesDenPlugin extends Plugin @Getter private RoguesDenOverlay overlay; - @Inject - private RoguesDenConfig config; - - @Provides - RoguesDenConfig getConfig(ConfigManager configManager) + @Override + protected void shutDown() { - return configManager.getConfig(RoguesDenConfig.class); + obstaclesHull.clear(); + obstaclesTile.clear(); + hasGem = false; } @Override diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java index be556b7cbe..0836a160b6 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runecraft/RunecraftPlugin.java @@ -50,7 +50,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Runecraft plugin" + name = "Runecraft" ) public class RunecraftPlugin extends Plugin { @@ -92,6 +92,12 @@ public class RunecraftPlugin extends Plugin abyssOverlay.updateConfig(); } + @Override + protected void shutDown() throws Exception + { + abyssObjects.clear(); + } + @Subscribe public void updateConfig(ConfigChanged event) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchConfig.java index 3adee85e23..31d70a5514 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchConfig.java @@ -36,16 +36,6 @@ import net.runelite.client.config.ConfigItem; ) public interface RunepouchConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not Runepouch information is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "fontcolor", name = "Font Color", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java index 4e2d9c3225..6dab8160e1 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchOverlay.java @@ -81,11 +81,6 @@ public class RunepouchOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point point) { - if (!config.enabled()) - { - return null; - } - Query query = new InventoryWidgetItemQuery().idEquals(ItemID.RUNE_POUCH); WidgetItem[] items = queryRunner.runQuery(query); if (items.length == 0) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java index 23a1216bf9..82c64436d8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/runepouch/RunepouchPlugin.java @@ -33,7 +33,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Runepouch plugin" + name = "Runepouch" ) public class RunepouchPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java index 376df371c9..a4995082d0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/screenshot/ScreenshotPlugin.java @@ -85,7 +85,7 @@ import okhttp3.RequestBody; import okhttp3.Response; @PluginDescriptor( - name = "Screenshot plugin" + name = "Screenshot" ) @Slf4j public class ScreenshotPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerConfig.java index 33b5adf4f5..3eb9469c1d 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface SlayerConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether slayer plugin is enabled" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "infobox", name = "Task InfoBox", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java index 60884c3e0e..e44b838860 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerOverlay.java @@ -93,11 +93,6 @@ class SlayerOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - if (!config.showItemOverlay()) { return null; diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java index be6752a56b..45568df724 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/slayer/SlayerPlugin.java @@ -35,6 +35,7 @@ import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.inject.Inject; +import joptsimple.internal.Strings; import lombok.extern.slf4j.Slf4j; import net.runelite.api.ChatMessageType; import net.runelite.api.Client; @@ -55,7 +56,7 @@ import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @PluginDescriptor( - name = "Slayer plugin" + name = "Slayer" ) @Slf4j public class SlayerPlugin extends Plugin @@ -127,11 +128,6 @@ public class SlayerPlugin extends Plugin @Subscribe public void onGameStateChange(GameStateChanged event) { - if (!config.enabled()) - { - return; - } - switch (event.getGameState()) { case HOPPING: @@ -163,11 +159,6 @@ public class SlayerPlugin extends Plugin ) public void scheduledChecks() { - if (!config.enabled()) - { - return; - } - Widget NPCDialog = client.getWidget(WidgetInfo.DIALOG_NPC_TEXT); if (NPCDialog != null) { @@ -204,7 +195,7 @@ public class SlayerPlugin extends Plugin @Subscribe public void onChatMessage(ChatMessage event) { - if (!config.enabled() || event.getType() != ChatMessageType.SERVER) + if (event.getType() != ChatMessageType.SERVER) { return; } @@ -259,7 +250,7 @@ public class SlayerPlugin extends Plugin @Subscribe public void onExperienceChanged(ExperienceChanged event) { - if (!config.enabled() || event.getSkill() != SLAYER) + if (event.getSkill() != SLAYER) { return; } @@ -290,12 +281,11 @@ public class SlayerPlugin extends Plugin return; } - boolean enabled = config.enabled() && config.showInfobox(); - if (enabled && counter == null) + if (config.showInfobox()) { addCounter(); } - else if (!enabled && counter != null) + else { removeCounter(); } @@ -325,19 +315,17 @@ public class SlayerPlugin extends Plugin taskName = name.toLowerCase(); amount = amt; save(); - removeCounter(); - - if (taskName.isEmpty() || !config.showInfobox()) - { - return; - } - addCounter(); } private void addCounter() { + if (!config.showInfobox() || counter != null || Strings.isNullOrEmpty(taskName)) + { + return; + } + Task task = Task.getTask(taskName); int itemSpriteId = ItemID.ENCHANTED_GEM; if (task == null) @@ -359,6 +347,11 @@ public class SlayerPlugin extends Plugin private void removeCounter() { + if (counter == null) + { + return; + } + infoBoxManager.removeInfoBox(counter); counter = null; } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbConfig.java deleted file mode 100644 index da8741f6ff..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbConfig.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (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.specorb; - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; -import net.runelite.client.config.ConfigItem; - -@ConfigGroup( - keyName = "specorb", - name = "Special Attack Orb", - description = "Configuration for the Special Attack Orbplugin" -) -public interface SpecOrbConfig extends Config -{ - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not Special Attack Orb plugin is displayed" - ) - default boolean enabled() - { - return true; - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java index 12de89e773..ae90adf41f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbOverlay.java @@ -61,29 +61,22 @@ public class SpecOrbOverlay extends Overlay private static final Color SPECIAL_ORB_RECHARGE_COLOR = new Color(153, 204, 255, 50); private final Client client; - private final SpecOrbConfig config; private final SpecOrbPlugin plugin; private int lastSpecialPercent = 0; private int tickCounter = 0; @Inject - public SpecOrbOverlay(@Nullable Client client, SpecOrbConfig config, SpecOrbPlugin plugin) + public SpecOrbOverlay(@Nullable Client client, SpecOrbPlugin plugin) { setPosition(OverlayPosition.DYNAMIC); setLayer(OverlayLayer.ABOVE_WIDGETS); this.client = client; - this.config = config; this.plugin = plugin; } @Override public Dimension render(Graphics2D graphics, java.awt.Point point) { - if (!config.enabled()) - { - return null; - } - Widget prayerOrb = client.getWidget(WidgetInfo.MINIMAP_PRAYER_ORB); if (prayerOrb == null) { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbPlugin.java index e9f1047315..c760c4d940 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/specorb/SpecOrbPlugin.java @@ -26,20 +26,17 @@ package net.runelite.client.plugins.specorb; import com.google.common.eventbus.Subscribe; import com.google.inject.Binder; -import com.google.inject.Provides; -import net.runelite.client.config.ConfigManager; +import java.awt.Image; +import javax.imageio.ImageIO; +import javax.inject.Inject; import net.runelite.api.events.GameTick; import net.runelite.api.events.VarbitChanged; import net.runelite.client.plugins.Plugin; import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; -import javax.imageio.ImageIO; -import javax.inject.Inject; -import java.awt.Image; - @PluginDescriptor( - name = "Special Attack Orb plugin" + name = "Special Attack Orb" ) public class SpecOrbPlugin extends Plugin { @@ -55,12 +52,6 @@ public class SpecOrbPlugin extends Plugin binder.bind(SpecOrbOverlay.class); } - @Provides - SpecOrbConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(SpecOrbConfig.class); - } - @Override public Overlay getOverlay() { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesPlugin.java index 57b0482f7d..4b27c22e33 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/teamcapes/TeamCapesPlugin.java @@ -44,7 +44,7 @@ import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Team capes plugin" + name = "Team capes" ) public class TeamCapesPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java index 048213425c..3feff0ef13 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsConfig.java @@ -36,16 +36,6 @@ import net.runelite.client.config.ConfigItem; ) public interface TileIndicatorsConfig extends Config { - @ConfigItem( - keyName = "highlightDestination", - name = "Highlight current destination (walk-to) tile", - description = "Configures whether or not current destination tile is highlighted" - ) - default boolean highlightDestination() - { - return false; - } - @ConfigItem( keyName = "highlightDestinationColor", name = "Color of current destination highlighting", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java index 2394f04f11..e9174fe349 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsOverlay.java @@ -54,8 +54,7 @@ public class TileIndicatorsOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point parent) { - if (config.highlightDestination() - && client.getSceneDestinationLocation().getX() >= 0 + if (client.getSceneDestinationLocation().getX() >= 0 && client.getSceneDestinationLocation().getY() >= 0) { drawRegionTile(graphics, client.getSceneDestinationLocation(), config.highlightDestinationColor()); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java index 33ee115aaf..1304673a81 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/tileindicators/TileIndicatorsPlugin.java @@ -33,7 +33,8 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Tile Indicators plugin" + name = "Tile Indicators", + enabledByDefault = false ) public class TileIndicatorsPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersConfig.java index c21117e23a..b028a98a41 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface TimersConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether the timer plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "showStamina", name = "Stamina timer", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java index 08c846aa5d..fde9afcfbd 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/timers/TimersPlugin.java @@ -73,7 +73,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; @PluginDescriptor( - name = "Timers plugin" + name = "Timers" ) public class TimersPlugin extends Plugin { @@ -115,12 +115,6 @@ public class TimersPlugin extends Plugin @Subscribe public void updateConfig(ConfigChanged event) { - if (!config.enabled()) - { - infoBoxManager.removeIf(t -> t instanceof TimerTimer); - return; - } - if (!config.showStamina()) { removeGameTimer(STAMINA); @@ -226,11 +220,6 @@ public class TimersPlugin extends Plugin @Subscribe public void onMenuOptionClicked(MenuOptionClicked event) { - if (!config.enabled()) - { - return; - } - if (config.showAntidotePlusPlus() && event.getMenuOption().contains("Drink") && (event.getId() == ItemID.ANTIDOTE1_5958 @@ -259,10 +248,6 @@ public class TimersPlugin extends Plugin @Subscribe public void onChatMessage(ChatMessage event) { - if (!config.enabled()) - { - return; - } if (event.getType() != ChatMessageType.FILTERED && event.getType() != ChatMessageType.SERVER) { @@ -383,11 +368,6 @@ public class TimersPlugin extends Plugin @Subscribe public void onGraphicChanged(GraphicChanged event) { - if (!config.enabled()) - { - return; - } - Actor actor = event.getActor(); if (actor != client.getLocalPlayer()) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingConfig.java index 7cba6e734c..23feb114f8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface WoodcuttingConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enable", - description = "Configures whether the woodcutting plugin is displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "statTimeout", name = "Reset stats (minutes)", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java index 35fc920296..5cfb3a292c 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingOverlay.java @@ -24,6 +24,15 @@ */ package net.runelite.client.plugins.woodcutting; +import static net.runelite.api.AnimationID.WOODCUTTING_ADAMANT; +import static net.runelite.api.AnimationID.WOODCUTTING_BLACK; +import static net.runelite.api.AnimationID.WOODCUTTING_BRONZE; +import static net.runelite.api.AnimationID.WOODCUTTING_DRAGON; +import static net.runelite.api.AnimationID.WOODCUTTING_INFERNAL; +import static net.runelite.api.AnimationID.WOODCUTTING_IRON; +import static net.runelite.api.AnimationID.WOODCUTTING_MITHRIL; +import static net.runelite.api.AnimationID.WOODCUTTING_RUNE; +import static net.runelite.api.AnimationID.WOODCUTTING_STEEL; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics2D; @@ -33,7 +42,6 @@ import java.time.Instant; import java.util.stream.IntStream; import javax.annotation.Nullable; import javax.inject.Inject; -import static net.runelite.api.AnimationID.*; import net.runelite.api.Client; import net.runelite.client.ui.overlay.Overlay; import net.runelite.client.ui.overlay.OverlayPosition; @@ -65,11 +73,6 @@ class WoodcuttingOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, Point parent) { - if (!config.enabled()) - { - return null; - } - WoodcuttingSession session = plugin.getSession(); if (session.getLastLogCut() == null) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java index 6ed607a99a..9f69ef3af0 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/woodcutting/WoodcuttingPlugin.java @@ -41,7 +41,7 @@ import net.runelite.client.task.Schedule; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "Woodcutting plugin" + name = "Woodcutting" ) public class WoodcuttingPlugin extends Plugin { diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesConfig.java index f64967fbb3..34194a4ac9 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesConfig.java @@ -35,16 +35,6 @@ import net.runelite.client.config.ConfigItem; ) public interface XpGlobesConfig extends Config { - @ConfigItem( - keyName = "enabled", - name = "Enabled", - description = "Configures whether or not XP globes are displayed" - ) - default boolean enabled() - { - return true; - } - @ConfigItem( keyName = "enableTooltips", name = "Enable Tooltips", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java index 4d3ce391db..e60edb01fc 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesOverlay.java @@ -85,13 +85,6 @@ public class XpGlobesOverlay extends Overlay @Override public Dimension render(Graphics2D graphics, java.awt.Point point) { - - // won't draw if not logged in or not enabled - if (!config.enabled()) - { - return null; - } - //check the width of the client if we can draw properly int clientWidth = client.isResized() ? client.getCanvas().getWidth() : client.getViewportWidth(); if (clientWidth <= 0) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java index 312450eed2..119b01307e 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xpglobes/XpGlobesPlugin.java @@ -43,7 +43,7 @@ import net.runelite.client.plugins.PluginDescriptor; import net.runelite.client.ui.overlay.Overlay; @PluginDescriptor( - name = "XP globes plugin" + name = "XP globes" ) public class XpGlobesPlugin extends Plugin { @@ -83,11 +83,6 @@ public class XpGlobesPlugin extends Plugin @Subscribe public void onExperienceChanged(ExperienceChanged event) { - if (!config.enabled()) - { - return; - } - Skill skill = event.getSkill(); int currentXp = client.getSkillExperience(skill); int currentLevel = Experience.getLevelForXp(currentXp); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java index 60d3d95ee9..13bbbfdfd4 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xptracker/XpTrackerPlugin.java @@ -51,7 +51,7 @@ import net.runelite.http.api.worlds.WorldType; import net.runelite.http.api.xp.XpClient; @PluginDescriptor( - name = "XP tracker plugin" + name = "XP tracker" ) @Slf4j public class XpTrackerPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java index cea0707076..fd164bcc14 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/xtea/XteaPlugin.java @@ -39,7 +39,8 @@ import net.runelite.http.api.xtea.XteaClient; import okhttp3.Response; @PluginDescriptor( - name = "Xtea plugin" + name = "Xtea", + hidden = true ) @Slf4j public class XteaPlugin extends Plugin diff --git a/runelite-client/src/main/java/net/runelite/client/ui/PluginToolbar.java b/runelite-client/src/main/java/net/runelite/client/ui/PluginToolbar.java index 6dd3e9944c..a9534d63e5 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/PluginToolbar.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/PluginToolbar.java @@ -59,6 +59,7 @@ public class PluginToolbar extends JToolBar buttons.add(button); add(button); revalidate(); + repaint(); } public void removeNavigation(NavigationButton button) @@ -66,6 +67,7 @@ public class PluginToolbar extends JToolBar buttons.remove(button); remove(button); revalidate(); + repaint(); } private void onClick(NavigationButton button) diff --git a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java index 7be716baf4..462dfaa9c3 100644 --- a/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java +++ b/runelite-client/src/main/java/net/runelite/client/ui/overlay/OverlayRenderer.java @@ -32,9 +32,10 @@ import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.image.BufferedImage; -import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.CopyOnWriteArrayList; import java.util.function.Consumer; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -44,11 +45,11 @@ import javax.inject.Singleton; import lombok.extern.slf4j.Slf4j; import net.runelite.api.Client; import net.runelite.api.GameState; +import net.runelite.api.events.GameStateChanged; +import net.runelite.api.events.ResizeableChanged; import net.runelite.api.widgets.Widget; import net.runelite.api.widgets.WidgetInfo; -import net.runelite.api.events.GameStateChanged; import net.runelite.client.events.PluginChanged; -import net.runelite.api.events.ResizeableChanged; import net.runelite.client.plugins.PluginManager; import net.runelite.client.ui.overlay.infobox.InfoBoxOverlay; import net.runelite.client.ui.overlay.tooltip.TooltipOverlay; @@ -75,7 +76,7 @@ public class OverlayRenderer @Inject TooltipOverlay tooltipOverlay; - private final List overlays = new ArrayList<>(); + private final List overlays = new CopyOnWriteArrayList<>(); private BufferedImage surface; private Graphics2D surfaceGraphics; @@ -107,16 +108,7 @@ public class OverlayRenderer @Subscribe public void onPluginChanged(PluginChanged event) { - if (event.isLoaded()) - { - overlays.addAll(event.getPlugin().getOverlays()); - } - else - { - overlays.removeAll(event.getPlugin().getOverlays()); - } - - sortOverlays(overlays); + refreshPlugins(); } private void refreshPlugins() @@ -126,8 +118,10 @@ public class OverlayRenderer .concat( pluginManager.getPlugins() .stream() + .filter(plugin -> pluginManager.isPluginEnabled(plugin)) .flatMap(plugin -> plugin.getOverlays().stream()), Stream.of(infoBoxOverlay, tooltipOverlay)) + .filter(Objects::nonNull) .collect(Collectors.toList())); sortOverlays(overlays); } diff --git a/runelite-client/src/main/java/net/runelite/client/util/RegionTileManager.java b/runelite-client/src/main/java/net/runelite/client/util/RegionTileManager.java new file mode 100644 index 0000000000..16d8bdcb7f --- /dev/null +++ b/runelite-client/src/main/java/net/runelite/client/util/RegionTileManager.java @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2018, Tomas Slusny + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (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.util; + +import com.google.common.eventbus.EventBus; +import java.util.Arrays; +import java.util.Objects; +import java.util.Optional; +import java.util.function.Consumer; +import javax.inject.Inject; +import javax.inject.Provider; +import javax.inject.Singleton; +import net.runelite.api.Client; +import net.runelite.api.GameState; +import net.runelite.api.Region; +import net.runelite.api.Tile; +import net.runelite.api.events.DecorativeObjectSpawned; +import net.runelite.api.events.GameObjectSpawned; +import net.runelite.api.events.GroundObjectSpawned; +import net.runelite.api.events.WallObjectSpawned; + +@Singleton +public class RegionTileManager +{ + private static final int REGION_SIZE = 104; + + private final EventBus eventBus = new EventBus(); + private final Provider clientProvider; + + @Inject + public RegionTileManager(Provider clientProvider) + { + this.clientProvider = clientProvider; + } + + /** + * Iterates over each tile in current region if player is logged in + * @param consumer consumer accepting tile as parameter + */ + public void forEachTile(Consumer consumer) + { + final Client client = clientProvider.get(); + + if (client == null || client.getGameState() != GameState.LOGGED_IN) + { + return; + } + + final Region region = client.getRegion(); + final Tile[][][] tiles = region.getTiles(); + + int z = client.getPlane(); + + for (int x = 0; x < REGION_SIZE; ++x) + { + for (int y = 0; y < REGION_SIZE; ++y) + { + Tile tile = tiles[z][x][y]; + + if (tile == null) + { + continue; + } + + consumer.accept(tile); + } + } + } + + /** + * Simulate object spawns for EventBus subscriber + * @param subscriber EventBus subscriber + */ + public void simulateObjectSpawns(Object subscriber) + { + eventBus.register(subscriber); + + forEachTile((tile) -> + { + Optional.ofNullable(tile.getWallObject()).ifPresent(object -> + { + final WallObjectSpawned objectSpawned = new WallObjectSpawned(); + objectSpawned.setTile(tile); + objectSpawned.setWallObject(object); + eventBus.post(objectSpawned); + }); + + Optional.ofNullable(tile.getDecorativeObject()).ifPresent(object -> + { + final DecorativeObjectSpawned objectSpawned = new DecorativeObjectSpawned(); + objectSpawned.setTile(tile); + objectSpawned.setDecorativeObject(object); + eventBus.post(objectSpawned); + }); + + Optional.ofNullable(tile.getGroundObject()).ifPresent(object -> + { + final GroundObjectSpawned objectSpawned = new GroundObjectSpawned(); + objectSpawned.setTile(tile); + objectSpawned.setGroundObject(object); + eventBus.post(objectSpawned); + }); + + Arrays.stream(tile.getGameObjects()) + .filter(Objects::nonNull) + .forEach(object -> + { + final GameObjectSpawned objectSpawned = new GameObjectSpawned(); + objectSpawned.setTile(tile); + objectSpawned.setGameObject(object); + eventBus.post(objectSpawned); + }); + }); + + eventBus.unregister(subscriber); + } +} diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/config/698-0.png b/runelite-client/src/main/resources/net/runelite/client/plugins/config/698-0.png new file mode 100644 index 0000000000..160d431a95 Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/config/698-0.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/config/699-0.png b/runelite-client/src/main/resources/net/runelite/client/plugins/config/699-0.png new file mode 100644 index 0000000000..a48cfcd5cc Binary files /dev/null and b/runelite-client/src/main/resources/net/runelite/client/plugins/config/699-0.png differ diff --git a/runelite-client/src/main/resources/net/runelite/client/plugins/config/config_icon.png b/runelite-client/src/main/resources/net/runelite/client/plugins/config/config_icon.png index 1cdacec3eb..540855fefe 100644 Binary files a/runelite-client/src/main/resources/net/runelite/client/plugins/config/config_icon.png and b/runelite-client/src/main/resources/net/runelite/client/plugins/config/config_icon.png differ diff --git a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java index b6300a2268..9be51a0e44 100644 --- a/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java +++ b/runelite-client/src/test/java/net/runelite/client/plugins/slayer/SlayerPluginTest.java @@ -24,21 +24,20 @@ */ package net.runelite.client.plugins.slayer; +import static net.runelite.api.ChatMessageType.SERVER; +import static org.junit.Assert.assertEquals; import com.google.inject.Guice; import com.google.inject.testing.fieldbinder.Bind; import com.google.inject.testing.fieldbinder.BoundFieldModule; import javax.inject.Inject; -import static net.runelite.api.ChatMessageType.SERVER; import net.runelite.api.Client; import net.runelite.api.events.ChatMessage; import net.runelite.client.game.ItemManager; import net.runelite.client.ui.overlay.infobox.InfoBoxManager; -import static org.junit.Assert.assertEquals; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; -import static org.mockito.Mockito.when; import org.mockito.runners.MockitoJUnitRunner; @RunWith(MockitoJUnitRunner.class) @@ -78,7 +77,6 @@ public class SlayerPluginTest public void before() { Guice.createInjector(BoundFieldModule.of(this)).injectMembers(this); - when(slayerConfig.enabled()).thenReturn(true); } @Test