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 7f2f6ff885..a15e1d7cc7 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 @@ -31,6 +31,7 @@ import com.google.common.primitives.Ints; import com.google.inject.Provides; import java.awt.image.BufferedImage; import static java.lang.Math.min; +import java.util.Arrays; import java.util.List; import javax.inject.Inject; import lombok.Getter; @@ -48,6 +49,9 @@ import net.runelite.api.events.MenuEntryAdded; import net.runelite.api.events.StatChanged; import net.runelite.api.events.VarbitChanged; import net.runelite.api.kit.KitType; +import net.runelite.client.chat.ChatMessageBuilder; +import net.runelite.client.chat.ChatMessageManager; +import net.runelite.client.chat.QueuedMessage; import net.runelite.client.config.ConfigManager; import net.runelite.client.eventbus.EventBus; import net.runelite.client.eventbus.Subscribe; @@ -105,6 +109,12 @@ public class DevToolsPlugin extends Plugin @Inject private EventBus eventBus; + @Inject + private ConfigManager configManager; + + @Inject + private ChatMessageManager chatMessageManager; + private DevToolsButton players; private DevToolsButton npcs; private DevToolsButton groundItems; @@ -362,6 +372,50 @@ public class DevToolsPlugin extends Plugin client.addChatMessage(ChatMessageType.GAMEMESSAGE, "", String.join(" ", args), ""); break; } + case "setconf": + { + // setconf group.key name = value + String group = args[0]; + String key = args[1], value = ""; + for (int i = 2; i < args.length; ++i) + { + if (args[i].equals("=")) + { + value = String.join(" ", Arrays.copyOfRange(args, i + 1, args.length)); + break; + } + + key += " " + args[i]; + } + String current = configManager.getConfiguration(group, key); + final String message; + if (value.isEmpty()) + { + configManager.unsetConfiguration(group, key); + message = String.format("Unset configuration %s.%s (was: %s)", group, key, current); + } + else + { + configManager.setConfiguration(group, key, value); + message = String.format("Set configuration %s.%s to %s (was: %s)", group, key, value, current); + } + chatMessageManager.queue(QueuedMessage.builder() + .type(ChatMessageType.GAMEMESSAGE) + .runeLiteFormattedMessage(new ChatMessageBuilder().append(message).build()) + .build()); + break; + } + case "getconf": + { + String group = args[0], key = String.join(" ", Arrays.copyOfRange(args, 1, args.length)); + String value = configManager.getConfiguration(group, key); + final String message = String.format("%s.%s = %s", group, key, value); + chatMessageManager.queue(QueuedMessage.builder() + .type(ChatMessageType.GAMEMESSAGE) + .runeLiteFormattedMessage(new ChatMessageBuilder().append(message).build()) + .build()); + break; + } } }