Skip to content
Merged

2.0.40 #1601

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion runelite-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
<git.commit.id.abbrev>nogit</git.commit.id.abbrev>
<git.dirty>false</git.dirty>
<shade.skip>false</shade.skip>
<microbot.version>2.0.39</microbot.version>
<microbot.version>2.0.40</microbot.version>
<microbot.commit.sha>nogit</microbot.commit.sha>
</properties>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ protected void startUp() throws AWTException {
.panel(panel)
.build();
Rs2AntibanSettings.reset();
Rs2AntibanSettings.loadFromProfile();
validateAndSetBreakDurations();

Timer timer = new Timer();
Expand Down Expand Up @@ -190,6 +191,8 @@ public void onChatMessage(ChatMessage event) {
@Subscribe
public void onProfileChanged(ProfileChanged event) {
Rs2Antiban.resetAntibanSettings();
Rs2AntibanSettings.loadFromProfile();
validateAndSetBreakDurations();
}

@Subscribe
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
package net.runelite.client.plugins.microbot.util.antiban;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import lombok.extern.slf4j.Slf4j;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.plugins.microbot.Microbot;

/**
* Provides configuration settings for the anti-ban system used by various plugins within the bot framework.
*
Expand Down Expand Up @@ -73,7 +79,199 @@
* </pre>
*/

@Slf4j
public class Rs2AntibanSettings {
private static final String CONFIG_GROUP = "MicrobotAntiban";
private static final String CONFIG_KEY = "settings";
private static final Gson GSON = new Gson();

private Rs2AntibanSettings() {
throw new IllegalStateException("Utility class");
}

private static class PersistentSettings {
private Boolean antibanEnabled;
private Boolean usePlayStyle;
private Boolean randomIntervals;
private Boolean simulateFatigue;
private Boolean simulateAttentionSpan;
private Boolean behavioralVariability;
private Boolean nonLinearIntervals;
private Boolean profileSwitching;
private Boolean timeOfDayAdjust;
private Boolean simulateMistakes;
private Boolean naturalMouse;
private Boolean moveMouseOffScreen;
private Boolean moveMouseRandomly;
private Boolean contextualVariability;
private Boolean dynamicIntensity;
private Boolean dynamicActivity;
private Boolean devDebug;
private Boolean overwriteScriptSettings;
private Boolean takeMicroBreaks;
private Boolean playSchedule;
private Boolean universalAntiban;
private Integer microBreakDurationLow;
private Integer microBreakDurationHigh;
private Double actionCooldownChance;
private Double microBreakChance;
private Double moveMouseRandomlyChance;
private Double moveMouseOffScreenChance;
}

public static void saveToProfile() {
ConfigManager configManager = Microbot.getConfigManager();
if (configManager == null) {
log.debug("ConfigManager not available, skipping antiban settings save");
return;
}

PersistentSettings settings = snapshot();
try {
configManager.setConfiguration(CONFIG_GROUP, CONFIG_KEY, GSON.toJson(settings));
} catch (Exception ex) {
log.warn("Unable to save antiban settings to profile", ex);
}
}

public static void loadFromProfile() {
ConfigManager configManager = Microbot.getConfigManager();
if (configManager == null) {
log.debug("ConfigManager not available, skipping antiban settings load");
return;
}

String json = configManager.getConfiguration(CONFIG_GROUP, CONFIG_KEY);
if (json == null || json.isEmpty()) {
return;
}

try {
PersistentSettings settings = GSON.fromJson(json, PersistentSettings.class);
if (settings != null) {
apply(settings);
}
} catch (JsonSyntaxException ex) {
log.warn("Unable to parse antiban settings from profile", ex);
}
}

private static PersistentSettings snapshot() {
PersistentSettings settings = new PersistentSettings();
settings.antibanEnabled = antibanEnabled;
settings.usePlayStyle = usePlayStyle;
settings.randomIntervals = randomIntervals;
settings.simulateFatigue = simulateFatigue;
settings.simulateAttentionSpan = simulateAttentionSpan;
settings.behavioralVariability = behavioralVariability;
settings.nonLinearIntervals = nonLinearIntervals;
settings.profileSwitching = profileSwitching;
settings.timeOfDayAdjust = timeOfDayAdjust;
settings.simulateMistakes = simulateMistakes;
settings.naturalMouse = naturalMouse;
settings.moveMouseOffScreen = moveMouseOffScreen;
settings.moveMouseRandomly = moveMouseRandomly;
settings.contextualVariability = contextualVariability;
settings.dynamicIntensity = dynamicIntensity;
settings.dynamicActivity = dynamicActivity;
settings.devDebug = devDebug;
settings.overwriteScriptSettings = overwriteScriptSettings;
settings.takeMicroBreaks = takeMicroBreaks;
settings.playSchedule = playSchedule;
settings.universalAntiban = universalAntiban;
settings.microBreakDurationLow = microBreakDurationLow;
settings.microBreakDurationHigh = microBreakDurationHigh;
settings.actionCooldownChance = actionCooldownChance;
settings.microBreakChance = microBreakChance;
settings.moveMouseRandomlyChance = moveMouseRandomlyChance;
settings.moveMouseOffScreenChance = moveMouseOffScreenChance;
return settings;
}

private static void apply(PersistentSettings settings) {
if (settings.antibanEnabled != null) {
antibanEnabled = settings.antibanEnabled;
}
if (settings.usePlayStyle != null) {
usePlayStyle = settings.usePlayStyle;
}
if (settings.randomIntervals != null) {
randomIntervals = settings.randomIntervals;
}
if (settings.simulateFatigue != null) {
simulateFatigue = settings.simulateFatigue;
}
if (settings.simulateAttentionSpan != null) {
simulateAttentionSpan = settings.simulateAttentionSpan;
}
if (settings.behavioralVariability != null) {
behavioralVariability = settings.behavioralVariability;
}
if (settings.nonLinearIntervals != null) {
nonLinearIntervals = settings.nonLinearIntervals;
}
if (settings.profileSwitching != null) {
profileSwitching = settings.profileSwitching;
}
if (settings.timeOfDayAdjust != null) {
timeOfDayAdjust = settings.timeOfDayAdjust;
}
if (settings.simulateMistakes != null) {
simulateMistakes = settings.simulateMistakes;
}
if (settings.naturalMouse != null) {
naturalMouse = settings.naturalMouse;
}
if (settings.moveMouseOffScreen != null) {
moveMouseOffScreen = settings.moveMouseOffScreen;
}
if (settings.moveMouseRandomly != null) {
moveMouseRandomly = settings.moveMouseRandomly;
}
if (settings.contextualVariability != null) {
contextualVariability = settings.contextualVariability;
}
if (settings.dynamicIntensity != null) {
dynamicIntensity = settings.dynamicIntensity;
}
if (settings.dynamicActivity != null) {
dynamicActivity = settings.dynamicActivity;
}
if (settings.devDebug != null) {
devDebug = settings.devDebug;
}
if (settings.overwriteScriptSettings != null) {
overwriteScriptSettings = settings.overwriteScriptSettings;
}
if (settings.takeMicroBreaks != null) {
takeMicroBreaks = settings.takeMicroBreaks;
}
if (settings.playSchedule != null) {
playSchedule = settings.playSchedule;
}
if (settings.universalAntiban != null) {
universalAntiban = settings.universalAntiban;
}
if (settings.microBreakDurationLow != null) {
microBreakDurationLow = settings.microBreakDurationLow;
}
if (settings.microBreakDurationHigh != null) {
microBreakDurationHigh = settings.microBreakDurationHigh;
}
if (settings.actionCooldownChance != null) {
actionCooldownChance = settings.actionCooldownChance;
}
if (settings.microBreakChance != null) {
microBreakChance = settings.microBreakChance;
}
if (settings.moveMouseRandomlyChance != null) {
moveMouseRandomlyChance = settings.moveMouseRandomlyChance;
}
if (settings.moveMouseOffScreenChance != null) {
moveMouseOffScreenChance = settings.moveMouseOffScreenChance;
}
}

public static boolean actionCooldownActive = false;
public static boolean microBreakActive = false;
public static boolean antibanEnabled = true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,14 +49,38 @@ public ActivityPanel() {
}

private void setupActionListeners() {
usePlayStyle.addActionListener(e -> Rs2AntibanSettings.usePlayStyle = usePlayStyle.isSelected());
useRandomIntervals.addActionListener(e -> Rs2AntibanSettings.randomIntervals = useRandomIntervals.isSelected());
simulateFatigue.addActionListener(e -> Rs2AntibanSettings.simulateFatigue = simulateFatigue.isSelected());
simulateAttentionSpan.addActionListener(e -> Rs2AntibanSettings.simulateAttentionSpan = simulateAttentionSpan.isSelected());
useBehavioralVariability.addActionListener(e -> Rs2AntibanSettings.behavioralVariability = useBehavioralVariability.isSelected());
useNonLinearIntervals.addActionListener(e -> Rs2AntibanSettings.nonLinearIntervals = useNonLinearIntervals.isSelected());
dynamicActivityIntensity.addActionListener(e -> Rs2AntibanSettings.dynamicIntensity = dynamicActivityIntensity.isSelected());
dynamicActivity.addActionListener(e -> Rs2AntibanSettings.dynamicActivity = dynamicActivity.isSelected());
usePlayStyle.addActionListener(e -> {
Rs2AntibanSettings.usePlayStyle = usePlayStyle.isSelected();
Rs2AntibanSettings.saveToProfile();
});
useRandomIntervals.addActionListener(e -> {
Rs2AntibanSettings.randomIntervals = useRandomIntervals.isSelected();
Rs2AntibanSettings.saveToProfile();
});
simulateFatigue.addActionListener(e -> {
Rs2AntibanSettings.simulateFatigue = simulateFatigue.isSelected();
Rs2AntibanSettings.saveToProfile();
});
simulateAttentionSpan.addActionListener(e -> {
Rs2AntibanSettings.simulateAttentionSpan = simulateAttentionSpan.isSelected();
Rs2AntibanSettings.saveToProfile();
});
useBehavioralVariability.addActionListener(e -> {
Rs2AntibanSettings.behavioralVariability = useBehavioralVariability.isSelected();
Rs2AntibanSettings.saveToProfile();
});
useNonLinearIntervals.addActionListener(e -> {
Rs2AntibanSettings.nonLinearIntervals = useNonLinearIntervals.isSelected();
Rs2AntibanSettings.saveToProfile();
});
dynamicActivityIntensity.addActionListener(e -> {
Rs2AntibanSettings.dynamicIntensity = dynamicActivityIntensity.isSelected();
Rs2AntibanSettings.saveToProfile();
});
dynamicActivity.addActionListener(e -> {
Rs2AntibanSettings.dynamicActivity = dynamicActivity.isSelected();
Rs2AntibanSettings.saveToProfile();
});

}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,9 @@ private void setupActionListeners() {
actionCooldownChance.addChangeListener(e -> {
Rs2AntibanSettings.actionCooldownChance = actionCooldownChance.getValue() / 100.0;
actionCooldownChanceLabel.setText("Action Cooldown Chance (%): " + actionCooldownChance.getValue());
if (!actionCooldownChance.getValueIsAdjusting()) {
Rs2AntibanSettings.saveToProfile();
}
});
timeout.addChangeListener(e -> {
Rs2Antiban.setTIMEOUT(timeout.getValue());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,12 +57,30 @@ public GeneralPanel() {
}

private void setupActionListeners() {
isEnabled.addActionListener(e -> Rs2AntibanSettings.antibanEnabled = isEnabled.isSelected());
universalAntiban.addActionListener(e -> Rs2AntibanSettings.universalAntiban = universalAntiban.isSelected());
useContextualVariability.addActionListener(e -> Rs2AntibanSettings.contextualVariability = useContextualVariability.isSelected());
devDebug.addActionListener(e -> Rs2AntibanSettings.devDebug = devDebug.isSelected());
overwriteScriptSetting.addActionListener(e -> Rs2AntibanSettings.overwriteScriptSettings = overwriteScriptSetting.isSelected());
universalAntibanSettings.addActionListener(e -> Rs2Antiban.antibanSetupTemplates.applyUniversalAntibanSetup());
isEnabled.addActionListener(e -> {
Rs2AntibanSettings.antibanEnabled = isEnabled.isSelected();
Rs2AntibanSettings.saveToProfile();
});
universalAntiban.addActionListener(e -> {
Rs2AntibanSettings.universalAntiban = universalAntiban.isSelected();
Rs2AntibanSettings.saveToProfile();
});
useContextualVariability.addActionListener(e -> {
Rs2AntibanSettings.contextualVariability = useContextualVariability.isSelected();
Rs2AntibanSettings.saveToProfile();
});
devDebug.addActionListener(e -> {
Rs2AntibanSettings.devDebug = devDebug.isSelected();
Rs2AntibanSettings.saveToProfile();
});
overwriteScriptSetting.addActionListener(e -> {
Rs2AntibanSettings.overwriteScriptSettings = overwriteScriptSetting.isSelected();
Rs2AntibanSettings.saveToProfile();
});
universalAntibanSettings.addActionListener(e -> {
Rs2Antiban.antibanSetupTemplates.applyUniversalAntibanSetup();
Rs2AntibanSettings.saveToProfile();
});
}

public void updateValues() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.util.antiban.AntibanPlugin;
import net.runelite.client.plugins.microbot.util.antiban.Rs2Antiban;
import net.runelite.client.plugins.microbot.util.antiban.Rs2AntibanSettings;
import net.runelite.client.ui.FontManager;
import net.runelite.client.ui.PluginPanel;
import net.runelite.client.util.ImageUtil;
Expand Down Expand Up @@ -180,6 +181,7 @@ private JPanel createHeaderPanel(NavigationPanel navigationPanel) {
public void setupResetButton() {
resetButton.addActionListener(e -> {
Rs2Antiban.resetAntibanSettings(true);
Rs2AntibanSettings.saveToProfile();
loadSettings();
});
}
Expand Down
Loading