@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); }