From 0fd7ea134461a0794a438ad37c7fa778036954e8 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:29:44 -0500 Subject: [PATCH 1/4] create base module --- .../cigarette/module/skyblock/RedGifter.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 src/main/java/dev/cigarette/module/skyblock/RedGifter.java diff --git a/src/main/java/dev/cigarette/module/skyblock/RedGifter.java b/src/main/java/dev/cigarette/module/skyblock/RedGifter.java new file mode 100644 index 00000000..9bd47291 --- /dev/null +++ b/src/main/java/dev/cigarette/module/skyblock/RedGifter.java @@ -0,0 +1,22 @@ +package dev.cigarette.module.skyblock; + +import dev.cigarette.GameDetector; +import dev.cigarette.gui.widget.ToggleWidget; +import dev.cigarette.module.TickModule; + +public class RedGifter extends TickModule { + public static final RedGifter INSTANCE = new RedGifter("skyblock.redgifter", "Auto Red Gifter", "Automatically gives and opens red gifts."); + + private RedGifter(String id, String name, String tooltip) { + super(ToggleWidget::module, id, name, tooltip); + } + + @Override + protected void onEnabledTick(net.minecraft.client.MinecraftClient client, net.minecraft.client.world.ClientWorld world, net.minecraft.client.network.ClientPlayerEntity player) { + } + + @Override + public boolean inValidGame() { + return GameDetector.rootGame == GameDetector.ParentGame.SKYBLOCK; + } +} From 8c939ad130e197e92b944e89a9fdf091f9fcac55 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Fri, 28 Nov 2025 16:29:51 -0500 Subject: [PATCH 2/4] create skyblock category --- src/main/java/dev/cigarette/config/Config.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/dev/cigarette/config/Config.java b/src/main/java/dev/cigarette/config/Config.java index 7af5c2ef..d97ffd88 100644 --- a/src/main/java/dev/cigarette/config/Config.java +++ b/src/main/java/dev/cigarette/config/Config.java @@ -14,6 +14,7 @@ import dev.cigarette.module.murdermystery.GoldESP; import dev.cigarette.module.murdermystery.PlayerESP; import dev.cigarette.module.render.ProjectileESP; +import dev.cigarette.module.skyblock.RedGifter; import dev.cigarette.module.ui.*; import dev.cigarette.module.zombies.Aimbot; import dev.cigarette.module.zombies.PowerupESP; @@ -74,6 +75,7 @@ public static Config construct() { cfg.putModules("Render", dev.cigarette.module.render.PlayerESP.INSTANCE, ProjectileESP.INSTANCE); cfg.putModules("UI", GUI.INSTANCE, ModuleList.INSTANCE, Notifications.INSTANCE, TargetHUD.INSTANCE, Watermark.INSTANCE); cfg.putModules("Zombies", Aimbot.INSTANCE, PowerupESP.INSTANCE, ReviveAura.INSTANCE, ZombieESP.INSTANCE); + cfg.putModules("Skyblock", RedGifter.INSTANCE); if (Cigarette.IN_DEV_ENVIRONMENT) { cfg.putCategory("Agents", DevWidget.CATEGORY_INSTANCE); } From d55614a4b444abcbdf7693aca354035434180e6f Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Mon, 1 Dec 2025 01:18:50 -0500 Subject: [PATCH 3/4] add automatic gift opening --- .../cigarette/module/skyblock/RedGifter.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/main/java/dev/cigarette/module/skyblock/RedGifter.java b/src/main/java/dev/cigarette/module/skyblock/RedGifter.java index 9bd47291..af224852 100644 --- a/src/main/java/dev/cigarette/module/skyblock/RedGifter.java +++ b/src/main/java/dev/cigarette/module/skyblock/RedGifter.java @@ -2,17 +2,54 @@ import dev.cigarette.GameDetector; import dev.cigarette.gui.widget.ToggleWidget; +import dev.cigarette.lib.PlayerEntityL; +import dev.cigarette.lib.TextL; import dev.cigarette.module.TickModule; +import net.minecraft.entity.Entity; +import net.minecraft.entity.decoration.ArmorStandEntity; +import net.minecraft.text.Text; +import net.minecraft.util.Hand; public class RedGifter extends TickModule { public static final RedGifter INSTANCE = new RedGifter("skyblock.redgifter", "Auto Red Gifter", "Automatically gives and opens red gifts."); + private final ToggleWidget gifter = new ToggleWidget("Run as Gifter", "Automatically gives red gifts to nearby players.").withDefaultState(false); + private final ToggleWidget opener = new ToggleWidget("Run as Opener", "Automatically opens red gifts you receive.").withDefaultState(true); + private RedGifter(String id, String name, String tooltip) { super(ToggleWidget::module, id, name, tooltip); + this.setChildren(gifter, opener); + gifter.registerConfigKey(id + ".asgifter"); + opener.registerConfigKey(id + ".asopener"); + gifter.registerModuleCallback((Boolean state) -> { + if (opener.getRawState() == state) { + opener.setRawState(!state); + } + }); + opener.registerModuleCallback((Boolean state) -> { + if (gifter.getRawState() == state) { + gifter.setRawState(!state); + } + }); } @Override protected void onEnabledTick(net.minecraft.client.MinecraftClient client, net.minecraft.client.world.ClientWorld world, net.minecraft.client.network.ClientPlayerEntity player) { + if (opener.getRawState()) { + for (Entity entity : world.getOtherEntities(player, player.getBoundingBox().expand(4))) { + if (!(entity instanceof ArmorStandEntity armorStand)) continue; + + Text customName = armorStand.getCustomName(); + if (customName == null) continue; + + String name = TextL.toColorCodedString(customName); + if (!name.equals("§r§e§lCLICK TO OPEN")) continue; + + PlayerEntityL.setRotationVector(player, armorStand.getPos().add(0, 1.5, 0).subtract(player.getEyePos())); + if (client.interactionManager != null) client.interactionManager.interactEntity(player, armorStand, Hand.MAIN_HAND); + } + + } } @Override From d96db6e24b331a4f36905e0a472ebaae1f779dd9 Mon Sep 17 00:00:00 2001 From: UndercoverGoose <53491740+UndercoverGoose@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:29:30 -0500 Subject: [PATCH 4/4] update method header --- src/main/java/dev/cigarette/module/skyblock/RedGifter.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/dev/cigarette/module/skyblock/RedGifter.java b/src/main/java/dev/cigarette/module/skyblock/RedGifter.java index af224852..48f45ad4 100644 --- a/src/main/java/dev/cigarette/module/skyblock/RedGifter.java +++ b/src/main/java/dev/cigarette/module/skyblock/RedGifter.java @@ -5,10 +5,14 @@ import dev.cigarette.lib.PlayerEntityL; import dev.cigarette.lib.TextL; import dev.cigarette.module.TickModule; +import net.minecraft.client.MinecraftClient; +import net.minecraft.client.network.ClientPlayerEntity; +import net.minecraft.client.world.ClientWorld; import net.minecraft.entity.Entity; import net.minecraft.entity.decoration.ArmorStandEntity; import net.minecraft.text.Text; import net.minecraft.util.Hand; +import org.jetbrains.annotations.NotNull; public class RedGifter extends TickModule { public static final RedGifter INSTANCE = new RedGifter("skyblock.redgifter", "Auto Red Gifter", "Automatically gives and opens red gifts."); @@ -34,7 +38,7 @@ private RedGifter(String id, String name, String tooltip) { } @Override - protected void onEnabledTick(net.minecraft.client.MinecraftClient client, net.minecraft.client.world.ClientWorld world, net.minecraft.client.network.ClientPlayerEntity player) { + protected void onEnabledTick(@NotNull MinecraftClient client, @NotNull ClientWorld world, @NotNull ClientPlayerEntity player) { if (opener.getRawState()) { for (Entity entity : world.getOtherEntities(player, player.getBoundingBox().expand(4))) { if (!(entity instanceof ArmorStandEntity armorStand)) continue;