Matrix Bot Remover (Legacy)
-
well. I test the Test Version. It should work now
-
@Anonzme Matrix bots will copy the player's movements. Like when you jump, the bot will jump right after you. So maybe you can check if a player is trying to copy your movements, it might be a bot
-
@notautismatall Bots have delay. So it's diffcult for me.
-
@notautismatall loooooooooool
-
@Anonzme Or maybe check if the server is sending a packet to add entities to the map. If the entity is spawned when the game isn't started yet, you allow it. If the entity is spawned after the game starts, it might be a bot, remove it.
-
@Anonzme said in Matrix Bot Remover:
well. I test the Test Version. It should work now
sometimes it unexpectedly removes player
-
@Asutoboki-kun Hmmmm...
-
still fight the bot run around me
-
@ScaffoldZ_VN vietnamese retards smfh
tmw u still care about this flawed antibot when theres a proper one on github -
@A-Former-User said in Matrix Bot Remover (Legacy):
有问题请反馈,感激不尽!
Please give feedback if you find any problems in the code, thank you very much!It’s legacy, I think CzechHek have a better one.
/// api_version=1 var scriptName = "MatrixBotRemover"; var scriptAuthor = "Anonzme"; var scriptVersion = 3.0; var EntityPlayer = Java.type("net.minecraft.entity.player.EntityPlayer"); var HashMap = Java.type("java.util.HashMap"); var ArrayList = Java.type("java.util.ArrayList"); var next; var playerList; var notAlwaysInRadius; var xHash; var zHash; function isBot(entity, speed) { return entity != mc.thePlayer && speed > 6.75 && speed < 27.5 && mc.thePlayer.getDistanceToEntity(entity) <= 5.5 && within(entity.posY, mc.thePlayer.posY - 1.5, mc.thePlayer.posY + 1.5); } function within(n, mi, ma) { return n <= ma && n >= mi; } function MatrixBotRemoverModule() { this.getName = function() { return "MatrixBotRemover"; }; this.getDescription = function() { return "Remove the bots made by Matrix AntiCheat."; }; this.getCategory = function() { return "Misc"; }; this.onEnable = function() { next = false; notAlwaysInRadius = new ArrayList(); playerList = new ArrayList(); // <EntityPlayer> xHash = new HashMap(); // <EntityPlayer, Double> zHash = new HashMap(); // <EntityPlayer, Double> }; this.onMotion = function(motionEvent) { if (notAlwaysInRadius.size() > 1000) notAlwaysInRadius.clear(); for (var i in mc.theWorld.getLoadedEntityList()) { var entity = mc.theWorld.getLoadedEntityList()[i]; if (entity instanceof EntityPlayer && (mc.thePlayer.getDistanceToEntity(entity) > 10.0 || !within(entity.posY, mc.thePlayer.posY - 1.5, mc.thePlayer.posY + 1.5)) && !notAlwaysInRadius.contains(entity)) notAlwaysInRadius.add(entity); } }; this.onUpdate = function() { if (!next) { for (var i in mc.theWorld.getLoadedEntityList()) { var entity = mc.theWorld.getLoadedEntityList()[i]; if (!(entity instanceof EntityPlayer) || notAlwaysInRadius.contains(entity)) continue; playerList.add(entity); xHash.put(entity, entity.posX); zHash.put(entity, entity.posZ); } } else { for (var i = 0; i < playerList.size(); ++i) { var entity = playerList.get(i); var xDiff = entity.posX - xHash.get(entity); var zDiff = entity.posZ - zHash.get(entity); var speed = Math.sqrt(xDiff * xDiff + zDiff * zDiff) * 10; if (speed != undefined && speed != NaN && isBot(entity, speed)) { mc.theWorld.removeEntity(entity); Chat.print("§8[§9§lMatrixBotRemover§8] §3Remove §a" + entity.getName() + "§3."); } } playerList.clear(); xHash.clear(); zHash.clear(); } next = !next; }; this.onDisable = function() { playerList.clear(); xHash.clear(); zHash.clear(); }; } var matrixBotRemoverModule = new MatrixBotRemoverModule(); function onEnable() { moduleManager.registerModule(matrixBotRemoverModule); } function onDisable() { moduleManager.unregisterModule(matrixBotRemoverModule); }