Skip to content
Closed
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
Original file line number Diff line number Diff line change
@@ -1,44 +1,89 @@
package net.runelite.client.plugins.microbot.accountselector;

import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.ConfigSection;

@ConfigGroup("AutoLoginConfig")
public interface AutoLoginConfig extends Config {
@ConfigSection(
name = "General",
description = "General",
position = 0,
closedByDefault = false
)
String generalSection = "general";

@ConfigItem(
keyName = "World",
name = "World",
description = "World",
position = 0,
section = generalSection
)
default int world() { return 360; }

@ConfigItem(
keyName = "Is Member",
name = "Is Member",
description = "use Member worlds",
position = 0,
section = generalSection
)
default boolean isMember() { return false; }

@ConfigItem(
keyName = "RandomWorld",
name = "RandomWorld",
description = "use random worlds",
position = 0,
section = generalSection
)
default boolean useRandomWorld() { return true; }
}
package net.runelite.client.plugins.microbot.accountselector;

import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.ConfigSection;

@ConfigGroup("AutoLoginConfig")
public interface AutoLoginConfig extends Config {
@ConfigSection(
name = "General",
description = "General",
position = 0,
closedByDefault = false
)
String generalSection = "general";

@ConfigItem(
keyName = "World",
name = "World",
description = "World",
position = 0,
section = generalSection
)
default int world() { return 360; }

@ConfigItem(
keyName = "Is Member",
name = "Is Member",
description = "Use member worlds",
position = 1,
section = generalSection
)
default boolean isMember() { return false; }

@ConfigItem(
keyName = "RandomWorld",
name = "Use Random World",
description = "Use random worlds",
position = 2,
section = generalSection
)
default boolean useRandomWorld() { return true; }

@ConfigSection(
name = "Region Filter",
description = "Filter random world selection by region",
position = 10,
closedByDefault = false
)
String regionSection = "region";


@ConfigItem(
keyName = "AllowUK",
name = "UK",
description = "Allow UK worlds",
position = 1,
section = regionSection
)
default boolean allowUK() { return true; }

@ConfigItem(
keyName = "AllowUS",
name = "US",
description = "Allow US worlds",
position = 2,
section = regionSection
)
default boolean allowUS() { return true; }

@ConfigItem(
keyName = "AllowGermany",
name = "Germany",
description = "Allow German worlds",
position = 3,
section = regionSection
)
default boolean allowGermany() { return true; }

@ConfigItem(
keyName = "AllowAustralia",
name = "Australia",
description = "Allow Australian worlds",
position = 4,
section = regionSection
)
default boolean allowAustralia() { return true; }
}
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
package net.runelite.client.plugins.microbot.accountselector;

import com.google.inject.Provides;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.client.Notifier;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.config.ProfileManager;
import net.runelite.client.game.WorldService;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.util.mouse.VirtualMouse;

import javax.inject.Inject;
import java.awt.*;

@PluginDescriptor(
name = PluginDescriptor.Mocrosoft + "AutoLogin",
description = "Microbot autologin plugin",
tags = {"account", "microbot", "login"},
enabledByDefault = false
)
@Slf4j
public class AutoLoginPlugin extends Plugin {
@Inject
AutoLoginScript accountSelectorScript;

@Inject
AutoLoginConfig autoLoginConfig;
@Provides
AutoLoginConfig provideConfig(ConfigManager configManager) {
return configManager.getConfig(AutoLoginConfig.class);
}

@Override
protected void startUp() throws AWTException {
Microbot.pauseAllScripts.compareAndSet(true, false);
accountSelectorScript.run(autoLoginConfig);
}

protected void shutDown() {
accountSelectorScript.shutdown();
}

}
package net.runelite.client.plugins.microbot.accountselector;
import com.google.inject.Provides;
import lombok.extern.slf4j.Slf4j;
import net.runelite.api.Client;
import net.runelite.client.Notifier;
import net.runelite.client.callback.ClientThread;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.config.ProfileManager;
import net.runelite.client.game.WorldService;
import net.runelite.client.plugins.Plugin;
import net.runelite.client.plugins.PluginDescriptor;
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.util.mouse.VirtualMouse;
import javax.inject.Inject;
import java.awt.*;
@PluginDescriptor(
name = PluginDescriptor.Mocrosoft + "AutoLogin",
description = "Microbot autologin plugin",
tags = {"account", "microbot", "login"},
enabledByDefault = false
)
@Slf4j
public class AutoLoginPlugin extends Plugin {
@Inject
AutoLoginScript accountSelectorScript;
@Inject
AutoLoginConfig autoLoginConfig;
@Provides
AutoLoginConfig provideConfig(ConfigManager configManager) {
return configManager.getConfig(AutoLoginConfig.class);
}
@Override
protected void startUp() throws AWTException {
Microbot.pauseAllScripts.compareAndSet(true, false);
accountSelectorScript.run(autoLoginConfig);
}
protected void shutDown() {
accountSelectorScript.shutdown();
}
}
Original file line number Diff line number Diff line change
@@ -1,33 +1,71 @@
package net.runelite.client.plugins.microbot.accountselector;

import net.runelite.api.GameState;
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.Script;
import net.runelite.client.plugins.microbot.util.security.Login;

import java.util.concurrent.TimeUnit;

public class AutoLoginScript extends Script {

public boolean run(AutoLoginConfig autoLoginConfig) {
mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> {
try {
if (!super.run()) return;

if (Microbot.getClient().getGameState() == GameState.LOGIN_SCREEN) {
if (autoLoginConfig.useRandomWorld()) {
new Login(Login.getRandomWorld(autoLoginConfig.isMember()));
} else {
new Login(autoLoginConfig.world());
}
sleep(5000);
}


} catch (Exception ex) {
Microbot.logStackTrace(this.getClass().getSimpleName(), ex);
}
}, 0, 1000, TimeUnit.MILLISECONDS);
return true;
}
}
package net.runelite.client.plugins.microbot.accountselector;

import net.runelite.api.GameState;
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.Script;
import net.runelite.client.plugins.microbot.util.security.Login;
import net.runelite.http.api.worlds.WorldRegion;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.TimeUnit;

public class AutoLoginScript extends Script {

private List<WorldRegion> getAllowedRegions(AutoLoginConfig config) {
List<WorldRegion> allowedRegions = new ArrayList<>();

if (config.allowUK()) {
allowedRegions.add(WorldRegion.UNITED_KINGDOM);
}
if (config.allowUS()) {
allowedRegions.add(WorldRegion.UNITED_STATES_OF_AMERICA);
}
if (config.allowGermany()) {
allowedRegions.add(WorldRegion.GERMANY);
}
if (config.allowAustralia()) {
allowedRegions.add(WorldRegion.AUSTRALIA);
}

return allowedRegions;
}

private int getRandomWorldWithRegionFilter(AutoLoginConfig config) {
List<WorldRegion> allowedRegions = getAllowedRegions(config);

if (allowedRegions.isEmpty()) {
// If no regions allowed, use default method
return Login.getRandomWorld(config.isMember());
}

// Pick a random region from allowed regions
Random random = new Random();
WorldRegion selectedRegion = allowedRegions.get(random.nextInt(allowedRegions.size()));

return Login.getRandomWorld(config.isMember(), selectedRegion);
}

public boolean run(AutoLoginConfig autoLoginConfig) {
mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> {
try {
if (!super.run()) return;

if (Microbot.getClient().getGameState() == GameState.LOGIN_SCREEN) {
if (autoLoginConfig.useRandomWorld()) {
new Login(getRandomWorldWithRegionFilter(autoLoginConfig));
} else {
new Login(autoLoginConfig.world());
}
sleep(5000);
}


} catch (Exception ex) {
Microbot.logStackTrace(this.getClass().getSimpleName(), ex);
}
}, 0, 1000, TimeUnit.MILLISECONDS);
return true;
}
}
Loading