Jump to content

Disabling Audio


Recommended Posts

Posted

This makes use of my CachedWidget class: https://osbot.org/forum/topic/97399-a-better-way-to-handle-widgets-cachedwidget/

And also my WidgetActionFilter class: https://osbot.org/forum/topic/127248-widget-action-filter/

 

import org.osbot.rs07.api.ui.Tab;
import org.osbot.rs07.event.Event;

public final class DisableAudioEvent extends Event {
 
    private static final int musicVolumeConfig = 168;
    private static final int soundEffectVolumeConfig = 169;
    private static final int areaSoundEffectVolumeConfig = 872;

    private final CachedWidget soundSettingsWidget = new CachedWidget(new WidgetActionFilter("Audio"));
    private final CachedWidget musicVolumeWidget = new CachedWidget(new WidgetActionFilter("Adjust Music Volume"));
    private final CachedWidget soundEffectVolumeWidget = new CachedWidget(new WidgetActionFilter("Adjust Sound Effect Volume"));
    private final CachedWidget areaSoundEffectVolumeWidget = new CachedWidget(new WidgetActionFilter("Adjust Area Sound Effect Volume"));
    
    @Override
    public final int execute() throws InterruptedException {
        if (Tab.SETTINGS.isDisabled(getBot())) {
            setFailed();
        } else if (getTabs().getOpen() != Tab.SETTINGS) {
            getTabs().open(Tab.SETTINGS);
        } else if (!musicVolumeWidget.get(getWidgets()).isPresent()) {
            soundSettingsWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
        } else if (!isVolumeDisabled(musicVolumeConfig)) {
            musicVolumeWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
        } else if (!isVolumeDisabled(soundEffectVolumeConfig)) {
            soundEffectVolumeWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
        } else if (!isVolumeDisabled(areaSoundEffectVolumeConfig)) {
            areaSoundEffectVolumeWidget.get(getWidgets()).ifPresent(widget -> widget.interact());
        } else {
            setFinished();
        }
        return 200;
    }

    private boolean isVolumeDisabled(final int config) {
        return getConfigs().get(config) == 4;
    }
}

 

Usage:

Event disableAudioEvent = new DisableAudioEvent();
execute(disableAudioEvent);

 

  • Like 3

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...