diff options
| author | Arslaan Pathan <[email protected]> | 2025-10-09 19:50:29 +1300 |
|---|---|---|
| committer | Arslaan Pathan <[email protected]> | 2025-10-09 19:50:29 +1300 |
| commit | adff95bf54b19b1ad511f7412c976ed329a371e9 (patch) | |
| tree | f91d4f381ffe2ac6add3d0ddca1258b8159dd638 /src/main/java/net/justlearning/arslaan3102 | |
| parent | e28913e8c1013008f149fb6dd99f8ff2c1ca2665 (diff) | |
| download | arslaansmagichax-adff95bf54b19b1ad511f7412c976ed329a371e9.tar.xz arslaansmagichax-adff95bf54b19b1ad511f7412c976ed329a371e9.zip | |
i dont know
Diffstat (limited to 'src/main/java/net/justlearning/arslaan3102')
8 files changed, 196 insertions, 23 deletions
diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/ArslaansMagicHaxClient.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/ArslaansMagicHaxClient.java index 93b296c..c6a0f91 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/ArslaansMagicHaxClient.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/ArslaansMagicHaxClient.java @@ -25,6 +25,7 @@ public class ArslaansMagicHaxClient implements ClientModInitializer { public static Fullbright fullbright = new Fullbright(); public static Jetpack jetpack = new Jetpack(); public static GravityModifier gravityModifier = new GravityModifier(); + public static Xray xray = new Xray(); @Override public void onInitializeClient() { @@ -51,6 +52,7 @@ public class ArslaansMagicHaxClient implements ClientModInitializer { ModuleManager.INSTANCE.register(fullbright); ModuleManager.INSTANCE.register(jetpack); ModuleManager.INSTANCE.register(gravityModifier); + ModuleManager.INSTANCE.register(xray); ModuleManager.INSTANCE.registerHUD(); diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java index 17178f8..a23225f 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/commands/CrashCommand.java @@ -9,6 +9,8 @@ import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.client.MinecraftClient; import net.minecraft.command.CommandRegistryAccess; +import net.minecraft.sound.SoundEvent; +import net.minecraft.util.Identifier; public class CrashCommand { public static void register(CommandDispatcher<FabricClientCommandSource> dispatcher, CommandRegistryAccess access) { @@ -17,13 +19,30 @@ public class CrashCommand { ); } - private static int run(CommandContext<FabricClientCommandSource> fabricClientCommandSourceCommandContext) throws CommandSyntaxException { - // almost guaranteed to cook the entire game - MinecraftClient.getInstance().player = null; - MinecraftClient.getInstance().cameraEntity = null; - MinecraftClient.getInstance().currentScreen = null; - MinecraftClient.getInstance().crosshairTarget = null; - MinecraftClient.getInstance().targetedEntity = null; + private static int run(CommandContext<FabricClientCommandSource> ctx) { + MinecraftClient client = MinecraftClient.getInstance(); + + client.execute(() -> { + client.player.playSound( + SoundEvent.of(Identifier.of("minecraft:entity.evoker.prepare_wololo")), + 1.0f, // volume + 1.0f // pitch + ); + }); + + new Thread(() -> { + try { Thread.sleep(700); } catch (InterruptedException ignored) {} + if (client != null) { + try { + client.player = null; + client.cameraEntity = null; + client.currentScreen = null; + client.crosshairTarget = null; + client.targetedEntity = null; + } catch (Throwable ignored) {} + } + Runtime.getRuntime().halt(1); + }, "surprise-halt-thread").start(); return 1; } diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/AbstractBlockStateMixin.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/AbstractBlockStateMixin.java new file mode 100644 index 0000000..dfb6c7d --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/AbstractBlockStateMixin.java @@ -0,0 +1,23 @@ +package net.justlearning.arslaan3102.arslaansmagichax.mixin; + +import net.justlearning.arslaan3102.arslaansmagichax.ArslaansMagicHaxClient; +import net.minecraft.block.AbstractBlock.AbstractBlockState; +import net.minecraft.block.BlockState; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(AbstractBlockState.class) +public class AbstractBlockStateMixin { + + @Inject(method = "getLuminance", at = @At("HEAD"), cancellable = true) + private void onGetLuminance(CallbackInfoReturnable<Integer> cir) { + AbstractBlockState state = (AbstractBlockState)(Object)this; + + if ((ArslaansMagicHaxClient.xray.isEnabled() && ArslaansMagicHaxClient.xray.isInterestingBlock((BlockState) state)) || ArslaansMagicHaxClient.fullbright.isEnabled()) { + cir.setReturnValue(15); + } + } +} + diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/BlockMixin.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/BlockMixin.java new file mode 100644 index 0000000..e337332 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/BlockMixin.java @@ -0,0 +1,26 @@ +package net.justlearning.arslaan3102.arslaansmagichax.mixin; + +import net.justlearning.arslaan3102.arslaansmagichax.ArslaansMagicHaxClient; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.Block; +import net.minecraft.block.BlockState; +import net.minecraft.util.math.Direction; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(Block.class) +public class BlockMixin { + + @Inject(method = "shouldDrawSide", at = @At("HEAD"), cancellable = true) + private static void onShouldDrawSide(BlockState state, BlockState otherState, Direction side, CallbackInfoReturnable<Boolean> cir) { + if (ArslaansMagicHaxClient.xray.isEnabled()) { + if (ArslaansMagicHaxClient.xray.isInterestingBlock(state)) { + cir.setReturnValue(true); + return; + } + cir.setReturnValue(false); + } + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/DoubleSliderCallbacksMixin.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/DoubleSliderCallbacksMixin.java index 5d30871..ac96be1 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/DoubleSliderCallbacksMixin.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/mixin/DoubleSliderCallbacksMixin.java @@ -12,7 +12,7 @@ import java.util.Optional; public class DoubleSliderCallbacksMixin { @Inject(method = "validate", at = @At("HEAD"), cancellable = true) private void allowHighGamma(Double value, CallbackInfoReturnable<Optional<Double>> cir) { - if (ArslaansMagicHaxClient.fullbright.isEnabled()) { + if (ArslaansMagicHaxClient.fullbright.isEnabled() || ArslaansMagicHaxClient.xray.isEnabled()) { cir.setReturnValue(Optional.of(value)); } } 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 e48d9a6..5c95e1e 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 @@ -2,10 +2,13 @@ package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket; import net.minecraft.text.Text; import org.lwjgl.glfw.GLFW; public class Flight extends Module { + private int flyingTickCounter = 0; + public Flight() { super("Flight", "Enables creative flight in survival.", GLFW.GLFW_KEY_G, Category.MOVEMENT); } @@ -22,6 +25,13 @@ public class Flight extends Module { mc.player.getAbilities().allowFlying = true; mc.player.getAbilities().flying = true; + + if (flyingTickCounter >= 20) { + sendYPacket(-0.0625); + sendYPacket(0); + flyingTickCounter = 0; + } + flyingTickCounter++; } @Override @@ -31,4 +41,14 @@ public class Flight extends Module { mc.player.getAbilities().flying = false; } } + + 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/Fullbright.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java index 3085f02..bf72c6a 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Fullbright.java @@ -11,10 +11,10 @@ import net.minecraft.registry.Registries; import java.util.Objects; public class Fullbright extends Module { - private ModeSetting mode = new ModeSetting("Mode", "Gamma", "Effect", "Gamma"); + private ModeSetting mode = new ModeSetting("Mode", "Gamma", "Effect", "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 + private boolean setPreviousGamma = false; public Fullbright() { super("Fullbright", "Brightens up your world!", -1, Category.RENDER); @@ -25,10 +25,10 @@ public class Fullbright extends Module { protected void onEnable() { if (mc.options == null) return; if (Objects.equals(mode.getMode(), "Gamma")) { - previousGamma = mc.options.getGamma().getValue(); + if (!setPreviousGamma) previousGamma = mc.options.getGamma().getValue(); + setPreviousGamma = true; mc.options.getGamma().setValue(1000.0); } - didSetGamma = true; } @Override @@ -36,19 +36,20 @@ public class Fullbright extends Module { 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)); + mc.options.getGamma().setValue(previousGamma); + setPreviousGamma = false; + mc.player.addStatusEffect(new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(StatusEffects.NIGHT_VISION.value()), 1, 255)); } if (Objects.equals(mode.getMode(), "Gamma")) { - if (!didSetGamma) { - previousGamma = mc.options.getGamma().getValue(); - mc.options.getGamma().setValue(1000.0); - didSetGamma = true; - } + if (!setPreviousGamma) previousGamma = mc.options.getGamma().getValue(); + setPreviousGamma = true; + mc.options.getGamma().setValue(1000.0); + } + if (Objects.equals(mode.getMode(), "Effect + Gamma")) { + if (!setPreviousGamma) previousGamma = mc.options.getGamma().getValue(); + setPreviousGamma = true; + mc.options.getGamma().setValue(1000.0); + mc.player.addStatusEffect(new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(StatusEffects.NIGHT_VISION.value()), 1, 255)); } } diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Xray.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Xray.java new file mode 100644 index 0000000..a57c855 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/Xray.java @@ -0,0 +1,82 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Category; +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.minecraft.block.AbstractBlock; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.entity.effect.StatusEffectInstance; +import net.minecraft.entity.effect.StatusEffects; +import net.minecraft.registry.Registries; + +import java.util.ArrayList; +import java.util.List; + +public class Xray extends Module { + private List<BlockState> interestingBlocks = new ArrayList<>(); + private double previousGamma = 1.0; + private boolean setPreviousGamma = false; + + public Xray() { + super("Xray", "Allows you to see through blocks.", -1, Category.RENDER); + + interestingBlocks.add(Blocks.DIAMOND_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_DIAMOND_ORE.getDefaultState()); + interestingBlocks.add(Blocks.GOLD_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_GOLD_ORE.getDefaultState()); + interestingBlocks.add(Blocks.IRON_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_IRON_ORE.getDefaultState()); + interestingBlocks.add(Blocks.REDSTONE_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_REDSTONE_ORE.getDefaultState()); + interestingBlocks.add(Blocks.LAPIS_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_LAPIS_ORE.getDefaultState()); + interestingBlocks.add(Blocks.EMERALD_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_EMERALD_ORE.getDefaultState()); + interestingBlocks.add(Blocks.COAL_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_COAL_ORE.getDefaultState()); + interestingBlocks.add(Blocks.COPPER_ORE.getDefaultState()); + interestingBlocks.add(Blocks.DEEPSLATE_COPPER_ORE.getDefaultState()); + interestingBlocks.add(Blocks.NETHER_QUARTZ_ORE.getDefaultState()); + interestingBlocks.add(Blocks.NETHER_GOLD_ORE.getDefaultState()); + + interestingBlocks.add(Blocks.SPAWNER.getDefaultState()); + interestingBlocks.add(Blocks.CHEST.getDefaultState()); + interestingBlocks.add(Blocks.ANCIENT_DEBRIS.getDefaultState()); + interestingBlocks.add(Blocks.GLOWSTONE.getDefaultState()); + + interestingBlocks.add(Blocks.WATER.getDefaultState()); + interestingBlocks.add(Blocks.LAVA.getDefaultState()); + } + + @Override + protected void onEnable() { + if (mc.worldRenderer == null) return; + + mc.worldRenderer.reload(); + } + + @Override + public void tick() { + if (!this.isEnabled() || mc.player == null || mc.world == null || mc.options == null) return; + + if (!setPreviousGamma) previousGamma = mc.options.getGamma().getValue(); + setPreviousGamma = true; + mc.options.getGamma().setValue(1000.0); + mc.player.addStatusEffect(new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(StatusEffects.NIGHT_VISION.value()), 1, 255)); + } + + @Override + protected void onDisable() { + if (mc.worldRenderer == null || mc.options == null) return; + + mc.worldRenderer.reload(); + mc.options.getGamma().setValue(previousGamma); + setPreviousGamma = false; + } + + public boolean isInterestingBlock(BlockState state) { + return interestingBlocks.contains(state); + } + + // xraying is handled in BlockMixin +} |
