-
Notifications
You must be signed in to change notification settings - Fork 121
Description
Il keep it short iv gone through 5 accounts trying this rev script due to me thinking it was user error & since you guys kept saying it works fine well no it didnt work fine, it could barley withdraw items from bank & barley even get to the rev caves , i tryed every single way to try and get it to just run to the caves..
Found 5 reasons why it wouldn't bank & why it would be in a world hop loop!! I am no scripter so idk were to post this but this is the fix & iv been running it fine for about 5 hours now with no issues at all
package net.runelite.client.plugins.microbot.revkiller;
import com.google.inject.Provides;
import net.runelite.api.*;
import net.runelite.api.Point;
import net.runelite.api.coords.LocalPoint;
import net.runelite.api.coords.WorldPoint;
import net.runelite.api.kit.KitType;
import net.runelite.client.config.ConfigManager;
import net.runelite.client.game.ItemManager;
import net.runelite.client.plugins.microbot.Microbot;
import net.runelite.client.plugins.microbot.Script;
import net.runelite.client.plugins.microbot.breakhandler.BreakHandlerScript;
import net.runelite.client.plugins.microbot.util.Rs2InventorySetup;
import net.runelite.client.plugins.microbot.util.bank.Rs2Bank;
import net.runelite.client.plugins.microbot.util.bank.enums.BankLocation;
import net.runelite.client.plugins.microbot.util.camera.Rs2Camera;
import net.runelite.client.plugins.microbot.util.combat.Rs2Combat;
import net.runelite.client.plugins.microbot.util.dialogues.Rs2Dialogue;
import net.runelite.client.plugins.microbot.util.equipment.Rs2Equipment;
import net.runelite.client.plugins.microbot.util.gameobject.Rs2GameObject;
import net.runelite.client.plugins.microbot.util.grounditem.LootingParameters;
import net.runelite.client.plugins.microbot.util.grounditem.Rs2GroundItem;
import net.runelite.client.plugins.microbot.util.inventory.Rs2Inventory;
import net.runelite.client.plugins.microbot.util.inventory.Rs2ItemModel;
import net.runelite.client.plugins.microbot.util.math.Rs2Random;
import net.runelite.client.plugins.microbot.util.npc.Rs2Npc;
import net.runelite.client.plugins.microbot.util.npc.Rs2NpcModel;
import net.runelite.client.plugins.microbot.util.player.Rs2Player;
import net.runelite.client.plugins.microbot.util.player.Rs2PlayerModel;
import net.runelite.client.plugins.microbot.util.player.Rs2Pvp;
import net.runelite.client.plugins.microbot.util.prayer.Rs2Prayer;
import net.runelite.client.plugins.microbot.util.prayer.Rs2PrayerEnum;
import net.runelite.client.plugins.microbot.util.security.Login;
import net.runelite.client.plugins.microbot.util.walker.Rs2Walker;
import net.runelite.client.plugins.microbot.util.widget.Rs2Widget;
import net.runelite.http.api.worlds.World;
import java.awt.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
public class revkillerscript extends Script {
private revKillerConfig config;
@provides
revKillerConfig provideConfig(ConfigManager configManager) {
return configManager.getConfig(revKillerConfig.class);
}
private ItemManager itemManager;
int potthresh = generateRandomNumber(3,6);
int potsUntilSwap = 0;
private boolean hoppedWorld = false;
WorldPoint cave = new WorldPoint(3076, 3652, 0);
WorldPoint caveBeginning = new WorldPoint(3201, 10058, 0);
public static boolean test = false;
public WorldPoint selectedWP;
public volatile String selectedRev;
public int selectedArrow;
int LowOnArrowsCount = generateRandomNumber(30,60);
long randomdelay = generateRandomNumber(350,1000);
protected ScheduledFuture<?> checkForPKerFuture;
protected ScheduledFuture<?> healthCheckFuture;
public volatile boolean weDied = false;
private boolean useTimedWorldHopper = false;
private long howLongUntilHop = 0;
public volatile boolean shouldFlee = false;
private long startTime = System.currentTimeMillis();
public volatile boolean firstRun = false;
public boolean run(revKillerConfig config) {
this.config = config;
Microbot.enableAutoRunOn = false;
mainScheduledFuture = scheduledExecutorService.scheduleWithFixedDelay(() -> {
try {
if (!Microbot.isLoggedIn()){
if(!timeToBreak()){
if(selectedRev.contains("knight")) {
logBackIn();
}
}
return;
}
if (!super.run()) return;
long startTime = System.currentTimeMillis();
useTimedWorldHopper = config.shouldUseTimedWorldHopper();
randomdelay = generateRandomNumber(400,900);
if(howLongUntilHop == 0){
if(useTimedWorldHopper) {
howLongUntilHop = config.hopInMinutes();
}
}
if(shouldFlee){
if(weDied){
shouldFlee = false;
Rs2Walker.setTarget(null);
}
return;
}
var inventorySetup = new Rs2InventorySetup(config.inventorySetup().getName(), mainScheduledFuture);
if(firstRun || weDied) {
Microbot.log("It's our first run or we died!");
sleep(10000,20000); //Allow us some time to fully die so we properly match that equipment is missing. replace with a sleepUntil
if (inventorySetup.doesEquipmentMatch()) {
} else {
if(!Rs2Bank.isOpen()){
Rs2Bank.walkToBankAndUseBank();
}
if(Rs2Bank.isOpen()) inventorySetup.loadEquipment();
}
if(inventorySetup.doesEquipmentMatch()){
weDied = false;
firstRun = false;
}
return;
}
if(BreakHandlerScript.lockState.get()){
BreakHandlerScript.lockState.set(false);
}
if(areWeEquipped()){
if(Rs2Player.getWorldLocation().distanceTo(selectedWP)>12){
WalkToRevs();
} else {
equipArrows();
drinkPotion();
loot();
specialAttack();
if(selectedRev.contains("knight")){
kiteTheKnight();
} else {
fightrev(config);
}
specialAttack();
loot();
}
}
if(!areWeEquipped()||isItTimeToGo()){
Bankfortrip();
}
long endTime = System.currentTimeMillis();
long totalTime = endTime - startTime;
System.out.println("Total time for loop " + totalTime);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}, 0, randomdelay, TimeUnit.MILLISECONDS);
return true;
}
@Override
public void shutdown() {
super.shutdown();
}
public void EatFood(){
drinkStamPotion();
if(Rs2Player.getHealthPercentage() <= generateRandomNumber(70,80)){
if(Rs2Inventory.contains(ItemID.SHARK)){
if(Rs2Inventory.interact(ItemID.SHARK, "Eat")){
sleepUntil(()-> isPkerAround(),generateRandomNumber(2500,3500));
}
}
}
}
public boolean playerCheck(){
List<Rs2PlayerModel> playerlist = new ArrayList<Rs2PlayerModel>();
playerlist.addAll(Rs2Player.getPlayers(it->it!=null&&it.getWorldLocation().distanceTo(Rs2Player.getWorldLocation())<= 8&&!it.equals(Rs2Player.getLocalPlayer())).collect(Collectors.toList()));
if(!playerlist.isEmpty()){
if(!Rs2Player.isInCombat()) {
Microbot.log("There's another player here hopping.");
hopToNewWorld();
}
return true;
}
return false;
}
public boolean weAreInCombat(){
if(Rs2Player.isAnimating()){
return true;
}
if(!Rs2Player.isAnimating()){
Microbot.log("Checking if we're in combat");
sleepUntil(()-> Rs2Player.isAnimating()||isPkerAround(), generateRandomNumber(2000,2300));
if(Rs2Player.isAnimating()){
return true;
}
}
return false;
}
public void kiteTheKnight(){
WorldPoint startTile = new WorldPoint(3237,10225,0);
WorldPoint secondTile = new WorldPoint(3244,10225,0);
WorldPoint thirdTile = new WorldPoint(3242,10225,0);
WorldPoint fourthTile = new WorldPoint(3244,10222,0);
WorldPoint fifthTile = new WorldPoint(3248,10225,0);
WorldPoint jammedTile = new WorldPoint(3244,10224,0);
Rs2Walker.setTarget(null);
if(shouldFlee){
return;
}
if(Rs2Player.getWorldLocation().equals(fifthTile)){
if(weAreInCombat()) {
Microbot.log("We've all ready jammed the knight");
return;
} else {
Microbot.log("We need to click the rev.");
if(Rs2Npc.getNpc("Revenant knight")!=null && Rs2Npc.getNpc("Revenant knight").getWorldLocation().distanceTo(jammedTile)<=2) {
if (Rs2Npc.interact(Rs2Npc.getNpc("Revenant knight"), "Attack")) {
Microbot.log("We attacked the knight");
return;
}
} else {
Microbot.log("We need to re-jam the knight");
}
}
} else {
//if we come back from the bank and the rev is all ready jammed.
if(Rs2Npc.getNpc("Revenant knight")!=null && Rs2Npc.getNpc("Revenant knight").getWorldLocation().distanceTo(jammedTile)<=2){
if(!weAreInCombat()){
if(playerCheck()){return;}
if(!Rs2Player.getWorldLocation().equals(fifthTile)){
Rs2Walker.walkCanvas(fifthTile);
sleepUntil(() -> Rs2Player.isMoving(), Rs2Random.between(1000, 3000));
sleepUntil(() -> !Rs2Player.isMoving(), Rs2Random.between(2000, 3000));
}
if (Rs2Npc.interact(Rs2Npc.getNpc("Revenant knight"), "Attack")) {
Microbot.log("We attacked the knight");
return;
}
}
}
}
if(playerCheck()){return;}
if(Rs2GroundItem.isItemBasedOnValueOnGround(500,10)){
return;
}
if(!areWeEquipped()||isItTimeToGo()){
return;
}
if(!Rs2Player.getWorldLocation().equals(startTile)){
while(!Rs2Player.getWorldLocation().equals(startTile)){
if(!super.isRunning()){break;}
if(isPkerAround()){break;}
if(!WeAreInTheCaves()){break;}
if(!Microbot.isLoggedIn()){return;}
moveCameraToTile(startTile);
Rs2Walker.walkCanvas(startTile);
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(1000,3000));
sleepUntil(()-> !Rs2Player.isMoving()||Rs2Player.getWorldLocation().equals(startTile), Rs2Random.between(3000,6000));
}
}
if(Rs2Player.getWorldLocation().equals(startTile)){
if(playerCheck()){return;}
if(Rs2Npc.getNpc("Revenant knight") == null) return;
if(Rs2Npc.attack("Revenant knight")){
Microbot.log("We attacked the knight");
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(1000,3000));
sleepUntil(()-> !Rs2Player.isMoving(), Rs2Random.between(2000,3000));
}
}
if(!Rs2Player.getWorldLocation().equals(secondTile)){
while(!Rs2Player.getWorldLocation().equals(secondTile)){
if(!super.isRunning()){break;}
if(isPkerAround()){break;}
if(!WeAreInTheCaves()){break;}
if(!Microbot.isLoggedIn()){return;}
moveCameraToTile(secondTile);
Rs2Walker.walkCanvas(secondTile);
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(1000,3000));
sleepUntil(()-> !Rs2Player.isMoving()||Rs2Player.getWorldLocation().equals(secondTile), Rs2Random.between(3000,6000));
}
}
if(Rs2Player.getWorldLocation().equals(secondTile)){
if(Rs2Npc.getNpc("Revenant knight")!=null){
if(!Rs2Npc.getNpc("Revenant knight").getWorldLocation().equals(thirdTile)){
int io = 0;
int tries = Rs2Random.between(40,80);
while(!Rs2Npc.getNpc("Revenant knight").getWorldLocation().equals(thirdTile)){
if(!super.isRunning()){break;}
if(isPkerAround()){break;}
if(!WeAreInTheCaves()){break;}
if(io > tries){break;}
if(!Microbot.isLoggedIn()){return;}
if(Rs2Npc.getNpc("Revenant knight").getWorldLocation().distanceTo(Rs2Player.getWorldLocation())<=1 && !Rs2Npc.getNpc("Revenant knight").getWorldLocation().equals(thirdTile)){
Microbot.log("Rev is on a bad tile breaking loop");
return;
}
if(!Rs2Player.getWorldLocation().equals(secondTile)){
moveCameraToTile(secondTile);
Rs2Walker.walkCanvas(secondTile);
sleepUntil(()-> Rs2Player.getWorldLocation().equals(secondTile), Rs2Random.between(3000,6000));
}
sleepUntil(()-> Rs2Npc.getNpc("Revenant knight").getWorldLocation().equals(thirdTile), Rs2Random.between(250,500));
io++;
}
}
}
}
if(Rs2Npc.getNpc("Revenant knight").getWorldLocation().equals(thirdTile)){
moveCameraToTile(fourthTile);
Rs2Walker.walkCanvas(fourthTile);
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(1000,3000));
sleepUntil(()-> !Rs2Player.isMoving(), Rs2Random.between(2000,3000));
if(!Rs2Player.getWorldLocation().equals(fifthTile)){
while(!Rs2Player.getWorldLocation().equals(fifthTile)) {
if(!super.isRunning()){break;}
if(isPkerAround()){break;}
if(!WeAreInTheCaves()){break;}
if(!Microbot.isLoggedIn()){return;}
moveCameraToTile(fifthTile);
Rs2Walker.walkCanvas(fifthTile);
sleepUntil(() -> Rs2Player.isMoving(), Rs2Random.between(1000, 3000));
sleepUntil(() -> !Rs2Player.isMoving(), Rs2Random.between(2000, 3000));
}
}
}
if(Rs2Player.getWorldLocation().equals(fifthTile)) {
if (Rs2Npc.attack("Revenant knight")) {
Microbot.log("We attacked the knight");
Microbot.log("Rev should be locked");
}
}
}
public void moveCameraToTile(WorldPoint wp){
LocalPoint lp = LocalPoint.fromWorld(Microbot.getClient().getWorldView(Microbot.getClient().getTopLevelWorldView().getId()), wp);
Rectangle chatBox = null;
Point canvasPoint = null;
if(lp != null) {
canvasPoint = Perspective.localToCanvas(Microbot.getClient(), lp, wp.getPlane());
if(canvasPoint != null) {
chatBox = Rs2Widget.getWidget(162,0).getBounds();
}
}
if(canvasPoint != null && chatBox != null) {
if (!Rs2Camera.isTileOnScreen(lp) || chatBox.contains(canvasPoint.getX(), canvasPoint.getY())) {
Rs2Camera.turnTo(lp);
sleep(0, 250);
}
}
}
public boolean WeAreInTheCaves(){
return Rs2Player.getWorldLocation().getY() > 9000;
}
public boolean timeToBreak(){
return BreakHandlerScript.breakIn <= 300 && BreakHandlerScript.breakIn != -1;
}
public void handleBreaks() {
if (timeToBreak()) {
if(Rs2Bank.isOpen()){
if(Rs2Bank.closeBank()){
sleepUntil(()-> !Rs2Bank.isOpen(), generateRandomNumber(2000,5000));
}
}
if(!Rs2Bank.isOpen()) {
sleepUntil(() -> BreakHandlerScript.isBreakActive(), 600000);
}
}
}
public void stopTeleSpam(){
if(BankLocation.EDGEVILLE.getWorldPoint().distanceTo(Rs2Player.getWorldLocation()) < 30){
teleToFerox();
}
}
public void openBankCheck(){
if(Rs2Bank.isOpen()){
if(Rs2Bank.closeBank()){
sleepUntil(()-> Rs2Bank.isOpen(), Rs2Random.between(2000,4000));
}
}
}
public void WalkToRevs(){
if(!WeAreInTheCaves()){
//we must walk to the cave entrence
if(Rs2Player.getWorldLocation().distanceTo(cave) > 6){
reJfount();
stopTeleSpam();
if(selectedRev.contains("knight")){
openBankCheck();
if(Rs2Walker.walkTo(selectedWP)){
Microbot.log("Teleporting to level 40 rev cave.");
}
} else {
if(Rs2Walker.walkTo(cave)){
Microbot.log("Walking to cave. with new method.");
}
}
} else {
if(!Rs2Dialogue.isInDialogue()){
Microbot.log("At the cave, clicking.");
if(Rs2GameObject.interact(31555, "Enter")){
sleepUntil(()-> Rs2Dialogue.isInDialogue(), generateRandomNumber(1000,3000));
}
}
if(Rs2Dialogue.isInDialogue()){
if(Rs2Dialogue.hasContinue()){
Rs2Dialogue.clickContinue();
sleep(500,1000);
}
if(Rs2Dialogue.getDialogueOption("Yes, don't", false)!=null){
Rs2Dialogue.clickOption("Yes, don't", false);
sleep(500,1000);
}
if(Rs2Dialogue.getDialogueOption("Accept", false)!=null){
Rs2Dialogue.clickOption("Accept", false);
sleep(500,1000);
}
}
}
} else {
if(WeAreInTheCaves()){
if(Rs2Walker.walkTo(selectedWP)){
Microbot.log("Walking to Revs. with new method.");
}
}
}
}
public boolean TeleTimerIsThere(){
if(!Rs2Widget.isWidgetVisible(162, 558)){
return true;
}
return false;
}
public void hopWorldsBasedOnTimer(){
if(useTimedWorldHopper) {
long currentTime = System.currentTimeMillis();
if (currentTime - startTime >= howLongUntilHop * 60 * 1000) {
Microbot.log("Hopping to a new world, it's been "+howLongUntilHop+" minutes");
if(Rs2Player.isInCombat()){
sleepUntil(()-> isPkerAround() || !Rs2Player.isInCombat(), generateRandomNumber(10000,20000));
if(isPkerAround()){
return;
}
}
hopToNewWorld();
startTime = currentTime;
howLongUntilHop = config.hopInMinutes();
int mixUp = Rs2Random.between(5,10);
int io = 0;
while (io < mixUp){
if(!super.isRunning()){
break;
}
if(Rs2Random.between(0,100) < 50) {
if (howLongUntilHop > 8 * 60 * 1000) {
howLongUntilHop -= 2 * 60 * 1000;
}
}
if(Rs2Random.between(0,100) < 50) {
if (howLongUntilHop < 30 * 60 * 1000) {
howLongUntilHop += 2 * 60 * 1000;
}
}
if(howLongUntilHop < 8 || howLongUntilHop > 30){
howLongUntilHop = config.hopInMinutes();
}
io++;
}
Microbot.log("We'll hop to a new world in "+howLongUntilHop+" minutes");
}
}
}
public void getAwayFromPkerKnight(){
Microbot.log("Attempting to logout");
Rs2Walker.setTarget(null);
int io = 0;
int tries = 10;
if (Microbot.isLoggedIn()) {
while (Microbot.isLoggedIn()) {
if (!super.isRunning()) {
break;
}
if (!Microbot.isLoggedIn()) {
break;
}
Rs2Player.logout();
sleepUntil(() -> !Microbot.isLoggedIn() || Rs2Player.isInCombat(), Rs2Random.between(1500, 3000));
if(Rs2Player.isInCombat() && Microbot.isLoggedIn() || io>=tries){
Microbot.log("We can't log out, running away instead.");
break;
}
io++;
}
}
if (!Microbot.isLoggedIn()) {
logBackIn();
shouldFlee = false;
return;
}
if (isPkerAround() && Microbot.isLoggedIn()) {
getAwayFromPker();
shouldFlee = false;
return;
}
shouldFlee = false;
Rs2Walker.setTarget(null);
}
public void logBackIn(){
if (!Microbot.isLoggedIn()) {
while (!Microbot.isLoggedIn()) {
if (!super.isRunning()) {
break;
}
if (Microbot.isLoggedIn()) {
break;
}
sleep(1000, 3000);
if (!Microbot.isLoggedIn()) {
new Login(Login.getRandomWorld(true));
sleepUntil(() -> Microbot.isLoggedIn(), Rs2Random.between(10000, 20000));
}
}
shouldFlee = false;
}
}
public void getAwayFromPker(){
// code to run or teleport from pker
Microbot.log("Attemping to get away from the PKer.");
//kill the walker incase we were walking.
Rs2Walker.setTarget(null);
if(!Rs2Player.isTeleBlocked()){
Microbot.log("At least we're not teleblocked.");
enablePrayer();
if(Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) > 30) {
while (Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) > 30) {
if (!super.isRunning()) break;
if(!shouldFlee) break;
if(weDied){
shouldFlee = false;
return;
}
Microbot.log("Walking to below");
WorldPoint safe1 = (new WorldPoint(3199, 10071, 0));
WorldPoint safe2 = (new WorldPoint(3226, 10067, 0));
if(Rs2Player.getWorldLocation().distanceTo(safe1) <= Rs2Player.getWorldLocation().distanceTo(safe2)){
Rs2Walker.walkTo(safe1, Rs2Player.getWorldLocation().distanceTo(safe1) - (generateRandomNumber(2,5)));
}
if(Rs2Player.getWorldLocation().distanceTo(safe1) > Rs2Player.getWorldLocation().distanceTo(safe2)){
Rs2Walker.walkTo(safe2, Rs2Player.getWorldLocation().distanceTo(safe2) - (generateRandomNumber(2,5)));
}
if (Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) <= 30) {
break;
}
}
}
if(Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) >= 20 && Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) <= 30) {
while (Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) >= 20 && Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) <= 30) {
Microbot.log("Attempting to teleport via glory");
if (!super.isRunning()) break;
if(!shouldFlee) break;
if(weDied){
shouldFlee = false;
return;
}
if (Rs2Equipment.interact(EquipmentInventorySlot.AMULET, "Edgeville")) {
sleepUntil(()-> TeleTimerIsThere() || Rs2Player.getAnimation() == 714,generateRandomNumber(250,500));
sleepUntil(()-> !TeleTimerIsThere() || Rs2Player.getAnimation() == 714,generateRandomNumber(1300,1500));
if(Rs2Player.getAnimation() == 714){
//we successfully teleported out
sleepUntil(()-> !Rs2Player.isAnimating() && !WeAreInTheCaves(),generateRandomNumber(4000,6000));
}
}
if (!WeAreInTheCaves()) {
sleep(10000,15000);
hopToNewWorld();
break;
}
if (Rs2Player.isTeleBlocked()) {
break;
}
}
Rs2Prayer.disableAllPrayers();
shouldFlee = false;
return;
}
if(Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) <= 20) {
while (Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) <= 20) {
Microbot.log("Attempting to teleport via dueling");
if (!super.isRunning()) break;
if(weDied){
shouldFlee = false;
return;
}
if(!shouldFlee) break;
if (Rs2Equipment.interact(EquipmentInventorySlot.RING, "Ferox Enclave")) {
sleepUntil(()-> TeleTimerIsThere() || Rs2Player.getAnimation() == 714,generateRandomNumber(250,500));
sleepUntil(()-> !TeleTimerIsThere() || Rs2Player.getAnimation() == 714,generateRandomNumber(1300,1500));
if(Rs2Player.getAnimation() == 714){
//we successfully teleported out
sleepUntil(()-> !Rs2Player.isAnimating() && !WeAreInTheCaves(),generateRandomNumber(4000,6000));
}
}
if (!WeAreInTheCaves()) {
sleep(10000,15000);
hopToNewWorld();
break;
}
if (Rs2Player.isTeleBlocked()) {
break;
}
}
}
Rs2Prayer.disableAllPrayers();
shouldFlee = false;
} else {
Microbot.log("We're teleblocked! Attempting to run to the bank");
enablePrayer();
Rs2Walker.walkTo(BankLocation.FEROX_ENCLAVE.getWorldPoint());
Rs2Prayer.disableAllPrayers();
shouldFlee = false;
Rs2Walker.setTarget(null);
}
}
public void enablePrayer(){
if(!Rs2Prayer.isPrayerActive(Rs2PrayerEnum.PROTECT_MAGIC)) {
if (Rs2Player.getRealSkillLevel(Skill.PRAYER) >= 37) {
if (Rs2Player.getBoostedSkillLevel(Skill.PRAYER) > 0) {
Rs2Prayer.toggle(Rs2PrayerEnum.PROTECT_MAGIC);
}
}
}
}
public void fightrev(revKillerConfig config){
Rs2NpcModel Rev = (Rs2Npc.getNpc(config.selectedRev().getName()));
if(Rev!=null){
if(playerCheck()){return;}
if(!Rev.isInteracting() && !Rs2Player.isInteracting() && !Rev.isDead()) {
if(useTimedWorldHopper){
hopWorldsBasedOnTimer();
}
if(Rev==null){return;}
Microbot.log("Attacking Rev");
if (Rs2Npc.interact(Rev, "Attack")) {
sleepUntil(() -> Rev.isDead() || !Rs2Player.isInCombat() || Rs2GroundItem.isItemBasedOnValueOnGround(500,12) || isItTimeToGo() || Rs2Player.getHealthPercentage() <= generateRandomNumber(70, 80), generateRandomNumber(60000, 120000));
hoppedWorld=false;
}
}
if(Rev.isInteracting()) {
if(hoppedWorld) {
Microbot.log("Rev is attacking us attacking back.");
if (Rs2Npc.interact(Rev, "Attack")) {
hoppedWorld=false;
sleepUntil(() -> Rev.isDead() || !Rs2Player.isInCombat() || Rs2GroundItem.isItemBasedOnValueOnGround(500, 12) || isItTimeToGo() || Rs2Player.getHealthPercentage() <= generateRandomNumber(70, 80), generateRandomNumber(60000, 120000));
}
}
}
} else {
if(selectedRev.equals("Revenant goblin") || selectedRev.contains("imp")){
if(selectedRev.contains("goblin")){
selectedWP = new WorldPoint(3199, 10071, 0);
selectedRev = "Revenant imp";
return;
}
if(selectedRev.contains("imp")){
selectedWP = new WorldPoint(3226, 10067, 0);
selectedRev = "Revenant goblin";
return;
}
}
if(!Rs2Player.isInCombat()) {
Microbot.log("No revs found, hopping");
sleepUntil(()-> isPkerAround(), generateRandomNumber(0,1200));
hopToNewWorld();
}
}
}
public void startHealthCheck() {
Microbot.log("Health detection started");
healthCheckFuture = scheduledExecutorService.scheduleWithFixedDelay(
this::futureEatFood,
0,
1000,
TimeUnit.MILLISECONDS
);
}
public void futureEatFood(){
if(!Microbot.isLoggedIn()){
return;
}
EatFood();
}
public void startPkerDetection() {
Microbot.log("PKer detection started");
checkForPKerFuture = scheduledExecutorService.scheduleWithFixedDelay(
this::futurePKCheck,
0,
250,
TimeUnit.MILLISECONDS
);
}
public void stopFutures() {
if(checkForPKerFuture!=null){
checkForPKerFuture.cancel(true);
}
if(healthCheckFuture!=null) {
healthCheckFuture.cancel(true);
}
}
public void futurePKCheck(){
try {
if(!selectedRev.contains("knight")) {
if (isPkerAround() && !shouldFlee) {
shouldFlee = true;
getAwayFromPker();
}
} else {
if (isPkerAround() && !shouldFlee) {
shouldFlee = true;
getAwayFromPkerKnight();
}
}
} catch (Exception e) {
Microbot.log("Error during PK check: " + e.getMessage());
e.printStackTrace();
}
}
public void reJfount(){
int rejat = Rs2Random.between(10,30);
int runener = Rs2Random.between(50,65);
while(Rs2Player.getBoostedSkillLevel(Skill.PRAYER) < rejat || Rs2Player.getRunEnergy() <= runener){
if (!super.isRunning()) {
break;
}
if(Rs2Bank.isOpen()){
if(Rs2Bank.closeBank()){
sleepUntil(()-> !Rs2Bank.isOpen(), Rs2Random.between(2000,4000));
}
} else {
GameObject rej = Rs2GameObject.get("Pool of Refreshment", true);
if(rej == null){
return;
}
Microbot.log("Drinking");
if(Rs2GameObject.interact(rej, "Drink")){
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(1000,3000));
sleepUntil(()-> !Rs2Player.isMoving(), Rs2Random.between(5000,10000));
sleepUntil(()-> Rs2Player.isAnimating(), Rs2Random.between(1000,4000));
sleepUntil(()-> !Rs2Player.isAnimating(), Rs2Random.between(1000,4000));
}
}
if(Rs2Player.getRealSkillLevel(Skill.PRAYER) <= rejat){
break;
}
if(Rs2Player.getBoostedSkillLevel(Skill.PRAYER) >= rejat || Rs2Player.getRunEnergy() >= runener){
break;
}
}
}
public void hopToNewWorld(){
// Thank you george!
World currentWorld = Microbot.getWorldService().getWorlds().findWorld(Microbot.getClient().getWorld());
if(currentWorld == null){
Microbot.log("Couldn't find our world");
return;
}
int newRandomWorld = Login.getRandomWorld(true, currentWorld.getRegion());
if(newRandomWorld == 0){
Microbot.log("Couldn't find a new random world");
return;
}
Microbot.log("We're going to world " + newRandomWorld);
int attempts = 0;
int tries = generateRandomNumber(2,6);
while(Rs2Player.getWorld() != newRandomWorld){
if (!super.isRunning()) {
break;
}
if(Microbot.hopToWorld(newRandomWorld)){
sleepUntil(() -> !Microbot.isHopping() || isPkerAround() || Rs2Player.getWorld() == newRandomWorld, generateRandomNumber(5000, 10000));
}
if(Rs2Player.getWorld() == newRandomWorld){
break;
}
if(attempts>=tries){
break;
}
sleep(500,700);
attempts++;
}
hoppedWorld = true;
}
public void equipArrows(){
if(Rs2Inventory.contains(selectedArrow)){
if(Rs2Inventory.interact(selectedArrow, "Wield")){
sleepUntil(()-> !Rs2Inventory.contains(selectedArrow), generateRandomNumber(5000,15000));
}
}
}
public void specialAttack(){
if(50>generateRandomNumber(0,100)) {
if (Rs2Combat.getSpecEnergy() >= generateRandomNumber(600,1000)) {
if(!Rs2Combat.getSpecState()) {
if (Rs2Combat.setSpecState(true)) {
sleepUntil(() -> isPkerAround(), generateRandomNumber(350, 600));
}
}
}
}
}
public void drinkPotion(){
if(!Rs2Player.hasRangingPotionActive(potthresh)){
Microbot.log("Drinking ranging potion");
if(potsUntilSwap>=generateRandomNumber(2,10)){
potthresh = generateRandomNumber(3,6);
potsUntilSwap=0;
}
if(Rs2Inventory.get(it->it!=null&&it.getName().contains("Ranging"))!=null){
if(Rs2Inventory.interact(Rs2Inventory.get(it->it!=null&&it.getName().contains("Ranging")),"Drink")){
sleepUntil(()-> isPkerAround(), generateRandomNumber(2500,3500));
potsUntilSwap++;
}
}
}
}
public void drinkStamPotion(){
if(!Rs2Player.hasStaminaActive()){
if(Rs2Player.getRunEnergy() <= generateRandomNumber(20,40)) {
Microbot.log("Drinking stamina potion");
if (Rs2Inventory.get(it -> it != null && it.getName().contains("Stamina")) != null) {
if (Rs2Inventory.interact(Rs2Inventory.get(it -> it != null && it.getName().contains("Stamina")), "Drink")) {
sleepUntil(() -> Rs2Player.hasStaminaActive(), generateRandomNumber(500, 1000));
}
}
}
}
}
public void loot(){
if(Rs2GroundItem.isItemBasedOnValueOnGround(500,10)){
while(Rs2GroundItem.isItemBasedOnValueOnGround(500,10)){
if(!super.isRunning()){
break;
}
if(Rs2Inventory.isFull()){
if(Rs2Inventory.contains(ItemID.SHARK)){
if(Rs2Inventory.interact(ItemID.SHARK, "Eat")){
sleepUntil(()-> !Rs2Player.isAnimating(),generateRandomNumber(2000,3500));
}
} else {
break;
}
}
String[] arr1={"Rune arrow","Amethyst arrow"};
//Rs2GroundItem.lootItemBasedOnValue(new LootingParameters(500,50000000, 10,1,1,false,false))
if(Rs2GroundItem.lootItemBasedOnValue(new LootingParameters(500,50000000,10,1,1,false,false,arr1))){
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(750,1500));
if(Rs2Player.isMoving()){
sleepUntil(()-> !Rs2Player.isMoving(), Rs2Random.between(3000,6000));
}
} else {
break;
}
}
}
}
public void OpenTheInv(){
if(!Rs2Inventory.isOpen()) {
if (!Rs2Bank.isOpen()) {
if(Rs2Inventory.open()){
sleepUntil(()-> Rs2Inventory.isOpen(), generateRandomNumber(500,1000));
}
}
}
}
public void stuckAtEnclave(){
WorldPoint stuckSpot = new WorldPoint(3124,3636,0);
if(Rs2Player.getWorldLocation().equals(stuckSpot)){
Microbot.log("We're stuck outside of the enclave");
if(Rs2GameObject.exists(39653)){
if(Rs2GameObject.interact(39653, "Pass-Through")){
sleepUntil(()-> Rs2Player.isMoving(), Rs2Random.between(2000,4000));
sleepUntil(()-> !Rs2Player.isMoving(), Rs2Random.between(4000,8000));
}
}
}
}
private void teleToFerox(){
if (Rs2Equipment.interact(EquipmentInventorySlot.RING, "Ferox Enclave")) {
sleepUntil(()-> Rs2Player.isAnimating(), generateRandomNumber(2000,4000));
sleepUntil(()-> !Rs2Player.isAnimating(), generateRandomNumber(6000,10000));
Microbot.log("Teleing");
}
}
public void Bankfortrip(){
if(weDied) return;
if(!Rs2Bank.isOpen()){
if(WeAreInTheCaves()){
Microbot.log("Teleing to bank");
WorldPoint safe1 = (new WorldPoint(3199, 10071, 0));
WorldPoint safe2 = (new WorldPoint(3226, 10067, 0));
if(Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) > 20){
if(Rs2Player.getWorldLocation().distanceTo(safe1) <= Rs2Player.getWorldLocation().distanceTo(safe2)){
Rs2Walker.walkTo(safe1, Rs2Player.getWorldLocation().distanceTo(safe1) - (generateRandomNumber(2,5)));
} else {
Rs2Walker.walkTo(safe2, Rs2Player.getWorldLocation().distanceTo(safe2) - (generateRandomNumber(2,5)));
}
}
if(Rs2Pvp.getWildernessLevelFrom(Rs2Player.getWorldLocation()) <= 20) {
teleToFerox();
}
}
if(!WeAreInTheCaves()) {
Microbot.log("Walking and using bank");
OpenTheInv();
stuckAtEnclave();
stopTeleSpam();
Rs2Bank.walkToBankAndUseBank(BankLocation.FEROX_ENCLAVE);
}
} else {
// Bank is open - do ALL steps, no random skipping
shouldFlee = false;
handleBreaks();
// Step 1: Deposit loot if we have any
if(isItTimeToGo() || weHaveLoot()){
Microbot.log("Depositing all loot");
Rs2Bank.depositAll();
sleepUntil(()-> Rs2Inventory.isEmpty(), 5000);
}
// Step 2: Ring of dueling
if(Rs2Equipment.get(EquipmentInventorySlot.RING) == null ||
!Rs2Equipment.get(EquipmentInventorySlot.RING).getName().contains("dueling")){
Microbot.log("Getting ring of dueling");
if(Rs2Bank.count(ItemID.RING_OF_DUELING8) > 0){
Rs2Bank.withdrawOne(ItemID.RING_OF_DUELING8);
sleepUntil(()-> Rs2Inventory.contains(ItemID.RING_OF_DUELING8), 3000);
if(Rs2Inventory.contains(ItemID.RING_OF_DUELING8)){
Rs2Inventory.interact(ItemID.RING_OF_DUELING8, "Wear");
sleepUntil(()-> Rs2Equipment.get(EquipmentInventorySlot.RING) != null, 3000);
}
} else {
Microbot.log("Out of rings of dueling!");
super.shutdown();
return;
}
}
// Step 3: Amulet of glory
if(Rs2Equipment.get(EquipmentInventorySlot.AMULET) == null ||
!Rs2Equipment.get(EquipmentInventorySlot.AMULET).getName().contains("Amulet of glory(")){
Microbot.log("Getting amulet of glory");
// Deposit empty glory first
if(Rs2Inventory.contains(ItemID.AMULET_OF_GLORY)){
Rs2Bank.depositOne(ItemID.AMULET_OF_GLORY);
sleep(300, 600);
}
if(Rs2Bank.hasItem("Amulet of glory(6)") || Rs2Bank.hasItem("Amulet of glory(5)") ||
Rs2Bank.hasItem("Amulet of glory(4)") || Rs2Bank.hasItem("Amulet of glory(3)")){
if(Rs2Bank.hasItem("Amulet of glory(6)")){
Rs2Bank.withdrawOne("Amulet of glory(6)");
} else if(Rs2Bank.hasItem("Amulet of glory(5)")){
Rs2Bank.withdrawOne("Amulet of glory(5)");
} else if(Rs2Bank.hasItem("Amulet of glory(4)")){
Rs2Bank.withdrawOne("Amulet of glory(4)");
} else if(Rs2Bank.hasItem("Amulet of glory(3)")){
Rs2Bank.withdrawOne("Amulet of glory(3)");
}
sleepUntil(()-> Rs2Inventory.contains("Amulet of glory"), 3000);
if(Rs2Inventory.contains("Amulet of glory")){
Rs2Inventory.interact("Amulet of glory", "Wear");
sleepUntil(()-> Rs2Equipment.get(EquipmentInventorySlot.AMULET) != null, 3000);
}
}
} else {
Microbot.log("Out of amulets of glory!");
super.shutdown();
return;
}
}
// Step 4: Bracelet of ethereum
if(Rs2Equipment.get(EquipmentInventorySlot.GLOVES) != null &&
Rs2Equipment.get(EquipmentInventorySlot.GLOVES).getId() == ItemID.BRACELET_OF_ETHEREUM_UNCHARGED){
Microbot.log("Recharging bracelet");
if(Rs2Bank.count("Revenant ether") >= 100){
Rs2Bank.withdrawX("Revenant ether", Rs2Random.between(150, 250));
sleepUntil(()-> Rs2Inventory.contains("Revenant ether"), 3000);
if(Rs2Inventory.contains("Revenant ether")){
Rs2Bank.closeBank();
sleepUntil(()-> !Rs2Bank.isOpen(), 2000);
Rs2Equipment.unEquip(EquipmentInventorySlot.GLOVES);
sleep(600, 1000);
Rs2Inventory.combine(ItemID.REVENANT_ETHER, ItemID.BRACELET_OF_ETHEREUM_UNCHARGED);
sleepUntil(()-> !Rs2Inventory.contains("Revenant ether"), 3000);
Rs2Inventory.interact(ItemID.BRACELET_OF_ETHEREUM, "Wear");
sleep(600, 1000);
Rs2Bank.openBank();
sleepUntil(()-> Rs2Bank.isOpen(), 5000);
}
} else {
Microbot.log("Out of ether!");
super.shutdown();
return;
}
}
// Step 5: Ammo
if(Rs2Equipment.get(EquipmentInventorySlot.AMMO) == null ||
Rs2Equipment.get(EquipmentInventorySlot.AMMO).getQuantity() < LowOnArrowsCount){
Microbot.log("Getting ammo");
if(Rs2Bank.count(selectedArrow) > 100){
int min = 250, max = 300;
if(selectedArrow == ItemID.BOLT_RACK){
min = 600; max = 700;
if(Rs2Equipment.get(EquipmentInventorySlot.WEAPON) != null &&
Rs2Equipment.get(EquipmentInventorySlot.WEAPON).getId() == ItemID.KARILS_CROSSBOW_25){
Microbot.log("Karil's crossbow is degraded!");
super.shutdown();
return;
}
}
Rs2Bank.withdrawX(selectedArrow, generateRandomNumber(min, max));
sleepUntil(()-> Rs2Inventory.contains(selectedArrow), 3000);
if(Rs2Inventory.contains(selectedArrow)){
Rs2Inventory.interact(selectedArrow, "Wield");
sleepUntil(()-> !Rs2Inventory.contains(selectedArrow), 3000);
}
} else {
Microbot.log("Out of arrows!");
super.shutdown();
return;
}
}
// Step 6: Rev cave teleports (for knight)
if(selectedRev.contains("knight") && !Rs2Inventory.contains("Revenant cave teleport")){
Microbot.log("Getting rev cave teleports");
if(Rs2Bank.count("Revenant cave teleport") >= 5){
Rs2Bank.withdrawX("Revenant cave teleport", Rs2Random.between(2, 5));
sleepUntil(()-> Rs2Inventory.contains("Revenant cave teleport"), 3000);
} else {
Microbot.log("Need at least 5 rev cave teleports!");
super.shutdown();
return;
}
}
// Step 7: Stamina potion
if(Rs2Bank.hasItem("Stamina potion(4)") || Rs2Bank.hasItem("Stamina potion(3)") || Rs2Bank.hasItem("Stamina potion(2)")){
if(Rs2Bank.hasItem("Stamina potion(4)")){
Rs2Bank.withdrawOne("Stamina potion(4)");
} else if(Rs2Bank.hasItem("Stamina potion(3)")){
Rs2Bank.withdrawOne("Stamina potion(3)");
} else if(Rs2Bank.hasItem("Stamina potion(2)")){
Rs2Bank.withdrawOne("Stamina potion(2)");
} else {
Microbot.log("Out of stamina potions!");
super.shutdown();
return;
}
}
// Step 8: Ranging potions
if(!Rs2Inventory.contains(it->it!=null&&it.getName().contains("Ranging"))){
Microbot.log("Getting ranging potions");
if(Rs2Bank.count("Ranging potion(4)") > 0){
Rs2Bank.withdrawX("Ranging potion(4)", 2);
sleepUntil(()-> Rs2Inventory.contains(it->it!=null&&it.getName().contains("Ranging")), 3000);
} else {
Microbot.log("Out of ranging potions!");
super.shutdown();
return;
}
}
// Step 9: Sharks
int currentSharks = Rs2Inventory.count(ItemID.SHARK);
if(currentSharks < 10){
Microbot.log("Getting sharks");
if(Rs2Bank.count(ItemID.SHARK) >= (10 - currentSharks)){
Rs2Bank.withdrawX(ItemID.SHARK, 10 - currentSharks);
sleepUntil(()-> Rs2Inventory.count(ItemID.SHARK) >= 10, 3000);
} else {
Microbot.log("Out of sharks!");
super.shutdown();
return;
}
}
// Done banking, close
if(Rs2Bank.isOpen()){
Rs2Bank.closeBank();
sleepUntil(()-> !Rs2Bank.isOpen(), 2000);
}
}
public int generateRandomNumber(int min, int max) {
return Rs2Random.nextInt(min, max, 1000, true);
}
private boolean weHaveLoot(){
if(Rs2Inventory.contains(it->it!=null&&it.getName().contains("Blighted"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("rune"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("seed"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("dragon"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("logs"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("bar"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("runite"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("bolt tips"))){
return true;
}
if(Rs2Inventory.contains(it->it!=null&&it.getName().toLowerCase().contains("battlestaff"))){
return true;
}
return false;
}
public boolean isItTimeToGo(){
int value = 0; //set to 0 so list doesn't compound with each run
List<Rs2ItemModel> ItemsInInventory = Rs2Inventory.items().collect(Collectors.toList());
int io = 0;
for (Rs2ItemModel item : ItemsInInventory) {
io++;
if(io > 50) break;
if(item!=null){
value+=item.getPrice();
}
}
if(value>=config.leaveAtValue()){
Microbot.log("We have enough loot");
return true;
}
if(Rs2Inventory.isFull()){
Microbot.log("We have enough loot");
return true;
}
if(timeToBreak()){
Microbot.log("It's time to break");
return true;
}
Microbot.log("We have "+value+" worth of loot");
return false;
}
public boolean areWeEquipped() {
if (Rs2Equipment.get(EquipmentInventorySlot.AMMO) == null) {
Microbot.log("We have no ammo!");
return false;
}
if (Rs2Equipment.get(EquipmentInventorySlot.AMMO).getQuantity() < LowOnArrowsCount) {
Microbot.log("We don't have enough ammo!");
return false;
}
if (!Rs2Inventory.contains(it -> it != null && it.getName().contains("Stamina"))) {
Microbot.log("We have no stam!");
return false;
}
if (!Rs2Inventory.contains(it -> it != null && it.getName().contains("Ranging"))) {
Microbot.log("We have no Ranging potion!");
return false;
}
if (!Rs2Inventory.contains(ItemID.SHARK)) {
Microbot.log("We're out of sharks!");
return false;
}
if (Rs2Inventory.count(ItemID.SHARK) < 2) {
Microbot.log("We have less than 2 sharks!");
return false;
}
if (Rs2Equipment.get(EquipmentInventorySlot.RING) == null) {
Microbot.log("ring is null");
return false;
}
if (!Rs2Equipment.get(EquipmentInventorySlot.RING).getName().contains("dueling")) {
Microbot.log("We don't have our ring of dueling");
return false;
}
if(timeToBreak()){
Microbot.log("It's time to break");
return false;
}
if (isItTimeToGo()) {
Microbot.log("We have too much loot! Banking");
return false;
}
if (Rs2Equipment.get(EquipmentInventorySlot.AMULET) == null) {
Microbot.log("amulet is null");
return false;
}
if (!Rs2Equipment.get(EquipmentInventorySlot.AMULET).getName().contains("Amulet of glory(")) {
Microbot.log("amulet is not charged");
return false;
}
if(Rs2Equipment.get(EquipmentInventorySlot.GLOVES)!=null) {
if (Rs2Equipment.get(EquipmentInventorySlot.GLOVES).getName().contains("ethereum")) {
if (Rs2Equipment.get(EquipmentInventorySlot.GLOVES).getId() == ItemID.BRACELET_OF_ETHEREUM_UNCHARGED) {
Microbot.log("Our bracelet doesn't have enough charges.");
return false;
}
}
}
Microbot.log("We're fully equipped and ready to go.");
return true;
}
public boolean isPkerAround(){
if(!Microbot.isLoggedIn()){
return false;
}
if(!Rs2Pvp.isInWilderness()){
return false;
}
if(Microbot.getClient().getLocalPlayer() == null){
return false;
}
List<Rs2PlayerModel> playerlist = new ArrayList<Rs2PlayerModel>();
playerlist.addAll(Rs2Player.getPlayersInCombatLevelRange());
if(playerlist.isEmpty()) return false;
List<String> weapons = Arrays.asList(
"staff", "shadow", "wand", "sceptre", "ballista", "eye of ayak",
"dragon dagger", "dragon claws", "burning claws", "dragon knife", "eclipse atlatl", "dark bow"
);
List<String> chestArmors = Arrays.asList(
"xerician", "mystic robe top", "infinity top", "enchanted top", "dagon'hai", "ahrim's robetop", "blue moon chestplate",
"ancestral robe top", "virtus robe top", "zamorak monk top", "ghostly robe", "elder chaos top"
);
for (Rs2PlayerModel player : playerlist) {
Microbot.log("There may be a pker around us "+player.getName());
String NameOfPlayersWeapon = "Unknown";
String nameOfPlayersChestPiece = "Unknown";
if(Rs2Player.getPlayerEquipmentNames(player).get(KitType.WEAPON) != null) {
NameOfPlayersWeapon = Rs2Player.getPlayerEquipmentNames(player).get(KitType.WEAPON);
}
if(Rs2Player.getPlayerEquipmentNames(player).get(KitType.TORSO) != null){
nameOfPlayersChestPiece = Rs2Player.getPlayerEquipmentNames(player).get(KitType.TORSO);
}
if(NameOfPlayersWeapon.equals("Unknown") && nameOfPlayersChestPiece.equals("Unknown")){
continue;
}
String lowercaseWeapon = NameOfPlayersWeapon.toLowerCase();
String lowercaseChestPiece = nameOfPlayersChestPiece.toLowerCase();
Microbot.log("They have a "+NameOfPlayersWeapon);
Microbot.log("They're wearing a' "+nameOfPlayersChestPiece);
for (String weapon : weapons) {
if (lowercaseWeapon.contains(weapon) || lowercaseWeapon.equals(weapon)) {
Microbot.log("This player is wielding a " + NameOfPlayersWeapon + " which is used to pk so we're outy.");
return true;
}
}
for (String chestArmor : chestArmors) {
if (lowercaseChestPiece.contains(chestArmor) || lowercaseChestPiece.equals(chestArmor)) {
Microbot.log("This player is wielding a " + nameOfPlayersChestPiece + " which is used to pk so we're outy.");
return true;
}
}
if ((player.getInteracting() != null) && (player.getInteracting().equals(Rs2Player.getLocalPlayer()))) {
Microbot.log(player.getName() + " is attacking us");
return true;
}
if((player.getInteracting() != null && player.getInteracting().getName() != null) && player.getInteracting().getName().equals(Rs2Player.getLocalPlayer().getName())){
Microbot.log(player.getName() + " is attacking us");
return true;
}
}
return false;
}
}