diff options
| author | Arslaan Pathan <[email protected]> | 2025-10-08 22:44:10 +1300 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2025-10-08 22:44:10 +1300 |
| commit | 90f0c0722175466856b82ef65ada129eb972c425 (patch) | |
| tree | c80ab1c31b3e56066a7c6daa9bdd67c6bd4197cf /src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl | |
| parent | 9db037f2508ce99f51f6b9fee54a8e1ad12fe566 (diff) | |
| download | arslaansmagichax-90f0c0722175466856b82ef65ada129eb972c425.tar.xz arslaansmagichax-90f0c0722175466856b82ef65ada129eb972c425.zip | |
finish clickgui, add more hacks, add settings, add mixins, add packet event buses and packet events, what the cook why did i put so much shit in one commit
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl')
9 files changed, 321 insertions, 6 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/AutoClicker.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/AutoClicker.java new file mode 100644 index 0000000..b131f53 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/AutoClicker.java @@ -0,0 +1,48 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.ModeSetting; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.NumberSetting; +import net.minecraft.entity.Entity; +import net.minecraft.util.Hand; +import net.minecraft.util.hit.EntityHitResult; +import net.minecraft.util.hit.HitResult; + +import java.util.Objects; +import java.util.Random; + +public class AutoClicker extends Module { + private final NumberSetting cps = new NumberSetting("CPS", 5, 50, 12, 0.1); // default 10 CPS + private final ModeSetting mode = new ModeSetting("Mode", "NoDelay", "CPS", "NoDelay"); + private long nextClickTime = 0L; + + public AutoClicker() { + super("AutoClicker", "Automatically attacks entities under your crosshair.", -1, Category.COMBAT); + addSetting(mode); + addSetting(cps); + } + + @Override + public void tick() { + if (!isEnabled() || mc.player == null || mc.world == null) return; + if (mc.currentScreen != null) return; + + HitResult hr = mc.crosshairTarget; + if (!(hr instanceof EntityHitResult eResult)) return; + + Entity target = eResult.getEntity(); + if (target == null || !target.isAlive()) return; + + if (!Objects.equals(mode.getMode(), "NoDelay")) { + long now = System.currentTimeMillis(); + if (now < nextClickTime) return; + + double delayMs = 1000.0 / cps.getValue(); + nextClickTime = now + (long) Math.max(1, delayMs); + } + + mc.interactionManager.attackEntity(mc.player, target); + mc.player.swingHand(Hand.MAIN_HAND); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/ClickGUI.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/ClickGUI.java index f5f3a4f..b647887 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/ClickGUI.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/ClickGUI.java @@ -2,7 +2,7 @@ package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; -import net.justlearning.arslaan3102.arslaansmagichax.screens.ClickGUIScreen; +import net.justlearning.arslaan3102.arslaansmagichax.screens.clickgui.ClickGUIScreen; import net.minecraft.client.MinecraftClient; import org.lwjgl.glfw.GLFW; diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Criticals.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Criticals.java new file mode 100644 index 0000000..e539ee7 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Criticals.java @@ -0,0 +1,84 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.ArslaansMagicHaxClient; +import net.justlearning.arslaan3102.arslaansmagichax.events.PacketEvent; +import net.justlearning.arslaan3102.arslaansmagichax.events.SendPacketEventBus; +import net.justlearning.arslaan3102.arslaansmagichax.mixininterface.IPacket; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.ModeSetting; +import net.minecraft.network.packet.Packet; +import net.minecraft.network.packet.c2s.play.*; +import net.minecraft.util.PlayerInput; + +import java.util.Objects; + +public class Criticals extends Module { + private static ModeSetting mode = new ModeSetting("Mode", "Packet", "Packet", "Bypass"); + + public Criticals() { + super("Criticals", "Always gives critical hits.", -1, Category.COMBAT); + SendPacketEventBus.register(Criticals::packetEventListener); + addSetting(mode); + } + + private static void packetEventListener(PacketEvent.Send event) { + if (!ArslaansMagicHaxClient.criticals.isEnabled() || mc.player == null) return; + + String obamaHaveDih = "barapbarapba"; // kinda put it in mbappe + + Packet<?> packet = event.packet(); + + // mojang did a mojang thing and you cant detect if packet is InteractType.ATTACK anymore so just assume it is and pray it works + if (packet instanceof PlayerInteractEntityC2SPacket && ((IPacket) packet).hax$getTag() != 1337) { + event.setCancelled(true); + + if (Objects.equals(mode.getMode(), "Packet")) { + // fake not sprinting if sprinting so it lets you crit + boolean wasSprinting = false; + + if (mc.player.isSprinting()) { + PlayerInput fakeNoSprint = new PlayerInput(false, false, false, false, false, false, false); + mc.player.networkHandler.sendPacket(new PlayerInputC2SPacket(fakeNoSprint)); + + ClientCommandC2SPacket fakeNoSprintCommand = new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.STOP_SPRINTING); + mc.player.networkHandler.sendPacket(fakeNoSprintCommand); + + wasSprinting = true; + } + + sendYPacket(0.0625); + sendYPacket(0); + + ((IPacket) packet).hax$setTag(1337); + mc.player.networkHandler.sendPacket(packet); + + // send sprinting packet again just in case it stopped the player from sprinting client-side (happens) + if (wasSprinting) { + PlayerInput fakeNoSprint = new PlayerInput(false, false, false, false, false, false, true); + mc.player.networkHandler.sendPacket(new PlayerInputC2SPacket(fakeNoSprint)); + + ClientCommandC2SPacket fakeNoSprintCommand = new ClientCommandC2SPacket(mc.player, ClientCommandC2SPacket.Mode.START_SPRINTING); + mc.player.networkHandler.sendPacket(fakeNoSprintCommand); + + mc.player.setSprinting(true); + } + } else if (Objects.equals(mode.getMode(), "Bypass")) { + // don't do the sprint bypass and make it more random-looking to throw off anticheat + sendYPacket(0.11); + sendYPacket(0.1100013579); + sendYPacket(0.0000013579); + } + } + } + + private static void sendYPacket(double height) { + double x = mc.player.getX(); + double y = mc.player.getY(); + double z = mc.player.getZ(); + + PlayerMoveC2SPacket packet = new PlayerMoveC2SPacket.PositionAndOnGround(x, y + height, z, false, mc.player.horizontalCollision); + + mc.player.networkHandler.sendPacket(packet); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Flight.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Flight.java index 63c4a8f..50c4b5e 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Flight.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Flight.java @@ -10,11 +10,11 @@ public class Flight extends Module { } @Override - protected void onEnable() { - if (mc.player != null) { - mc.player.getAbilities().allowFlying = true; - mc.player.getAbilities().flying = true; - } + public void tick() { + if (!this.isEnabled() || mc.player == null) return; + + mc.player.getAbilities().allowFlying = true; + mc.player.getAbilities().flying = true; } @Override diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java new file mode 100644 index 0000000..3085f02 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java @@ -0,0 +1,64 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.ModeSetting; +import net.minecraft.client.option.SimpleOption; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.registry.Registries; + +import java.util.Objects; + +public class Fullbright extends Module { + private ModeSetting mode = new ModeSetting("Mode", "Gamma", "Effect", "Gamma"); + private SimpleOption<Double> option; + private double previousGamma = 1.0; + private boolean didSetGamma = false; // in case the mod was initialized on client load/saved state + + public Fullbright() { + super("Fullbright", "Brightens up your world!", -1, Category.RENDER); + addSetting(mode); + } + + @Override + protected void onEnable() { + if (mc.options == null) return; + if (Objects.equals(mode.getMode(), "Gamma")) { + previousGamma = mc.options.getGamma().getValue(); + mc.options.getGamma().setValue(1000.0); + } + didSetGamma = true; + } + + @Override + public void tick() { + if (!this.isEnabled() || mc.player == null) return; + + if (Objects.equals(mode.getMode(), "Effect")) { + if (didSetGamma) { + // undo gamma if switching mode + mc.options.getGamma().setValue(previousGamma); + didSetGamma = false; + } + mc.player.addStatusEffect(new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(StatusEffects.NIGHT_VISION.value()), 1, 0)); + } + if (Objects.equals(mode.getMode(), "Gamma")) { + if (!didSetGamma) { + previousGamma = mc.options.getGamma().getValue(); + mc.options.getGamma().setValue(1000.0); + didSetGamma = true; + } + } + } + + @Override + protected void onDisable() { + if (mc.player == null) return; + if (mc.player.hasStatusEffect(Registries.STATUS_EFFECT.getEntry(StatusEffects.NIGHT_VISION.value()))) { + mc.player.removeStatusEffect(Registries.STATUS_EFFECT.getEntry(StatusEffects.NIGHT_VISION.value())); + } + + mc.options.getGamma().setValue(previousGamma); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GUN.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GUN.java new file mode 100644 index 0000000..44d3544 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GUN.java @@ -0,0 +1,19 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.ArslaansMagicHaxClient; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; + +public class GUN extends Module { + public GUN() { + super("G U N", "NoAttackCooldown + Criticals + AutoClicker = G U N", -1, Category.COMBAT); + } + + @Override + protected void onEnable() { + ArslaansMagicHaxClient.noAttackCooldown.setEnabled(true); + ArslaansMagicHaxClient.criticals.setEnabled(true); + ArslaansMagicHaxClient.autoClicker.setEnabled(true); + this.setEnabled(false); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoPackets.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoPackets.java new file mode 100644 index 0000000..db17e91 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoPackets.java @@ -0,0 +1,23 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.ArslaansMagicHaxClient; +import net.justlearning.arslaan3102.arslaansmagichax.events.SendPacketEventBus; +import net.justlearning.arslaan3102.arslaansmagichax.events.PacketEvent; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.minecraft.text.Text; + +public class NoPackets extends Module { + public NoPackets() { + super("NoPackets", "Stops all outgoing packets from being sent. ONLY USE THIS IF YOU KNOW WHAT YOU ARE DOING!", -1, Category.MISC); + SendPacketEventBus.register(NoPackets::packetEventListener); + } + + private static void packetEventListener(PacketEvent.Send event) { + if (!ArslaansMagicHaxClient.noPackets.isEnabled()) return; + + if (mc.player != null) mc.player.sendMessage(Text.literal("Cancelled outgoing packet: " + event.packet().getClass().getSimpleName() + " -> " + event.packet()), false); + + event.setCancelled(true); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Speed.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Speed.java new file mode 100644 index 0000000..c70c19b --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Speed.java @@ -0,0 +1,51 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.BooleanSetting; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.NumberSetting; + +public class Speed extends Module { + private final NumberSetting speed = new NumberSetting("Speed", 0.1, 2.0, 0.4, 0.05); + private final BooleanSetting enableWhileSneaking = new BooleanSetting("Enable while Sneaking", true); + private final BooleanSetting enableInWater = new BooleanSetting("Enable in Water", true); + private final BooleanSetting enableInLava = new BooleanSetting("Enable in Lava", true); + + public Speed() { + super("Speed", "Makes you faster.", -1, Category.MOVEMENT); + addSetting(speed); + addSetting(enableWhileSneaking); + addSetting(enableInWater); + addSetting(enableInLava); + } + + @Override + public void tick() { + if (!isEnabled() || mc.player == null) return; + if (!enableWhileSneaking.isEnabled() && mc.player.isSneaking()) return; + if (!enableInLava.isEnabled() && mc.player.isInLava()) return; + if (!enableInWater.isEnabled() && mc.player.isTouchingWater()) return; + + float forward = mc.player.forwardSpeed; + float strafe = mc.player.sidewaysSpeed; + float yaw = mc.player.getYaw(); + + if (forward == 0 && strafe == 0) return; + + if (forward != 0) { + if (strafe > 0) yaw += (forward > 0 ? -45 : 45); + else if (strafe < 0) yaw += (forward > 0 ? 45 : -45); + strafe = 0; + forward = forward > 0 ? 1 : -1; + } + + double rad = Math.toRadians(yaw); + double sin = Math.sin(rad); + double cos = Math.cos(rad); + + double x = (forward * -sin + strafe * cos) * speed.getValue(); + double z = (forward * cos - strafe * -sin) * speed.getValue(); + + mc.player.setVelocity(x, mc.player.getVelocity().y, z); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Spider.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Spider.java new file mode 100644 index 0000000..9ba3e5c --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Spider.java @@ -0,0 +1,26 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.justlearning.arslaan3102.arslaansmagichax.modules.settings.NumberSetting; +import net.minecraft.util.math.Vec3d; + +public class Spider extends Module { + private NumberSetting climbSpeed = new NumberSetting("Climb Speed", 0, 1, 0.2, 0.1); + + public Spider() { + super("Spider", "Allows you to climb walls like a spider.", -1, Category.MOVEMENT); + addSetting(climbSpeed); + } + + @Override + public void tick() { + if (!this.isEnabled() || mc.player == null) return; + if (!mc.player.horizontalCollision) return; + + Vec3d velocity = mc.player.getVelocity(); + if (velocity.y >= 0.2) return; + + mc.player.setVelocity(velocity.x, climbSpeed.getValue(), velocity.z); + } +} |
