diff --git a/.DS_Store b/.DS_Store index 6a69919e..29990791 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/build/libs/[1.8.9] BetterKeystrokes V-1.2-sources.jar b/build/libs/[1.8.9] BetterKeystrokes V-1.2-sources.jar index 6b578a5a..43dbb5ef 100644 Binary files a/build/libs/[1.8.9] BetterKeystrokes V-1.2-sources.jar and b/build/libs/[1.8.9] BetterKeystrokes V-1.2-sources.jar differ diff --git a/build/libs/[1.8.9] BetterKeystrokes V-1.2.jar b/build/libs/[1.8.9] BetterKeystrokes V-1.2.jar index 736e3035..74c2fbb0 100644 Binary files a/build/libs/[1.8.9] BetterKeystrokes V-1.2.jar and b/build/libs/[1.8.9] BetterKeystrokes V-1.2.jar differ diff --git a/src/.DS_Store b/src/.DS_Store index d1cd1cbe..3c46c712 100644 Binary files a/src/.DS_Store and b/src/.DS_Store differ diff --git a/src/main/.DS_Store b/src/main/.DS_Store index 38011b32..03edcd59 100644 Binary files a/src/main/.DS_Store and b/src/main/.DS_Store differ diff --git a/src/main/java/.DS_Store b/src/main/java/.DS_Store index 17deda7f..0c65ae41 100644 Binary files a/src/main/java/.DS_Store and b/src/main/java/.DS_Store differ diff --git a/src/main/java/keystrokesmod/.DS_Store b/src/main/java/keystrokesmod/.DS_Store index 48ef9582..8e3f70c5 100644 Binary files a/src/main/java/keystrokesmod/.DS_Store and b/src/main/java/keystrokesmod/.DS_Store differ diff --git a/src/main/java/keystrokesmod/client/.DS_Store b/src/main/java/keystrokesmod/client/.DS_Store index 06aa579a..e2025e33 100644 Binary files a/src/main/java/keystrokesmod/client/.DS_Store and b/src/main/java/keystrokesmod/client/.DS_Store differ diff --git a/src/main/java/keystrokesmod/client/mixin/mixins/MxinEntityLivingBase.java b/src/main/java/keystrokesmod/client/mixin/mixins/MxinEntityLivingBase.java index 8daf6c77..034b909e 100644 --- a/src/main/java/keystrokesmod/client/mixin/mixins/MxinEntityLivingBase.java +++ b/src/main/java/keystrokesmod/client/mixin/mixins/MxinEntityLivingBase.java @@ -14,20 +14,20 @@ @Mixin(EntityLivingBase.class) public abstract class MxinEntityLivingBase extends Entity { + public MxinEntityLivingBase(World worldIn) { + super(worldIn); + } + @Shadow public float rotationYawHead; @Shadow public float prevRotationYawHead; - public MxinEntityLivingBase(World worldIn) { - super(worldIn); - } - - /** - * @author mc code - * @reason lookevent - */ + /** + * @author mc code + * @reason lookevent + */ @Override @Overwrite public Vec3 getLook(float partialTicks) diff --git a/src/main/java/keystrokesmod/client/module/.DS_Store b/src/main/java/keystrokesmod/client/module/.DS_Store index 8b87b5ac..e2a4f220 100644 Binary files a/src/main/java/keystrokesmod/client/module/.DS_Store and b/src/main/java/keystrokesmod/client/module/.DS_Store differ diff --git a/src/main/java/keystrokesmod/client/module/modules/.DS_Store b/src/main/java/keystrokesmod/client/module/modules/.DS_Store index 14140237..30373030 100644 Binary files a/src/main/java/keystrokesmod/client/module/modules/.DS_Store and b/src/main/java/keystrokesmod/client/module/modules/.DS_Store differ diff --git a/src/main/java/keystrokesmod/client/module/modules/combat/LegitAura2.java b/src/main/java/keystrokesmod/client/module/modules/combat/LegitAura2.java index c9dd98ee..4f654bbf 100644 --- a/src/main/java/keystrokesmod/client/module/modules/combat/LegitAura2.java +++ b/src/main/java/keystrokesmod/client/module/modules/combat/LegitAura2.java @@ -1,6 +1,8 @@ package keystrokesmod.client.module.modules.combat; import java.awt.Color; +import java.util.Comparator; +import java.util.List; import org.lwjgl.input.Mouse; @@ -13,11 +15,14 @@ import keystrokesmod.client.event.impl.UpdateEvent; import keystrokesmod.client.module.Module; import keystrokesmod.client.module.modules.world.AntiBot; +import keystrokesmod.client.module.setting.impl.ComboSetting; import keystrokesmod.client.module.setting.impl.DoubleSliderSetting; import keystrokesmod.client.module.setting.impl.SliderSetting; import keystrokesmod.client.module.setting.impl.TickSetting; import keystrokesmod.client.utils.CoolDown; import keystrokesmod.client.utils.Utils; +import keystrokesmod.client.utils.Utils.Player; +import keystrokesmod.client.utils.collection.SortValue; import net.minecraft.client.settings.KeyBinding; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.network.play.server.S08PacketPlayerPosLook; @@ -35,7 +40,9 @@ public class LegitAura2 extends Module { private EntityPlayer target; private SliderSetting rotationDistance, fov, reach; private DoubleSliderSetting cps; - private TickSetting disableOnTp, disableWhenFlying, mouseDown, onlySurvival, raytrace; + private TickSetting disableOnTp, disableWhenFlying, mouseDown, onlySurvival; + private List pTargets; + private ComboSetting sortMode; private CoolDown coolDown = new CoolDown(1); private boolean leftDown, leftn; private long leftDownTime, leftUpTime, leftk, leftl; @@ -52,6 +59,7 @@ public LegitAura2() { this.registerSetting(disableOnTp = new TickSetting("Disable after tp", true)); this.registerSetting(disableWhenFlying = new TickSetting("Disable when flying", true)); this.registerSetting(mouseDown = new TickSetting("Mouse Down", true)); + this.registerSetting(sortMode = new ComboSetting("Sort mode", SortMode.Distance)); } @Subscribe @@ -61,17 +69,18 @@ public void onUpdate(UpdateEvent e) { return; } Mouse.poll(); - EntityPlayer pTarget = Utils.Player.getClosestPlayer((float) rotationDistance.getInput()); - //Utils.Player.sendMessageToSelf(!(!mouseDown.isToggled() || Mouse.isButtonDown(0)) + ""); + pTargets = Utils.Player.getClosePlayers((float) rotationDistance.getInput()); + pTargets.removeIf(player -> !(isValidTarget(player))); + SortMode sm = (SortMode) sortMode.getMode(); + EntityPlayer pTarget = pTargets.isEmpty() ? null : pTargets.stream().min(Comparator.comparingDouble(target -> sm.sv.value(target))).get(); + pTargets.remove(pTarget); if( - (pTarget == null) - || AntiBot.bot(pTarget) - || (mc.currentScreen != null) + (pTarget == null) + || (mc.currentScreen != null) || !(!onlySurvival.isToggled() || (mc.playerController.getCurrentGameType() == GameType.SURVIVAL)) || !coolDown.hasFinished() || !(!mouseDown.isToggled() || Mouse.isButtonDown(0)) - || !(!disableWhenFlying.isToggled() || !mc.thePlayer.capabilities.isFlying) - || !Utils.Player.fov(pTarget, (float) fov.getInput())) { + || !(!disableWhenFlying.isToggled() || !mc.thePlayer.capabilities.isFlying)) { target = null; prevYaw = yaw; prevPitch = pitch; @@ -99,11 +108,13 @@ public void renderWorldLast(ForgeEvent fe) { int rgb = new Color(red, green, 0).getRGB(); Utils.HUD.drawBoxAroundEntity(target, 2, 0, 0, rgb, false); } + for(EntityPlayer p : pTargets) + Utils.HUD.drawBoxAroundEntity(p, 2, 0, 0, 0xFF0000FF, false); } @Subscribe public void packetEvent(PacketEvent e) { - if((e.getPacket() instanceof S08PacketPlayerPosLook) && mouseDown.isToggled() && (coolDown.getTimeLeft() < 2000)) { + if((e.getPacket() instanceof S08PacketPlayerPosLook) && disableOnTp.isToggled() && (coolDown.getTimeLeft() < 2000)) { coolDown.setCooldown(2000); coolDown.start(); } @@ -111,15 +122,11 @@ public void packetEvent(PacketEvent e) { @Subscribe public void move(MoveInputEvent e) { - if(target == null) - return; e.setYaw(yaw); } @Subscribe public void lookEvent(LookEvent e) { - if(target == null) - return; e.setPrevYaw(prevYaw); e.setPrevPitch(prevPitch); e.setYaw(yaw); @@ -179,4 +186,32 @@ public void genLeftTimings() { this.leftUpTime = System.currentTimeMillis() + delay; this.leftDownTime = (System.currentTimeMillis() + (delay / 2L)) - Utils.Java.rand().nextInt(10); } + + public double getReach() { + return reach.getInput(); + } + + private boolean isValidTarget(EntityPlayer ep) { + return ( + (ep != null) + && !AntiBot.bot(ep) + && (ep != mc.thePlayer) + && Utils.Player.fov(ep, (float) fov.getInput())); + } + + public enum SortMode { + Distance(player -> mc.thePlayer.getDistanceToEntity(player)), + Hurttime(player -> (float) player.hurtTime), + Fov(Player::fovToEntity); + + private final SortValue sv; + + private SortMode(SortValue sv) { + this.sv = sv; + } + + public SortValue getSortValue() { + return sv; + } + } } diff --git a/src/main/java/keystrokesmod/client/module/modules/combat/Reach.java b/src/main/java/keystrokesmod/client/module/modules/combat/Reach.java index 57859ad8..d4653ca2 100644 --- a/src/main/java/keystrokesmod/client/module/modules/combat/Reach.java +++ b/src/main/java/keystrokesmod/client/module/modules/combat/Reach.java @@ -1,5 +1,6 @@ package keystrokesmod.client.module.modules.combat; +import keystrokesmod.client.main.Raven; import keystrokesmod.client.module.Module; import keystrokesmod.client.module.setting.impl.DoubleSliderSetting; import keystrokesmod.client.module.setting.impl.TickSetting; @@ -10,7 +11,7 @@ public class Reach extends Module { public static TickSetting weapon_only; public static TickSetting moving_only; public static TickSetting sprint_only; - // public static LegitAura2 la; + public static LegitAura2 la; public Reach() { super("Reach", ModuleCategory.combat); @@ -19,31 +20,28 @@ public Reach() { this.registerSetting(moving_only = new TickSetting("Moving only", false)); this.registerSetting(sprint_only = new TickSetting("Sprint only", false)); } - + @Override public void postApplyConfig() { - // la = (LegitAura2) Raven.moduleManager.getModuleByClazz(LegitAura2.class); + la = (LegitAura2) Raven.moduleManager.getModuleByClazz(LegitAura2.class); } public static double getReach() { - //if(la.isEnabled()) - // return Utils.Client.ranModuleVal(la.reach, Utils.Java.rand()); + if(la.isEnabled()) + return la.getReach(); double normal = mc.playerController.extendedReach()? 5 : 3; - if (!Utils.Player.isPlayerInGame()) - return normal; - - if (weapon_only.isToggled() && !Utils.Player.isPlayerHoldingWeapon()) + if (!Utils.Player.isPlayerInGame() || (weapon_only.isToggled() && !Utils.Player.isPlayerHoldingWeapon())) return normal; - if (moving_only.isToggled() && (double) mc.thePlayer.moveForward == 0.0D - && (double) mc.thePlayer.moveStrafing == 0.0D) + if (moving_only.isToggled() && ((double) mc.thePlayer.moveForward == 0.0D) + && ((double) mc.thePlayer.moveStrafing == 0.0D)) return normal; if (sprint_only.isToggled() && !mc.thePlayer.isSprinting()) return normal; - + return Utils.Client.ranModuleVal(reach, Utils.Java.rand()) + (mc.playerController.extendedReach()? 2 : 0); } } diff --git a/src/main/java/keystrokesmod/client/utils/Utils.java b/src/main/java/keystrokesmod/client/utils/Utils.java index 6940ace2..5b266c4b 100644 --- a/src/main/java/keystrokesmod/client/utils/Utils.java +++ b/src/main/java/keystrokesmod/client/utils/Utils.java @@ -450,7 +450,7 @@ public static EntityPlayer getClosestPlayer(double dis) { if (mc.theWorld == null) return null; Iterator entities; - entities = mc.theWorld.loadedEntityList.iterator(); + entities = mc.theWorld.playerEntities.iterator(); EntityPlayer cplayer = null; while (entities.hasNext()) { @@ -466,6 +466,18 @@ public static EntityPlayer getClosestPlayer(double dis) { return cplayer; } + + public static List getClosePlayers(double dis) { + if (mc.theWorld == null) + return null; + List players = new ArrayList<>(); + + for(EntityPlayer player : mc.theWorld.playerEntities) + if(mc.thePlayer.getDistanceToEntity(player) < dis) + players.add(player); + + return players; + } } public static class Client { diff --git a/src/main/java/keystrokesmod/client/utils/collection/SortValue.java b/src/main/java/keystrokesmod/client/utils/collection/SortValue.java new file mode 100644 index 00000000..58ec1ab7 --- /dev/null +++ b/src/main/java/keystrokesmod/client/utils/collection/SortValue.java @@ -0,0 +1,8 @@ +package keystrokesmod.client.utils.collection; + +import net.minecraft.entity.player.EntityPlayer; + +@FunctionalInterface +public interface SortValue { + Float value(EntityPlayer player); +}