Jump to content

Disabling Audio


Explv

Recommended Posts

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
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

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