summaryrefslogtreecommitdiff
path: root/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl
diff options
context:
space:
mode:
authorArslaan Pathan <[email protected]>2025-10-08 22:44:10 +1300
committerArslaan Pathan <[email protected]>2025-10-08 22:44:10 +1300
commit90f0c0722175466856b82ef65ada129eb972c425 (patch)
treec80ab1c31b3e56066a7c6daa9bdd67c6bd4197cf /src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl
parent9db037f2508ce99f51f6b9fee54a8e1ad12fe566 (diff)
downloadarslaansmagichax-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')
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/AutoClicker.java48
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/ClickGUI.java2
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Criticals.java84
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Flight.java10
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java64
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GUN.java19
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoPackets.java23
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Speed.java51
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Spider.java26
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);
+ }
+}