summaryrefslogtreecommitdiff
path: root/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl')
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/FakeSneak.java14
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Poseidon.java21
-rw-r--r--src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/TickRateLock.java59
3 files changed, 92 insertions, 2 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/FakeSneak.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/FakeSneak.java
index 011504c..822a209 100644
--- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/FakeSneak.java
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/FakeSneak.java
@@ -1,8 +1,13 @@
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.minecraft.client.gui.screen.TitleScreen;
+import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.play.PlayerInputC2SPacket;
import net.minecraft.util.PlayerInput;
@@ -14,7 +19,12 @@ public class FakeSneak extends Module {
@Override
public void tick() {
if (!this.isEnabled() || mc.player == null) return;
- PlayerInput fakeSneak = new PlayerInput(false, false, false, false, false, true, false);
- mc.player.networkHandler.sendPacket(new PlayerInputC2SPacket(fakeSneak));
+
+ PlayerInput original = mc.player.input.playerInput;
+
+ PlayerInput fakeSneak = new PlayerInput(original.forward(), original.backward(), original.left(), original.right(), original.jump(), true, original.sprint());
+ Packet fakeSneakPacket = new PlayerInputC2SPacket(fakeSneak);
+ ((IPacket) fakeSneakPacket).hax$setTag(1337);
+ mc.player.networkHandler.sendPacket(fakeSneakPacket);
}
}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Poseidon.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Poseidon.java
new file mode 100644
index 0000000..cedb832
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Poseidon.java
@@ -0,0 +1,21 @@
+package net.justlearning.arslaan3102.arslaansmagichax.modules.impl;
+
+import net.justlearning.arslaan3102.arslaansmagichax.modules.Category;
+import net.justlearning.arslaan3102.arslaansmagichax.modules.Module;
+import net.minecraft.entity.effect.StatusEffectInstance;
+import net.minecraft.entity.effect.StatusEffects;
+import net.minecraft.registry.Registries;
+
+public class Poseidon extends Module {
+ public Poseidon() {
+ super("Poseidon", "Stops you from drowning.", -1, Category.PLAYER);
+ }
+
+ @Override
+ public void tick() {
+ if (!this.isEnabled() || mc.player == null) return;
+
+ mc.player.setAir(mc.player.getMaxAir());
+ mc.player.addStatusEffect(new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(StatusEffects.WATER_BREATHING.value()), 1, 255));
+ }
+}
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/TickRateLock.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/TickRateLock.java
new file mode 100644
index 0000000..75f8897
--- /dev/null
+++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/TickRateLock.java
@@ -0,0 +1,59 @@
+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.ReceivePacketEventBus;
+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;
+import net.minecraft.network.listener.ClientPlayPacketListener;
+import net.minecraft.network.packet.Packet;
+import net.minecraft.network.packet.s2c.play.UpdateTickRateS2CPacket;
+import net.minecraft.world.tick.TickManager;
+
+public class TickRateLock extends Module {
+
+ private NumberSetting tickRate = new NumberSetting("Tick Rate", 1, 100, 20, 1);
+ private BooleanSetting frozen = new BooleanSetting("Frozen", false);
+ private static float serverTickRate = 20; // default 20 tps
+ private static boolean serverFrozen = false; // default not frozen
+
+ public TickRateLock() {
+ super("Tick Rate Lock", "Locks the tick rate to a specified value (Does not affect the server - client-side only)", -1, Category.MISC);
+ addSetting(tickRate);
+ addSetting(frozen);
+ ReceivePacketEventBus.register(TickRateLock::onPacketReceive);
+ }
+
+ private static void onPacketReceive(PacketEvent.Receive event) {
+ if (!ArslaansMagicHaxClient.tickRateLock.isEnabled()) return;
+
+ Packet packet = event.packet();
+
+ if (packet instanceof UpdateTickRateS2CPacket) {
+ serverTickRate = ((UpdateTickRateS2CPacket) packet).tickRate(); // save server tick rate
+ serverFrozen = ((UpdateTickRateS2CPacket) packet).isFrozen(); // save server frozen
+ event.setCancelled(true); // ignores the server, frick them with all their rules
+ }
+ }
+
+ @Override
+ public void tick() {
+ if (!this.isEnabled() || mc.player == null || mc.world == null) return;
+
+ TickManager tickManager = mc.world.getTickManager();
+ if (tickManager.getTickRate() != tickRate.getValue() || tickManager.isFrozen() != frozen.isEnabled()) {
+ tickManager.setTickRate(tickRate.getValueFloat());
+ tickManager.setFrozen(frozen.isEnabled());
+ }
+ }
+
+ @Override
+ protected void onDisable() {
+ if (mc.player == null || mc.world == null) return;
+ TickManager tickManager = mc.world.getTickManager();
+ tickManager.setTickRate(serverTickRate);
+ tickManager.setFrozen(serverFrozen);
+ }
+}