[FEATURE] Added Anti Bot Detector for Elkoy

This commit is contained in:
JKetelaar
2017-02-02 20:01:29 +01:00
parent 3e6a2365ce
commit bd2eaa92fe
2 changed files with 85 additions and 2 deletions
+2 -2
View File
@@ -3,8 +3,8 @@ package org.parabot.randoms;
import org.parabot.core.Context;
import org.parabot.environment.randoms.Random;
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.pkhonor.*;
@@ -31,7 +31,7 @@ public class Core {
// Elkoy
//randoms.add(new QuestionSolver());
randoms.add(new LogoutDisabler());
randoms.add(new MouseOnScreen());
randoms.add(new AntiDetector());
org.parabot.core.Core.verbose("Possible randoms:");
for (Random random : randoms) {
@@ -0,0 +1,83 @@
package org.parabot.randoms.elkoy;
import org.parabot.core.Context;
import org.parabot.core.reflect.RefClass;
import org.parabot.core.reflect.RefField;
import org.parabot.environment.api.utils.Time;
import org.parabot.environment.randoms.Random;
import org.parabot.environment.randoms.RandomType;
/**
* @author JKetelaar, Empathy, Ethan
*/
public class AntiDetector implements Random, Runnable {
private boolean activated;
private final String[] toBeNull = {"P", "Q", "N"};
private final String className = "cb";
@Override
public boolean activate() {
return !activated;
}
@Override
public void execute() {
activated = true;
new Thread(this).start();
}
@Override
public String getName() {
return "Anti Bot Detector";
}
@Override
public String getServer() {
return "Elkoy";
}
@Override
public RandomType getRandomType() {
return RandomType.ON_SERVER_START;
}
@Override
public void run() {
while (activated) {
try {
final RefClass refClass = new RefClass(Context.getInstance().getASMClassLoader().loadClass(className));
for (RefField refField : refClass.getFields()) {
if (refField != null) {
if (refClass.isStatic()) {
if (refField.getType().getName().equalsIgnoreCase("boolean")) {
refField.set(false);
} else if (refField.getType().getName().equalsIgnoreCase("int")) {
int i = (int) refField.asObject();
if (i >= 0) {
refField.set(-1);
}
} else if (refField.getType().getName().equalsIgnoreCase("string")) {
String str = (String) refField.asObject();
if (str.length() > 0) {
refField.set(null);
}
}
}
}
}
for (String s : toBeNull) {
refClass.getField(s).set(null);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
Time.sleep(25);
}
}
}