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 57a7a4718f..0a3336d203 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,11 @@ public @interface PluginDescriptor { String name(); + /** + * Internal name used in the config. + */ + String configName() default ""; + /** * A short, one-line summary of the plugin. */ 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 5b77ac6c12..1549e5cb74 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 @@ -25,6 +25,7 @@ package net.runelite.client.plugins; import com.google.common.annotations.VisibleForTesting; +import com.google.common.base.Strings; import com.google.common.collect.Lists; import com.google.common.graph.Graph; import com.google.common.graph.GraphBuilder; @@ -312,7 +313,8 @@ public class PluginManager { log.debug("Disabling {} due to safe mode", clazz); // also disable the plugin from autostarting later - configManager.unsetConfiguration(RuneLiteConfig.GROUP_NAME, clazz.getSimpleName().toLowerCase()); + configManager.unsetConfiguration(RuneLiteConfig.GROUP_NAME, + (Strings.isNullOrEmpty(pluginDescriptor.configName()) ? clazz.getSimpleName() : pluginDescriptor.configName()).toLowerCase()); continue; } @@ -440,22 +442,17 @@ public class PluginManager public void setPluginEnabled(Plugin plugin, boolean enabled) { - final String keyName = plugin.getClass().getSimpleName().toLowerCase(); - configManager.setConfiguration(RuneLiteConfig.GROUP_NAME, keyName, String.valueOf(enabled)); + final PluginDescriptor pluginDescriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); + final String keyName = Strings.isNullOrEmpty(pluginDescriptor.configName()) ? plugin.getClass().getSimpleName() : pluginDescriptor.configName(); + configManager.setConfiguration(RuneLiteConfig.GROUP_NAME, keyName.toLowerCase(), String.valueOf(enabled)); } public boolean isPluginEnabled(Plugin plugin) { - final String keyName = plugin.getClass().getSimpleName().toLowerCase(); - final String value = configManager.getConfiguration(RuneLiteConfig.GROUP_NAME, keyName); - - if (value != null) - { - return Boolean.valueOf(value); - } - final PluginDescriptor pluginDescriptor = plugin.getClass().getAnnotation(PluginDescriptor.class); - return pluginDescriptor == null || pluginDescriptor.enabledByDefault(); + final String keyName = Strings.isNullOrEmpty(pluginDescriptor.configName()) ? plugin.getClass().getSimpleName() : pluginDescriptor.configName(); + final String value = configManager.getConfiguration(RuneLiteConfig.GROUP_NAME, keyName.toLowerCase()); + return value != null ? Boolean.parseBoolean(value) : pluginDescriptor.enabledByDefault(); } private Plugin instantiate(List scannedPlugins, Class clazz) throws PluginInstantiationException diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java index 789c0740e1..e9287210a8 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/party/PartyPlugin.java @@ -96,6 +96,7 @@ import net.runelite.http.api.ws.messages.party.UserSync; @PluginDescriptor( name = "Party", + configName = "PartyPlugin2", description = "Party management and basic info", enabledByDefault = false )