From 41b5d529d607f24e22161c2c61aa96206699942d Mon Sep 17 00:00:00 2001 From: chsami Date: Mon, 10 Nov 2025 11:09:07 +0100 Subject: [PATCH] feat(microbot): add toggles for blocking events --- .../plugins/microbot/MicrobotConfig.java | 26 +++++++++ .../events/DisableLevelUpInterfaceEvent.java | 54 +++++++++++++------ ...DisableWorldSwitcherConfirmationEvent.java | 20 ++++++- 3 files changed, 83 insertions(+), 17 deletions(-) diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotConfig.java index 9ee5000d56e..28cdf25561a 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotConfig.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/MicrobotConfig.java @@ -20,6 +20,32 @@ public interface MicrobotConfig extends Config ) String generalSection = "generalSection"; + String keyDisableLevelUpInterface = "disableLevelUpInterface"; + @ConfigItem( + keyName = keyDisableLevelUpInterface, + name = "Disable level-up interface", + description = "Automatically close the level-up interface when it appears", + position = 0, + section = generalSection + ) + default boolean disableLevelUpInterface() + { + return true; + } + + String keyDisableWorldSwitcherConfirmation = "disableWorldSwitcherConfirmation"; + @ConfigItem( + keyName = keyDisableWorldSwitcherConfirmation, + name = "Disable world switcher confirmation", + description = "Automatically disable the world switcher confirmation prompt", + position = 1, + section = generalSection + ) + default boolean disableWorldSwitcherConfirmation() + { + return true; + } + @ConfigSection( name = "Logging", description = "Game chat logging configuration", diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableLevelUpInterfaceEvent.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableLevelUpInterfaceEvent.java index e27f11ed41b..d1d54a9724b 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableLevelUpInterfaceEvent.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableLevelUpInterfaceEvent.java @@ -1,28 +1,50 @@ package net.runelite.client.plugins.microbot.util.events; +import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.microbot.BlockingEvent; import net.runelite.client.plugins.microbot.BlockingEventPriority; import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.MicrobotConfig; import net.runelite.client.plugins.microbot.util.settings.Rs2Settings; public class DisableLevelUpInterfaceEvent implements BlockingEvent { + @Override + public boolean validate() + { + return isConfigEnabled() && Microbot.isLoggedIn() && Rs2Settings.isLevelUpNotificationsEnabled(); + } - @Override - public boolean validate() { - return Microbot.isLoggedIn() && Rs2Settings.isLevelUpNotificationsEnabled(); - } + @Override + public boolean execute() + { + if (!isConfigEnabled()) + { + return true; + } - @Override - public boolean execute() { - var result = Rs2Settings.disableLevelUpNotifications(); - if (result) { - return true; - } - return !validate(); - } + var result = Rs2Settings.disableLevelUpNotifications(); + if (result) + { + return true; + } + return !validate(); + } - @Override - public BlockingEventPriority priority() { - return BlockingEventPriority.HIGH; - } + private boolean isConfigEnabled() + { + ConfigManager configManager = Microbot.getConfigManager(); + if (configManager == null) + { + return true; + } + + MicrobotConfig config = configManager.getConfig(MicrobotConfig.class); + return config == null || config.disableLevelUpInterface(); + } + + @Override + public BlockingEventPriority priority() + { + return BlockingEventPriority.HIGH; + } } diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableWorldSwitcherConfirmationEvent.java b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableWorldSwitcherConfirmationEvent.java index 5907b8befa5..91fcdb8b72f 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableWorldSwitcherConfirmationEvent.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/microbot/util/events/DisableWorldSwitcherConfirmationEvent.java @@ -1,8 +1,10 @@ package net.runelite.client.plugins.microbot.util.events; +import net.runelite.client.config.ConfigManager; import net.runelite.client.plugins.microbot.BlockingEvent; import net.runelite.client.plugins.microbot.BlockingEventPriority; import net.runelite.client.plugins.microbot.Microbot; +import net.runelite.client.plugins.microbot.MicrobotConfig; import net.runelite.client.plugins.microbot.util.settings.Rs2Settings; public class DisableWorldSwitcherConfirmationEvent implements BlockingEvent @@ -10,15 +12,31 @@ public class DisableWorldSwitcherConfirmationEvent implements BlockingEvent @Override public boolean validate() { - return Microbot.isLoggedIn() && Rs2Settings.isWorldSwitcherConfirmationEnabled(); + return isConfigEnabled() && Microbot.isLoggedIn() && Rs2Settings.isWorldSwitcherConfirmationEnabled(); } @Override public boolean execute() { + if (!isConfigEnabled()) + { + return true; + } return Rs2Settings.disableWorldSwitcherConfirmation(); } + private boolean isConfigEnabled() + { + ConfigManager configManager = Microbot.getConfigManager(); + if (configManager == null) + { + return true; + } + + MicrobotConfig config = configManager.getConfig(MicrobotConfig.class); + return config == null || config.disableWorldSwitcherConfirmation(); + } + @Override public BlockingEventPriority priority() {