Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.lssbot.scripts.rok.mail;
- import com.lssbot.core.api.device.Device;
- import com.lssbot.core.api.game.Game;
- import com.lssbot.core.api.game.rok.mail.ROKMailTab;
- import com.lssbot.core.api.random.RNG;
- import com.lssbot.core.api.script.AbstractScript;
- import com.lssbot.core.api.script.ExitCodes;
- import com.lssbot.core.api.script.ScriptManifest;
- import com.lssbot.core.api.script.config.Config;
- import com.lssbot.core.api.utils.EnumUtils;
- import java.util.LinkedList;
- import java.util.Queue;
- import java.util.stream.Collectors;
- /**
- * @author Roma on 25.09.2022
- */
- @ScriptManifest(
- game = Game.RISE_OF_KINGDOMS,
- name = "Mail Read & Claim",
- version = 0.0,
- timeoutMinutes = 8,
- author = "LSS Bot",
- description = "<p>Reads and claims mail within the selected tabs</p>"
- )
- public class MailScript extends AbstractScript {
- private final MailConfig CONFIG = new MailConfig();
- private final Queue<ROKMailTab> TAB_QUEUE = new LinkedList<>();
- private ROKMailTab currentTab;
- public MailScript(Device device) {
- super(device);
- }
- @Override
- public void onStop() {
- if (rok().getMail().isOpen()) {
- rok().getMenu().close();
- sleepUntil(() -> rok().getViewport().isInCity() || rok().getViewport().isOnMap());
- }
- }
- @Override
- public void onStart() {
- TAB_QUEUE.addAll(
- CONFIG.tabs.getSelectedValues()
- .stream()
- .map(tab -> (ROKMailTab) EnumUtils.enumFromString(ROKMailTab.class, tab))
- .collect(Collectors.toList())
- );
- }
- @Override
- public int loop() {
- if (currentTab == null) {
- if (TAB_QUEUE.isEmpty()) {
- device.log("Checked all selected tabs");
- return ExitCodes.COMPLETED;
- }
- currentTab = TAB_QUEUE.poll();
- if (currentTab == null) return 0;
- device.log("Next mail tab " + EnumUtils.toStringFormat(currentTab));
- }
- if (rok().getMail().isOpen()) {
- if (rok().getMail().getOpenTab() == currentTab || rok().getMail().openTab(currentTab)) {
- rok().getMail().pressReadAndClaim();
- currentTab = null;
- }
- } else {
- rok().getMail().open();
- return RNG.nextInt(2000, 3000);
- }
- return 0;
- }
- @Override
- public Config getConfig() {
- return CONFIG;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement