diff --git a/src/main/java/org/parabot/randoms/Core.java b/src/main/java/org/parabot/randoms/Core.java index 705c2c6..9571b7a 100755 --- a/src/main/java/org/parabot/randoms/Core.java +++ b/src/main/java/org/parabot/randoms/Core.java @@ -2,12 +2,11 @@ package org.parabot.randoms; import org.parabot.core.Context; import org.parabot.environment.randoms.Random; -import org.parabot.randoms.dreamscape.MacAddressAvoider; -import org.parabot.randoms.dreamscape.SerialBanAvoider; import org.parabot.randoms.elkoy.AntiDetector; import org.parabot.randoms.elkoy.LogoutDisabler; import org.parabot.randoms.elkoy.MouseOnScreen; import org.parabot.randoms.elkoy.QuestionSolver; +import org.parabot.randoms.locopk.MacAddressFix; import org.parabot.randoms.pkhonor.*; import java.util.ArrayList; @@ -26,10 +25,7 @@ public class Core { randoms.add(new MysteriousOldMan()); randoms.add(new BobsIsland()); randoms.add(new BanFile()); - - // Dreamscape - randoms.add(new SerialBanAvoider()); - randoms.add(new MacAddressAvoider()); + randoms.add(new CombatStone()); // Elkoy randoms.add(new QuestionSolver()); @@ -37,6 +33,9 @@ public class Core { randoms.add(new MouseOnScreen()); randoms.add(new AntiDetector()); + // LocoPK + randoms.add(new MacAddressFix()); + org.parabot.core.Core.verbose("Possible randoms:"); for (Random random : randoms) { if (random.getServer().equalsIgnoreCase(server)) { diff --git a/src/main/java/org/parabot/randoms/dreamscape/MacAddressAvoider.java b/src/main/java/org/parabot/randoms/dreamscape/MacAddressAvoider.java deleted file mode 100644 index 265131e..0000000 --- a/src/main/java/org/parabot/randoms/dreamscape/MacAddressAvoider.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.parabot.randoms.dreamscape; - -import org.parabot.core.Context; -import org.parabot.core.network.NetworkInterface; -import org.parabot.environment.randoms.RandomType; -import org.parabot.randoms.utils.Reflection; - -/** - * @author EmmaStone - */ -public class MacAddressAvoider implements org.parabot.environment.randoms.Random { - - private boolean done; - - @Override - public boolean activate() { - return !done; - } - - @Override - public void execute() { - byte[] mac = new byte[6]; - new java.util.Random().nextBytes(mac); - Reflection.workAroundStaticValues(Context.getInstance().getClient().getClass(), "MAC_ADDRESS", NetworkInterface.formatMac(mac)); - done = true; - } - - @Override - public String getName() { - return "Mac address avoider"; - } - - @Override - public String getServer() { - return "dreamscape"; - } - - @Override - public RandomType getRandomType() { - return RandomType.ON_SERVER_START; - } -} diff --git a/src/main/java/org/parabot/randoms/dreamscape/SerialBanAvoider.java b/src/main/java/org/parabot/randoms/dreamscape/SerialBanAvoider.java deleted file mode 100644 index 78b1c55..0000000 --- a/src/main/java/org/parabot/randoms/dreamscape/SerialBanAvoider.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.parabot.randoms.dreamscape; - -import org.parabot.core.Context; -import org.parabot.environment.randoms.Random; -import org.parabot.environment.randoms.RandomType; -import org.parabot.randoms.utils.Reflection; - -/** - * @author JKetelaar - */ -public class SerialBanAvoider implements Random { - - private static final String serialAddressField = "SERIAL_ADDRESS"; - private static final String serialAddressValue = "empty_or_unknown"; - - private boolean done; - - @Override - public boolean activate() { - return !done; - } - - @Override - public void execute() { - Reflection.workAroundStaticValues(Context.getInstance().getClient().getClass(), serialAddressField, serialAddressValue); - done = true; - } - - @Override - public String getName() { - return "Serial ban avoider"; - } - - @Override - public String getServer() { - return "dreamscape"; - } - - @Override - public RandomType getRandomType() { - return RandomType.ON_SERVER_START; - } -} diff --git a/src/main/java/org/parabot/randoms/locopk/MacAddressFix.java b/src/main/java/org/parabot/randoms/locopk/MacAddressFix.java new file mode 100644 index 0000000..d26683f --- /dev/null +++ b/src/main/java/org/parabot/randoms/locopk/MacAddressFix.java @@ -0,0 +1,77 @@ +package org.parabot.randoms.locopk; + +import org.parabot.core.Context; +import org.parabot.core.asm.ASMClassLoader; +import org.parabot.environment.randoms.Random; +import org.parabot.environment.randoms.RandomType; + +import java.lang.reflect.Field; + +/** + * @author EmmaStone + */ +public class MacAddressFix implements Random { + + private boolean done; + + @Override + public boolean activate() { + return !done; + } + + @Override + public void execute() { + try { + final ASMClassLoader classLoader = Context.getInstance().getASMClassLoader(); + + Class createUID = classLoader.loadClass("com.locopk.client.rs.CreateUID"); + + Field mac = createUID.getDeclaredField("mac"); + + String randomMac = randomMacAddress(); + + System.out.println(randomMac); + + mac.set(null, randomMac); + } catch (ClassNotFoundException | NoSuchFieldException | IllegalAccessException e) { + e.printStackTrace(); + } + + done = true; + } + + @Override + public String getName() { + return "Mac Address Fix"; + } + + @Override + public String getServer() { + return "locopk"; + } + + @Override + public RandomType getRandomType() { + return RandomType.ON_SERVER_START; + } + + private String randomMacAddress(){ + java.util.Random rand = new java.util.Random(); + byte[] macAddr = new byte[6]; + rand.nextBytes(macAddr); + + macAddr[0] = (byte)(macAddr[0] & (byte)254); //zeroing last 2 bytes to make it unicast and locally adminstrated + + StringBuilder sb = new StringBuilder(18); + for(byte b : macAddr){ + + if(sb.length() > 0) + sb.append(""); + + sb.append(String.format("%02x", b)); + } + + + return sb.toString().toUpperCase(); + } +} diff --git a/src/main/java/org/parabot/randoms/pkhonor/CombatStone b/src/main/java/org/parabot/randoms/pkhonor/CombatStone.java similarity index 93% rename from src/main/java/org/parabot/randoms/pkhonor/CombatStone rename to src/main/java/org/parabot/randoms/pkhonor/CombatStone.java index ed4232c..74dd586 100644 --- a/src/main/java/org/parabot/randoms/pkhonor/CombatStone +++ b/src/main/java/org/parabot/randoms/pkhonor/CombatStone.java @@ -18,12 +18,11 @@ public class CombatStone implements Random { @Override public boolean activate() { - return (this.combat = getCombat) != null; + return (this.combat = getCombat()) != null; } @Override public void execute() { - Logger.addMessage("CombatStone Random Running",true); if (this.combat != null) { combat.interact(Npcs.Option.TALK_TO); Time.sleep(new SleepCondition() {