From 0f4b346318d390751a7ce95c372689fe851a1d9c Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Sat, 4 Oct 2025 22:04:05 +1300 Subject: more modules and bug fixes --- .../arslaansmagichax/modules/ModuleManager.java | 36 ++++++++++++++++++++++ .../modules/impl/GhostScaffold.java | 22 +++++++++++++ .../modules/impl/NoAttackCooldown.java | 11 +++++++ 3 files changed, 69 insertions(+) create mode 100644 src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java create mode 100644 src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java (limited to 'src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules') diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java index 2cea608..5a69e0b 100644 --- a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/ModuleManager.java @@ -1,10 +1,20 @@ package net.justlearning.arslaan3102.arslaansmagichax.modules; +import net.fabricmc.fabric.api.client.rendering.v1.HudRenderCallback; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.font.TextRenderer; +import net.minecraft.client.gui.DrawContext; +import net.minecraft.client.render.RenderTickCounter; +import net.minecraft.text.Text; +import net.minecraft.util.math.MathHelper; + import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class ModuleManager { + private boolean hudRegistered = false; + private static List modules = new ArrayList<>(); public static ModuleManager INSTANCE = new ModuleManager(); public void register(Module module) { @@ -24,4 +34,30 @@ public class ModuleManager { module.tick(); } } + + public void registerHUD() { + if (!hudRegistered) { + HudRenderCallback.EVENT.register(this::onRenderHud); + hudRegistered = true; + } + } + + private void onRenderHud(DrawContext drawContext, RenderTickCounter renderTickCounter) { + TextRenderer textRenderer = MinecraftClient.getInstance().textRenderer; + float alpha = 1.0F; + int i = MathHelper.ceil(alpha * 255.0F) << 24; // I don't know what this dark magic is but it works + int x = 5; + int y = 5; + + int titleColor = 16568909 | i; // weird magic + + drawContext.drawTextWithBackground(textRenderer, Text.literal("Arslaan's Magic Hax"), x, y, 50, titleColor); + y += textRenderer.fontHeight + 2; + + for (Module module : ModuleManager.getEnabledModules()) { + int color = 16777215 | i; // more magic I don't understand + drawContext.drawTextWithShadow(textRenderer, Text.literal(module.getName()), x, y, color); + y += textRenderer.fontHeight + 2; + } + } } diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java new file mode 100644 index 0000000..156243e --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/GhostScaffold.java @@ -0,0 +1,22 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; +import net.minecraft.block.BlockState; +import net.minecraft.block.Blocks; +import net.minecraft.util.math.BlockPos; + +public class GhostScaffold extends Module { + public GhostScaffold() { + super("GhostScaffold", "Allows you to scaffold but with ghost blocks"); + } + + @Override + public void tick() { + if (!this.isEnabled() || mc.player == null || mc.world == null) return; + + BlockPos pos = mc.player.getBlockPos().down(); + BlockState blockState = Blocks.STONE.getDefaultState(); + + mc.world.setBlockState(pos, blockState); + } +} diff --git a/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java new file mode 100644 index 0000000..6e36667 --- /dev/null +++ b/src/main/java/net/justlearning/arslaan3102/arslaansmagichax/modules/impl/NoAttackCooldown.java @@ -0,0 +1,11 @@ +package net.justlearning.arslaan3102.arslaansmagichax.modules.impl; + +import net.justlearning.arslaan3102.arslaansmagichax.modules.Module; + +public class NoAttackCooldown extends Module { + public NoAttackCooldown() { + super("NoAttackCooldown", "Removes attack cooldown"); + } + + // removing cooldown handled in PlayerEntityMixin +} -- cgit v1.2.3