1
0
Fork 0
mirror of https://github.com/Miasmusa/Shadow.git synced 2025-04-21 17:00:52 -04:00

yes yes i agree with your statement

This commit is contained in:
0x150 2022-01-07 15:01:19 +01:00
parent 45713942a9
commit 36ae199bb2
65 changed files with 2063 additions and 127 deletions

Binary file not shown.

View file

@ -9,6 +9,11 @@ while [[ true ]]; do
echo $line >> ./src/main/resources/changelogLatest.txt
done
ver=`cat ./src/main/resources/version.txt`
verNew=$((ver+1))
echo "Version: $ver -> $verNew"
echo -n "$verNew" > ./src/main/resources/version.txt
echo "Running build"
export JAVA_HOME="$HOME/.jdks/openjdk-17.0.1/"
./gradlew build

View file

@ -7,6 +7,7 @@ import me.x150.sipprivate.feature.gui.clickgui.element.Element;
import me.x150.sipprivate.feature.gui.clickgui.element.impl.CategoryDisplay;
import me.x150.sipprivate.feature.gui.clickgui.theme.Theme;
import me.x150.sipprivate.feature.gui.clickgui.theme.impl.SipoverV1;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.event.EventType;
import me.x150.sipprivate.helper.event.Events;
@ -20,9 +21,9 @@ import net.minecraft.text.Text;
import net.minecraft.util.math.MathHelper;
import java.awt.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
public class ClickGUI extends Screen implements FastTickable {
public static Theme theme = new SipoverV1();
@ -94,7 +95,7 @@ public class ClickGUI extends Screen implements FastTickable {
double x = 5;
double y = 5;
double tallestInTheRoom = 0;
for (ModuleType value : ModuleType.values()) {
for (ModuleType value : Arrays.stream(ModuleType.values()).sorted(Comparator.comparingLong(value -> -ModuleRegistry.getModules().stream().filter(module -> module.getModuleType() == value).count())).collect(Collectors.toList())) {
CategoryDisplay cd = new CategoryDisplay(x, y, value);
tallestInTheRoom = Math.max(tallestInTheRoom, cd.getHeight());
x += cd.getWidth() + 5;

View file

@ -66,17 +66,15 @@ public class ModuleRegistry {
modules.add(new Velocity());
modules.add(new AntiAntiXray());
modules.add(new PingSpoof());
modules.add(new Nuker());
modules.add(new AutoAttack());
modules.add(new Deadmau5());
modules.add(new SpinAutism());
modules.add(new Spinner());
modules.add(new AllowFormatCodes());
modules.add(new InfChatLength());
modules.add(new NoTitles());
modules.add(new PortalGUI());
modules.add(new Timer());
modules.add(new XCarry());
modules.add(new InstantMine());
modules.add(new AirJump());
modules.add(new AutoElytra());
modules.add(new Blink());
@ -93,6 +91,21 @@ public class ModuleRegistry {
modules.add(new NoLevitation());
modules.add(new NoPush());
modules.add(new Step());
modules.add(new Freecam());
modules.add(new FreeLook());
modules.add(new ItemByteSize());
modules.add(new Zoom());
modules.add(new AutoTool());
modules.add(new BlockTagViewer());
modules.add(new ClickNuke());
modules.add(new FastUse());
modules.add(new Flattener());
modules.add(new GodBridge());
modules.add(new InstantBreak());
modules.add(new MassUse());
modules.add(new NoBreakDelay());
modules.add(new Nuker());
modules.add(new Scaffold());
}
public static List<Module> getModules() {

View file

@ -75,7 +75,7 @@ public class AimAssist extends Module {
Entity le;
public AimAssist() {
super("AimAssist", "Assists in pvp", ModuleType.COMBAT);
super("AimAssist", "Automatically aims at people around you", ModuleType.COMBAT);
attackPlayers.showIf(() -> !aimAtCombatPartner.getValue());
attackHostile.showIf(() -> !aimAtCombatPartner.getValue());
attackNeutral.showIf(() -> !aimAtCombatPartner.getValue());

View file

@ -11,12 +11,12 @@ import net.minecraft.util.hit.EntityHitResult;
public class AutoAttack extends Module {
public AutoAttack() {
super("AutoAttack", "kek", ModuleType.COMBAT);
super("AutoAttack", "Automatically attacks the entity you're looking at", ModuleType.COMBAT);
}
@Override
public void tick() {
if (CoffeeClientMain.client.crosshairTarget == null || !(CoffeeClientMain.client.crosshairTarget instanceof EntityHitResult) || CoffeeClientMain.client.player.getAttackCooldownProgress(0) < 1)
if (!(CoffeeClientMain.client.crosshairTarget instanceof EntityHitResult) || CoffeeClientMain.client.player.getAttackCooldownProgress(0) < 1)
return;
CoffeeClientMain.client.interactionManager.attackEntity(CoffeeClientMain.client.player, ((EntityHitResult) CoffeeClientMain.client.crosshairTarget).getEntity());
CoffeeClientMain.client.player.swingHand(Hand.MAIN_HAND);

View file

@ -27,7 +27,7 @@ public class Criticals extends Module {
.get());
public Criticals() {
super("Criticals", "dont enable this on hypixel", ModuleType.COMBAT);
super("Criticals", "Makes you deal a perfect 10/10 crit every time", ModuleType.COMBAT);
Events.registerEventHandler(EventType.PACKET_SEND, event1 -> {
PacketEvent event = (PacketEvent) event1;
if (CoffeeClientMain.client.player == null || CoffeeClientMain.client.getNetworkHandler() == null) {

View file

@ -126,7 +126,7 @@ public class Killaura extends Module {
List<Entity> attacks = new ArrayList<>();
public Killaura() {
super("Killaura", "anime", ModuleType.COMBAT);
super("Killaura", "Automatically attacks entities around you", ModuleType.COMBAT);
range.showIf(() -> !capRangeAtMax.getValue());
delay.showIf(() -> !automaticDelay.getValue());
multiLimit.showIf(() -> mode.getValue() == SelectMode.Multi && !attackOnlyCombatPartner.getValue());

View file

@ -86,7 +86,7 @@ public class AntiAntiXray extends Module {
BlockPos latestGoal = null;
public AntiAntiXray() {
super("AntiAntiXray", "fuck you antixray i hope you choke on garlic", ModuleType.EXPLOIT);
super("AntiAntiXray", "Bypasses most anti xray plugins", ModuleType.EXPLOIT);
//this.config.createPropGroup("Post", mineBaritone);
}

View file

@ -3,6 +3,7 @@ package me.x150.sipprivate.feature.module.impl.exploit;
import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.config.EnumSetting;
import me.x150.sipprivate.feature.gui.notifications.Notification;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.Rotations;
@ -13,6 +14,7 @@ import me.x150.sipprivate.helper.event.events.MouseEvent;
import me.x150.sipprivate.helper.render.Renderer;
import me.x150.sipprivate.helper.util.Utils;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.projectile.ProjectileUtil;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.nbt.NbtCompound;
@ -23,6 +25,7 @@ import net.minecraft.network.packet.c2s.play.CreativeInventoryActionC2SPacket;
import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.math.*;
import net.minecraft.world.RaycastContext;
@ -57,7 +60,20 @@ public class CarpetBomb extends Module {
});
}
net.minecraft.entity.Entity eTarget = null;
void spawn() {
if (mode.getValue() == Mode.Entity) {
Vec3d goal = CoffeeClientMain.client.player.getRotationVec(1f).multiply(200);
Box b = CoffeeClientMain.client.player.getBoundingBox().stretch(goal).expand(1, 1, 1);
EntityHitResult ehr = ProjectileUtil.raycast(CoffeeClientMain.client.player, CoffeeClientMain.client.player.getCameraPosVec(0), CoffeeClientMain.client.player.getCameraPosVec(0)
.add(goal), b, net.minecraft.entity.Entity::isAttackable, 200 * 200);
if (ehr == null) {
Notification.create(6000, "", true, "You aren't looking at an entity");
return;
}
eTarget = ehr.getEntity();
}
for (int ox = -10; ox < 11; ox++) {
for (int oz = -10; oz < 11; oz++) {
Vec3d off = new Vec3d(ox, oz, 0);
@ -79,6 +95,7 @@ public class CarpetBomb extends Module {
float k = MathHelper.sin(f);
yield new Vec3d(i * j, -k, h * j);
}
case Entity -> new Vec3d(0, 0, 0);
};
Entity e = new Entity(a, rot.normalize().multiply(speed.getValue()));
positions.add(e);
@ -92,16 +109,33 @@ public class CarpetBomb extends Module {
return;
}
spawnTimer.reset();
List<Entity> entities = new ArrayList<>(positions);
if (entities.isEmpty()) {
List<Entity> positionsCopy = new ArrayList<>(positions);
if (positionsCopy.isEmpty()) {
positions.clear();
return;
}
Collections.shuffle(entities);
Entity current = entities.get(0);
entities.remove(0);
Collections.shuffle(positionsCopy);
Entity current = positionsCopy.get(0);
positionsCopy.remove(0);
Vec3d spawnPos = current.position;
Vec3d vel = current.velocity;
if (mode.getValue() == Mode.Entity) {
if (eTarget == null) {
positions = positionsCopy;
return;
}
Vec3d t = eTarget.getPos().add(0, eTarget.getHeight() / 2d, 0);
Vec2f real = Rotations.getPitchYawFromOtherEntity(spawnPos, t);
float f = real.x * 0.017453292F;
float g = -real.y * 0.017453292F;
float h = MathHelper.cos(g);
float i = MathHelper.sin(g);
float j = MathHelper.cos(f);
float k = MathHelper.sin(f);
vel = new Vec3d(i * j, -k, h * j).normalize().multiply(speed.getValue());
}
ItemStack spawnEgg = new ItemStack(Items.BAT_SPAWN_EGG);
NbtCompound entityTag = spawnEgg.getOrCreateSubNbt("EntityTag");
entityTag.put("id", NbtString.of("minecraft:fireball"));
@ -123,7 +157,7 @@ public class CarpetBomb extends Module {
CoffeeClientMain.client.getNetworkHandler().sendPacket(set);
CoffeeClientMain.client.getNetworkHandler().sendPacket(put);
CoffeeClientMain.client.getNetworkHandler().sendPacket(clr);
positions = entities;
positions = positionsCopy;
}
@Override
@ -152,7 +186,6 @@ public class CarpetBomb extends Module {
@Override
public void onWorldRender(MatrixStack matrices) {
if (isDebuggerEnabled()) {
for (Entity position : new ArrayList<>(this.positions)) {
Vec3d p = position.position;
Vec3d r = position.velocity.normalize();
@ -160,6 +193,22 @@ public class CarpetBomb extends Module {
Renderer.R3D.renderLine(p, p.add(r.multiply(5)), Color.RED, matrices);
}
}
if (mode.getValue() == Mode.Entity && eTarget != null && !positions.isEmpty()) {
Vec3d t = Renderer.R2D.getScreenSpaceCoordinate(Utils.getInterpolatedEntityPosition(eTarget).add(0, eTarget.getHeight() / 2d, 0), matrices);
if (Renderer.R2D.isOnScreen(t)) {
Utils.TickManager.runOnNextRender(() -> {
MatrixStack translated = Renderer.R3D.getEmptyMatrixStack();
translated.push();
translated.translate(t.x, t.y, 0);
translated.multiply(new Quaternion(0f, 0f, (System.currentTimeMillis() % 2000) / 2000f * 360f, true));
Renderer.R2D.renderQuad(translated, Color.RED, -.5, -10, .5, 10);
Renderer.R2D.renderQuad(translated, Color.RED, -10, -.5, 10, .5);
translated.pop();
});
}
}
}
@Override
@ -168,7 +217,7 @@ public class CarpetBomb extends Module {
}
public enum Mode {
Relative, Focussed
Relative, Focussed, Entity
}
record Entity(Vec3d position, Vec3d velocity) {

View file

@ -38,7 +38,7 @@ public class PingSpoof extends Module {
.get());
public PingSpoof() {
super("PingSpoof", "spoofs pings", ModuleType.EXPLOIT);
super("PingSpoof", "Tells the server you have extreme network lag", ModuleType.EXPLOIT);
Events.registerEventHandler(EventType.PACKET_SEND, event1 -> {
if (!this.isEnabled()) {
return;

View file

@ -12,7 +12,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class Deadmau5 extends Module {
public Deadmau5() {
super("Deadmau5", "deadmau5 ears for everyone", ModuleType.FUN);
super("Deadmau5", "Shows the Deadmau5 skin ears for every player", ModuleType.FUN);
}
@Override

View file

@ -17,7 +17,7 @@ import net.minecraft.util.Hand;
import java.util.Objects;
public class SpinAutism extends Module {
public class Spinner extends Module {
final double r = 0;
// final SliderValue speed = (SliderValue) this.config.create("Timeout", 5, 0, 100, 0).description("How much to wait between rotations");
@ -30,8 +30,8 @@ public class SpinAutism extends Module {
.get());
int timeout = 0;
public SpinAutism() {
super("SpinAutism", "Spins around like a maniac and throws whatever you have", ModuleType.FUN);
public Spinner() {
super("Spinner", "Spins around like a maniac and throws whatever you have", ModuleType.FUN);
}
@Override

View file

@ -23,7 +23,7 @@ public class Timer extends Module {
.get());
public Timer() {
super("Timer", "changes client side tps", ModuleType.MISC);
super("Timer", "Changes the speed of the game client side", ModuleType.MISC);
}
@Override

View file

@ -11,11 +11,11 @@ import net.minecraft.network.packet.c2s.play.CloseHandledScreenC2SPacket;
public class XCarry extends Module {
public XCarry() {
super("XCarry", "lets you store stuff in your crafting grid", ModuleType.MISC);
super("XCarry", "Allows you to store items in your crafting grid", ModuleType.MISC);
Events.registerEventHandler(EventType.PACKET_SEND, event -> {
if (!this.isEnabled()) return;
PacketEvent pe = (PacketEvent) event;
if (pe.getPacket() instanceof CloseHandledScreenC2SPacket packet) {
if (pe.getPacket() instanceof CloseHandledScreenC2SPacket) {
pe.setCancelled(true);
}
});

View file

@ -13,7 +13,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class AirJump extends Module {
public AirJump() {
super("AirJump", "Jumps in le air", ModuleType.MOVEMENT);
super("AirJump", "Allows you to jump mid air", ModuleType.MOVEMENT);
}
@Override

View file

@ -27,7 +27,7 @@ public class Blink extends Module {
.get());
public Blink() {
super("Blink", "confuses chinese anticheats", ModuleType.MOVEMENT);
super("Blink", "Delay or cancel outgoing packets", ModuleType.MOVEMENT);
Events.registerEventHandler(EventType.PACKET_SEND, event1 -> {
if (!this.isEnabled()) {
return;

View file

@ -30,7 +30,7 @@ public class Boost extends Module {
.get());
public Boost() {
super("Boost", "rocket", ModuleType.MOVEMENT);
super("Boost", "Boosts you into the air", ModuleType.MOVEMENT);
}
@Override

View file

@ -24,7 +24,7 @@ public class EntityFly extends Module {
Entity lastRide = null;
public EntityFly() {
super("EntityFly", "boatfly but yes", ModuleType.MOVEMENT);
super("EntityFly", "Allows you to fly with any entity", ModuleType.MOVEMENT);
}
@Override
@ -73,7 +73,11 @@ public class EntityFly extends Module {
nz += ts * mx * -s;
Vec3d nv3 = new Vec3d(nx, ny, nz);
entityPos = entityPos.add(nv3.multiply(0.4));
vehicle.updatePosition(entityPos.x, entityPos.y, entityPos.z);
boolean isOnGround = CoffeeClientMain.client.world.getBlockState(vehicle.getBlockPos().down()).getMaterial().blocksMovement();
double off = Math.random() / 5;
if (isOnGround) off /= 2;
else off -= 0.1;
vehicle.updatePosition(entityPos.x, entityPos.y + off, entityPos.z); // vanilla bypass
vehicle.setVelocity(0, 0, 0);
vehicle.setYaw(client.player.getYaw());
VehicleMoveC2SPacket p = new VehicleMoveC2SPacket(vehicle);

View file

@ -10,7 +10,7 @@ public class Hyperspeed extends Module {
public DoubleSetting speed = this.config.create(new DoubleSetting.Builder(3).name("Speed").description("The speed multiplier to apply").min(1).max(10).precision(3).get());
public Hyperspeed() {
super("Hyperspeed", "Makes you go weee extemely fast", ModuleType.MOVEMENT);
super("Hyperspeed", "Gives you an extreme speed boost", ModuleType.MOVEMENT);
}
@Override

View file

@ -12,7 +12,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class IgnoreWorldBorder extends Module {
public IgnoreWorldBorder() {
super("IgnoreWorldBorder", "fuck you worldborder", ModuleType.MOVEMENT);
super("IgnoreWorldBorder", "Lets you move through the worldborder", ModuleType.MOVEMENT);
}
@Override

View file

@ -12,7 +12,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class InventoryWalk extends Module {
public InventoryWalk() {
super("InventoryWalk", "walks while inventory is open", ModuleType.MOVEMENT);
super("InventoryWalk", "Allows you to walk with an open inventory", ModuleType.MOVEMENT);
}
@Override

View file

@ -32,7 +32,7 @@ public class Jesus extends Module {
.get());
public Jesus() {
super("Jesus", "water is no enemy anymore", ModuleType.MOVEMENT);
super("Jesus", "Allows you to walk on water", ModuleType.MOVEMENT);
// mode = this.config.create("Mode", "solid", "jump", "velocity", "solid", "legit");
// mode.description("The mode of the module");
velStrength.showIf(() -> mode.getValue() == Mode.Velocity);

View file

@ -54,7 +54,7 @@ public class LongJump extends Module {
boolean jumped = false;
public LongJump() {
super("LongJump", "Jumps a long distance", ModuleType.MOVEMENT);
super("LongJump", "Jumps for a longer distance", ModuleType.MOVEMENT);
glideVelocity.showIf(glide::getValue);
applyStrength.showIf(keepApplying::getValue);
}

View file

@ -13,7 +13,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class MoonGravity extends Module {
public MoonGravity() {
super("MoonGravity", "what would you do if you'd be on the moon?", ModuleType.MOVEMENT);
super("MoonGravity", "Imitates gravity on the moon", ModuleType.MOVEMENT);
}
@Override

View file

@ -35,7 +35,7 @@ public class NoFall extends Module {
.get());
public NoFall() {
super("NoFall", "no fall damage", ModuleType.MOVEMENT);
super("NoFall", "Prevents fall damage", ModuleType.MOVEMENT);
// mode = this.config.create("Mode", "OnGround", "OnGround", "Packet", "BreakFall");
// mode.description("The mode of the module");

View file

@ -14,7 +14,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class NoJumpCooldown extends Module {
public NoJumpCooldown() {
super("NoJumpCool", "hold it and jump beneath a 2 block space to confuse chinese anticheats", ModuleType.MOVEMENT);
super("NoJumpCool", "Removes the jump cooldown", ModuleType.MOVEMENT);
}
@Override

View file

@ -12,7 +12,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class NoLevitation extends Module {
public NoLevitation() {
super("NoLevitation", "Dont care, keep malding", ModuleType.MOVEMENT);
super("NoLevitation", "Prevents the levitation effect from working", ModuleType.MOVEMENT);
}
@Override

View file

@ -12,7 +12,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class NoPush extends Module {
public NoPush() {
super("NoPush", "be a rock", ModuleType.MOVEMENT);
super("NoPush", "Prevents other entities from pushing you around", ModuleType.MOVEMENT);
}
@Override

View file

@ -13,7 +13,7 @@ import net.minecraft.client.util.math.MatrixStack;
public class Sprint extends Module {
public Sprint() {
super("Sprint", "togglesprint for jewish people", ModuleType.MOVEMENT);
super("Sprint", "Always sprints when you walk", ModuleType.MOVEMENT);
}
@Override

View file

@ -23,7 +23,7 @@ public class Step extends Module {
.get());
public Step() {
super("Step", "spiders would like to learn this power", ModuleType.MOVEMENT);
super("Step", "Allows you to step up full blocks", ModuleType.MOVEMENT);
}
@Override

View file

@ -22,11 +22,10 @@ import java.awt.*;
public class Swing extends Module {
static BlockPos swinging;
static int t = 0;
public Swing() {
super("Swing", "swing around like an unnamed spider from comic books", ModuleType.MOVEMENT);
super("Swing", "Swing around like spiderman", ModuleType.MOVEMENT);
Events.registerEventHandler(EventType.MOUSE_EVENT, event -> {
if (!this.isEnabled() || CoffeeClientMain.client.currentScreen != null) {
return;

View file

@ -32,7 +32,7 @@ public class ESP extends Module {
DoubleSetting range = this.config.create(new DoubleSetting.Builder(64).name("Range").description("How far to render the entities").min(32).max(128).precision(1).get());
public ESP() {
super("ESP", "shows where shit is but its the walmart version", ModuleType.RENDER);
super("ESP", "Shows where entities are", ModuleType.RENDER);
}
@Override

View file

@ -0,0 +1,164 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.render;
import me.x150.sipprivate.feature.config.BooleanSetting;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.config.EnumSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.Keybind;
import me.x150.sipprivate.helper.Rotations;
import net.minecraft.client.option.Perspective;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.util.math.MathHelper;
import java.util.Objects;
public class FreeLook extends Module {
public float newyaw, newpitch, oldyaw, oldpitch;
// final BooleanValue hold = (BooleanValue) this.config.create("Hold", true).description("Whether or not to disable the module when the keybind is unpressed");
// final BooleanValue enableAA = (BooleanValue) this.config.create("Enable Anti-Aim", false).description("hvh toggle rage nn noob");
// final MultiValue aaMode = this.config.create("AA mode", "Spin", "Spin", "Jitter", "Sway");
// final SliderValue aaSpeed = this.config.create("Anti-Aim Speed", 1f, 0.1f, 6f, 1);
// final SliderValue jitterRange = this.config.create("Jitter Range", 90, 15, 90, 0);
// final SliderValue swayRange = this.config.create("Sway Range", 45, 15, 60, 0);
BooleanSetting hold = this.config.create(new BooleanSetting.Builder(true)
.name("Hold")
.description("Disables the module after you unpress the keybind")
.get());
BooleanSetting enableAA = this.config.create(new BooleanSetting.Builder(false)
.name("Enable Anti-Aim")
.description("Hvh toggle rage nn noob")
.get());
EnumSetting<AntiAimMode> aaMode = this.config.create(new EnumSetting.Builder<>(AntiAimMode.Spin)
.name("AA Mode")
.description("How to aim")
.get());
DoubleSetting aaSpeed = this.config.create(new DoubleSetting.Builder(1)
.name("AA Speed")
.description("How fast to aim")
.min(0.1)
.max(6)
.precision(1)
.get());
DoubleSetting jitterRange = this.config.create(new DoubleSetting.Builder(90)
.name("Jitter range")
.description("How far to jitter")
.min(15)
.max(90)
.precision(0)
.get());
DoubleSetting swayRange = this.config.create(new DoubleSetting.Builder(45)
.name("Sway range")
.description("How far to sway")
.min(15)
.max(60)
.precision(0)
.get());
Perspective before = Perspective.FIRST_PERSON;
Keybind kb;
int jittertimer = 0;
int swayYaw = 0;
public FreeLook() {
super("FreeLook", "The lunar freelook but without the restrictions", ModuleType.RENDER);
aaMode.showIf(enableAA::getValue);
aaSpeed.showIf(() -> aaMode.getValue() != AntiAimMode.Jitter && enableAA.getValue());
jitterRange.showIf(() -> aaMode.getValue() == AntiAimMode.Jitter && enableAA.getValue());
swayRange.showIf(() -> aaMode.getValue() == AntiAimMode.Sway && enableAA.getValue());
}
@Override
public void tick() {
if (kb == null) {
return;
}
if (!kb.isPressed() && hold.getValue()) {
this.setEnabled(false);
}
Rotations.setClientPitch(newpitch);
Rotations.setClientYaw(newyaw);
}
@Override
public void enable() {
kb = new Keybind((int) (keybind.getValue() + 0));
before = client.options.getPerspective();
oldyaw = Objects.requireNonNull(client.player).getYaw();
oldpitch = client.player.getPitch();
newyaw = client.player.getYaw();
if (enableAA.getValue()) {
newpitch = 90;
} else {
newpitch = client.player.getPitch();
}
}
@Override
public void disable() {
client.options.setPerspective(before);
Objects.requireNonNull(client.player).setYaw(oldyaw);
client.player.setPitch(oldpitch);
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
client.options.setPerspective(Perspective.THIRD_PERSON_BACK);
}
@Override
public void onHudRender() {
}
@Override
public void onFastTick() {
if (!enableAA.getValue()) {
return;
}
switch (aaMode.getValue()) {
case Spin -> newyaw = (float) MathHelper.wrapDegrees(newyaw + aaSpeed.getValue());
case Jitter -> {
int temp = (int) (jitterRange.getValue() + 0);
if (jittertimer == 1) {
temp *= -1;
}
if (jittertimer >= 1) {
jittertimer = -1;
}
jittertimer++;
newyaw = MathHelper.wrapDegrees(client.player.getYaw() + 180 + temp);
}
case Sway -> {
int temp = swayYaw;
if (temp >= swayRange.getValue() * 2) {
temp = (int) (swayRange.getValue() + 0) - (swayYaw - (int) (swayRange.getValue() * 2));
} else {
temp = (int) (swayRange.getValue() * -1) + swayYaw;
}
if (swayYaw >= swayRange.getValue() * 4) {
swayYaw = 0;
}
swayYaw += aaSpeed.getValue();
newyaw = MathHelper.wrapDegrees(client.player.getYaw() + 180 + temp);
}
}
Objects.requireNonNull(client.getNetworkHandler()).sendPacket(new PlayerMoveC2SPacket.LookAndOnGround(newyaw, newpitch, Objects.requireNonNull(client.player).isOnGround()));
}
public enum AntiAimMode {
Spin, Jitter, Sway
}
}

View file

@ -0,0 +1,107 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.render;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.event.EventType;
import me.x150.sipprivate.helper.event.Events;
import me.x150.sipprivate.helper.event.events.PacketEvent;
import me.x150.sipprivate.helper.event.events.PlayerNoClipQueryEvent;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.EntityPose;
import net.minecraft.network.packet.c2s.play.PlayerInputC2SPacket;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.util.math.Vec3d;
import java.util.Objects;
public class Freecam extends Module {
// final SliderValue speed = (SliderValue) this.config.create("Speed", 1, 0, 10, 1).description("The speed to fly with");
DoubleSetting speed = this.config.create(new DoubleSetting.Builder(1)
.name("Speed")
.description("The speed to fly with")
.min(0)
.max(10)
.precision(1)
.get());
Vec3d startloc;
float pitch = 0f;
float yaw = 0f;
boolean flewBefore;
public Freecam() {
super("Freecam", "Imitates spectator without you having permission to use it", ModuleType.RENDER);
Events.registerEventHandler(EventType.PACKET_SEND, event1 -> {
if (!this.isEnabled()) {
return;
}
PacketEvent event = (PacketEvent) event1;
if (event.getPacket() instanceof PlayerMoveC2SPacket) {
event.setCancelled(true);
}
if (event.getPacket() instanceof PlayerInputC2SPacket) {
event.setCancelled(true);
}
});
Events.registerEventHandler(EventType.NOCLIP_QUERY, event -> {
if (!this.isEnabled() || ((PlayerNoClipQueryEvent) event).getPlayer().isOnGround()) {
return;
}
((PlayerNoClipQueryEvent) event).setNoClipState(PlayerNoClipQueryEvent.NoClipState.ACTIVE);
});
}
@Override
public void tick() {
Objects.requireNonNull(client.player).getAbilities().setFlySpeed((float) (this.speed.getValue() + 0f) / 20f);
client.player.getAbilities().flying = true;
}
@Override
public void enable() {
startloc = Objects.requireNonNull(client.player).getPos();
pitch = client.player.getPitch();
yaw = client.player.getYaw();
client.gameRenderer.setRenderHand(false);
flewBefore = client.player.getAbilities().flying;
client.player.setOnGround(false);
}
@Override
public void disable() {
if (startloc != null) {
Objects.requireNonNull(client.player).updatePosition(startloc.x, startloc.y, startloc.z);
}
startloc = null;
Objects.requireNonNull(client.player).setYaw(yaw);
client.player.setPitch(pitch);
yaw = pitch = 0f;
client.gameRenderer.setRenderHand(true);
client.player.getAbilities().flying = flewBefore;
client.player.getAbilities().setFlySpeed(0.05f);
client.player.setVelocity(0, 0, 0);
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
Objects.requireNonNull(client.player).setSwimming(false);
client.player.setPose(EntityPose.STANDING);
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,85 @@
package me.x150.sipprivate.feature.module.impl.render;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.ByteCounter;
import me.x150.sipprivate.helper.event.EventType;
import me.x150.sipprivate.helper.event.Events;
import me.x150.sipprivate.helper.event.events.LoreQueryEvent;
import net.minecraft.client.util.math.MatrixStack;
import java.text.StringCharacterIterator;
public class ItemByteSize extends Module {
public ItemByteSize() {
super("ItemByteSize", "Shows the size of an item in bytes on the tooltip", ModuleType.RENDER);
Events.registerEventHandler(EventType.LORE_QUERY, event -> {
if (!this.isEnabled()) {
return;
}
LoreQueryEvent e = (LoreQueryEvent) event;
ByteCounter inst = ByteCounter.instance();
inst.reset();
boolean error = false;
try {
e.getSource().getOrCreateNbt().write(inst);
} catch (Exception ignored) {
error = true;
}
long count = inst.getSize();
String fmt;
if (error) {
fmt = "§cError";
} else {
fmt = humanReadableByteCountBin(count);
}
e.addClientLore("Size: " + fmt);
});
}
public static String humanReadableByteCountBin(long bytes) {
long absB = bytes == Long.MIN_VALUE ? Long.MAX_VALUE : Math.abs(bytes);
if (absB < 1024) {
return bytes + " B";
}
long value = absB;
StringCharacterIterator ci = new StringCharacterIterator("KMGTPE");
for (int i = 40; i >= 0 && absB > 0xfffccccccccccccL >> i; i -= 10) {
value >>= 10;
ci.next();
}
value *= Long.signum(bytes);
return String.format("%.1f %ciB", value / 1024.0, ci.current());
}
@Override
public void tick() {
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -30,7 +30,7 @@ public class Tracers extends Module {
BooleanSetting players = this.config.create(new BooleanSetting.Builder(true).name("Show players").description("Render players").get());
public Tracers() {
super("Tracers", "shows where shit is", ModuleType.RENDER);
super("Tracers", "Shows where entities are in relation to you", ModuleType.RENDER);
}
@Override

View file

@ -0,0 +1,99 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.render;
import me.x150.sipprivate.feature.config.BooleanSetting;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.Keybind;
import me.x150.sipprivate.helper.render.Renderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.math.MathHelper;
import java.util.Objects;
public class Zoom extends Module {
static long enabledTime = 0;
// SliderValue finalFov;
// final BooleanValue hold = (BooleanValue) this.config.create("Hold", true).description("Whether or not to disable the module when the keybind is unpressed");
DoubleSetting finalFov = this.config.create(new DoubleSetting.Builder(30)
.name("FOV")
.description("How far to zoom in")
.min(1)
.max(180)
.precision(0)
.get());
BooleanSetting hold = this.config.create(new BooleanSetting.Builder(true)
.name("Hold")
.description("Disables the module when you unpress the keybind")
.get());
Keybind kb;
double msens = 0.5d;
public Zoom() {
super("Zoom", "Imitates the spyglass with more options", ModuleType.RENDER);
// finalFov = (SliderValue) this.config.create("Fov", 30, 1, 180, 0).description("The FOV to zoom into");
}
static double easeOutBounce(double x) {
return x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2;
}
public double getZoomValue(double vanilla) {
long enabledFor = System.currentTimeMillis() - enabledTime;
double prog = MathHelper.clamp(enabledFor / 100d, 0, 1);
if (!Objects.requireNonNull(ModuleRegistry.getByClass(Zoom.class)).isEnabled()) {
prog = Math.abs(1 - prog);
}
prog = easeOutBounce(prog);
return Renderer.Util.lerp(vanilla, finalFov.getValue(), prog);
}
@Override
public void tick() {
if (kb == null) {
return;
}
if (!kb.isPressed() && hold.getValue()) {
this.setEnabled(false);
}
}
@Override
public void enable() {
msens = client.options.mouseSensitivity;
client.options.mouseSensitivity = msens * (finalFov.getValue() / client.options.fov);
// retard the keybind thing is always an int shut the fuck up
kb = new Keybind((int) (keybind.getValue() + 0));
enabledTime = System.currentTimeMillis();
}
@Override
public void disable() {
enabledTime = System.currentTimeMillis();
client.options.mouseSensitivity = msens;
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,84 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.mixin.IClientPlayerInteractionManagerAccessor;
import net.minecraft.block.BlockState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockPos;
import java.util.Objects;
public class AutoTool extends Module {
public AutoTool() {
super("AutoTool", "Automatically selects the best tool for the job", ModuleType.WORLD);
}
public static void pick(BlockState state) {
float best = 1f;
int index = -1;
int optAirIndex = -1;
for (int i = 0; i < 9; i++) {
ItemStack stack = Objects.requireNonNull(client.player).getInventory().getStack(i);
if (stack.getItem() == Items.AIR) {
optAirIndex = i;
}
float s = stack.getMiningSpeedMultiplier(state);
if (s > best) {
index = i;
}
}
if (index != -1) {
client.player.getInventory().selectedSlot = index;
} else {
if (optAirIndex != -1) {
client.player.getInventory().selectedSlot = optAirIndex; // to prevent tools from getting damaged by accident, switch to air if we didn't find anything
}
}
}
@Override
public void tick() {
if (Objects.requireNonNull(client.interactionManager).isBreakingBlock() && !Objects.requireNonNull(ModuleRegistry.getByClass(Nuker.class))
.isEnabled()) {
BlockPos breaking = ((IClientPlayerInteractionManagerAccessor) client.interactionManager).getCurrentBreakingPos();
BlockState bs = Objects.requireNonNull(client.world).getBlockState(breaking);
pick(bs);
}
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,149 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.font.FontRenderers;
import me.x150.sipprivate.helper.render.CustomColor;
import me.x150.sipprivate.helper.render.Renderer;
import me.x150.sipprivate.helper.util.Transitions;
import net.minecraft.block.BlockState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.state.property.Property;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
public class BlockTagViewer extends Module {
List<Entry> entries = new ArrayList<>();
float mw = 0;
public BlockTagViewer() {
super("BlockTagViewer", "Shows data about the viewed block", ModuleType.WORLD);
}
@Override
public void tick() {
HitResult hr = client.crosshairTarget;
if (hr instanceof BlockHitResult bhr) {
BlockPos bp = bhr.getBlockPos();
BlockState state = Objects.requireNonNull(client.world).getBlockState(bp);
List<String> c = new ArrayList<>();
for (Property<?> property : state.getProperties()) {
String v = property.getName() + ": " + state.get(property).toString();
c.add(v);
}
for (String s : c) {
if (entries.stream().noneMatch(entry -> entry.v.equalsIgnoreCase(s))) {
entries.add(new Entry(s));
}
}
for (Entry entry : new ArrayList<>(entries)) {
if (c.stream().noneMatch(entry.v::equals)) {
entry.removed = true;
}
}
}
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onFastTick() {
for (Entry entry : new ArrayList<>(entries)) {
double c = 0.05;
if (entry.removed) {
c *= -1;
}
entry.animProg += c;
entry.animProg = MathHelper.clamp(entry.animProg, 0, 1);
if (entry.animProg == 0 && entry.removed) {
entries.remove(entry);
}
}
}
double e(double x) {
return x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2;
}
@Override
public void onHudRender() {
List<Entry> l = new ArrayList<>(entries);
l.sort(Comparator.comparingDouble(value -> -FontRenderers.getMono().getStringWidth(value.v)));
entries = l;
if (l.isEmpty()) {
return;
}
float w = client.getWindow().getScaledWidth() / 2f;
float h = client.getWindow().getScaledHeight() / 2f;
MatrixStack s = new MatrixStack();
s.push();
s.translate(w, h, 0);
float r = 0;
for (Entry entry : l) {
if (!entry.removed) {
r = FontRenderers.getMono().getStringWidth(entry.v) + 4;
break;
}
}
mw = (float) Transitions.transition(mw, r, 7);
float height = 0;
for (Entry entry : l.toArray(new Entry[0])) {
height += 10 * e(entry.animProg);
}
s.translate(0, -height, 0);
for (Entry entry : l.toArray(new Entry[0])) {
s.push();
double prog = e(entry.animProg);
double c = prog * (FontRenderers.getMono().getMarginHeight() + 1);
s.scale(1, (float) prog, 1);
Renderer.R2D.renderQuad(s, new CustomColor(0, 0, 0, (int) (prog * 100)), 0, 0, mw, FontRenderers.getMono().getMarginHeight() + 1);
FontRenderers.getMono().drawString(s, entry.v, 1, 0.5f, new CustomColor(255, 255, 255, (int) (prog * 255)).getRGB());
s.pop();
s.translate(0, c, 0);
}
s.pop();
}
static class Entry {
public final String v;
public double animProg = 0;
public boolean removed = false;
public Entry(String v) {
this.v = v;
}
}
}

View file

@ -44,7 +44,7 @@ public class Boom extends Module {
long lastFired = 0L;
public Boom() {
super("Boom", "Spawns fireballs whereever you click", ModuleType.WORLD);
super("Boom", "Spawns fireballs wherever you click", ModuleType.WORLD);
Events.registerEventHandler(EventType.MOUSE_EVENT, event -> {
if (!this.isEnabled() || CoffeeClientMain.client.currentScreen != null) {
return;

View file

@ -0,0 +1,120 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.config.BooleanSetting;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.event.EventType;
import me.x150.sipprivate.helper.event.Events;
import me.x150.sipprivate.helper.event.events.MouseEvent;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
import java.util.Objects;
public class ClickNuke extends Module {
// final SliderValue rangeX = (SliderValue) this.config.create("Range X", 5, 1, 10, 0).description("How big the affected radius should be in the X dimension");
// final SliderValue rangeZ = (SliderValue) this.config.create("Range Z", 5, 1, 10, 0).description("How big the affected radius should be in the Z dimension");
// final SliderValue rangeY = (SliderValue) this.config.create("Range Y", 5, 1, 10, 0).description("How big the affected radius should be in the Y dimension");
// final BooleanValue destroy = (BooleanValue) this.config.create("Destroy particles", false).description("Makes particles appear when a block gets destroyed");
DoubleSetting rangeX = this.config.create(new DoubleSetting.Builder(5)
.name("Range X")
.description("How big of an area to fill in the X direction")
.min(1)
.max(10)
.precision(0)
.get());
DoubleSetting rangeY = this.config.create(new DoubleSetting.Builder(5)
.name("Range Y")
.description("How big of an area to fill in the Y direction")
.min(1)
.max(10)
.precision(0)
.get());
DoubleSetting rangeZ = this.config.create(new DoubleSetting.Builder(5)
.name("Range Z")
.description("How big of an area to fill in the Z direction")
.min(1)
.max(10)
.precision(0)
.get());
BooleanSetting destroy = this.config.create(new BooleanSetting.Builder(false)
.name("Destroy particles")
.description("makes the block breaking particles appear")
.get());
public ClickNuke() {
super("ClickNuke", "Nukes whatever you click at, requires /fill permissions", ModuleType.WORLD);
Events.registerEventHandler(EventType.MOUSE_EVENT, event -> {
if (!this.isEnabled()) {
return;
}
if (client.player == null) {
return;
}
MouseEvent event1 = (MouseEvent) event;
if (event1.getButton() == 0 && event1.getAction() == 1) {
mousePressed();
}
});
}
void mousePressed() {
if (client.currentScreen != null) {
return;
}
HitResult hr = Objects.requireNonNull(client.player).raycast(200d, 0f, true);
Vec3d pos1 = hr.getPos();
BlockPos pos = new BlockPos(pos1);
int startY = MathHelper.clamp(r(pos.getY() - rangeY.getValue()), CoffeeClientMain.client.world.getBottomY(), CoffeeClientMain.client.world.getTopY());
int endY = MathHelper.clamp(r(pos.getY() + rangeY.getValue()), CoffeeClientMain.client.world.getBottomY(), CoffeeClientMain.client.world.getTopY());
String cmd = "/fill " + r(pos.getX() - rangeX.getValue()) + " " + startY + " " + r(pos.getZ() - rangeZ.getValue()) + " " + r(pos.getX() + rangeX.getValue()) + " " + endY + " " + r(pos.getZ() + rangeZ.getValue()) + " " + "minecraft:air" + (destroy.getValue() ? " destroy" : "");
System.out.println(cmd);
client.player.sendChatMessage(cmd);
}
int r(double v) {
return (int) Math.round(v);
}
@Override
public void tick() {
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,48 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import net.minecraft.client.util.math.MatrixStack;
public class FastUse extends Module {
public FastUse() {
super("FastUse", "Removes the use delay", ModuleType.WORLD);
}
@Override
public void tick() {
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,173 @@
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.config.BooleanSetting;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.Rotations;
import me.x150.sipprivate.helper.render.Renderer;
import me.x150.sipprivate.helper.util.Utils;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.BlockItem;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import java.awt.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Flattener extends Module {
final List<RenderEntry> renders = new ArrayList<>();
final double range = 8;
// final BooleanValue makeSame = (BooleanValue) this.config.create("Make same", false).description("Make the floor the block you're holding, no matter what.");
// final BooleanValue asyncPlaceBreak = (BooleanValue) this.config.create("Async place / break", true).description("Whether or not to place blocks and break them at the same time");
// final BooleanValue breakSides = (BooleanValue) this.config.create("Break sides", true).description("Whether or not to clear the area so you can walk on it");
// final SliderValue amountPerTick = (SliderValue) this.config.create("Amount Per Tick", 3, 1, 20, 0).description("How many actions to do / tick");
BooleanSetting makeSame = this.config.create(new BooleanSetting.Builder(false)
.name("Make same")
.description("Makes the floor the same material you're holding")
.get());
BooleanSetting asyncPlaceBreak = this.config.create(new BooleanSetting.Builder(true)
.name("Async place / break")
.description("Does block breaking and placing at the same time")
.get());
BooleanSetting breakSides = this.config.create(new BooleanSetting.Builder(true)
.name("Break sides")
.description("Clears the area 3 blocks up so you can walk into it")
.get());
DoubleSetting amountPerTick = this.config.create(new DoubleSetting.Builder(3)
.name("Amount per tick")
.description("How many actions to do per tick")
.min(1)
.max(20)
.precision(0)
.get());
Vec3d origin = null;
int prevSlot = -1;
boolean toBreakEmptyBefore = false;
public Flattener() {
super("Flattener", "Makes everything around you flat, good for making a floor or base", ModuleType.WORLD);
}
@Override
public void tick() {
Vec3d eyep = client.player.getEyePos();
double rangeMid = range / 2d;
List<BlockPos> toPlace = new ArrayList<>();
List<BlockPos> toBreak = new ArrayList<>();
Block inHand = null;
if (client.player.getInventory().getStack(prevSlot).getItem() instanceof BlockItem e) {
inHand = e.getBlock();
}
for (double x = -rangeMid; x < rangeMid + 1; x++) {
for (double z = -rangeMid; z < rangeMid + 1; z++) {
Vec3d offset = eyep.add(x, 0, z);
Vec3d actual = new Vec3d(offset.x + .5, origin.y - .5, offset.z + .5);
if (actual.distanceTo(eyep) > client.interactionManager.getReachDistance()) {
continue;
}
BlockPos c = new BlockPos(actual);
BlockState state = client.world.getBlockState(c);
if (state.getMaterial().isReplaceable()) {
toPlace.add(c);
}
if (makeSame.getValue() && inHand != null && !state.isAir() && state.getBlock() != inHand && state.getBlock().getHardness() > 0) {
toBreak.add(c);
}
if (breakSides.getValue()) {
for (int y = 1; y < 4; y++) {
BlockState real = client.world.getBlockState(c.add(0, y, 0));
if (!real.isAir() && real.getBlock().getHardness() > 0 && real.getBlock() != Blocks.WATER && real.getBlock() != Blocks.LAVA) {
toBreak.add(c.add(0, y, 0));
}
}
}
}
}
toPlace.sort(Comparator.comparingDouble(value -> Vec3d.of(value).add(.5, .5, .5).distanceTo(eyep)));
toBreak.sort(Comparator.comparingDouble(value -> Vec3d.of(value).add(.5, .5, .5).distanceTo(eyep)));
renders.clear();
if (!toBreak.isEmpty() && toBreakEmptyBefore) {
prevSlot = client.player.getInventory().selectedSlot;
toBreakEmptyBefore = false;
}
int done = 0;
for (BlockPos blockPos : toBreak) {
BlockState bs = client.world.getBlockState(blockPos);
if (ModuleRegistry.getByClass(AutoTool.class).isEnabled()) {
AutoTool.pick(bs);
}
Rotations.lookAtV3(Vec3d.of(blockPos).add(.5, .5, .5));
client.interactionManager.updateBlockBreakingProgress(blockPos, Direction.DOWN);
renders.add(new RenderEntry(blockPos, new Vec3d(1, 1, 1), new Color(31, 232, 148, 70)));
done++;
if (done > amountPerTick.getValue()) {
if (!asyncPlaceBreak.getValue()) {
return;
} else {
break;
}
}
}
done = 0;
if (!toBreakEmptyBefore) {
toBreakEmptyBefore = true;
client.player.getInventory().selectedSlot = prevSlot;
}
for (BlockPos blockPos : toPlace) {
if (client.player.getInventory().getMainHandStack().getItem() instanceof BlockItem) {
renders.add(new RenderEntry(blockPos.up(), new Vec3d(1, -0.01, 1), Utils.getCurrentRGB()));
Vec3d actual = Vec3d.of(blockPos).add(.5, .5, .5);
Rotations.lookAtV3(actual);
client.interactionManager.interactBlock(client.player, client.world, Hand.MAIN_HAND, new BlockHitResult(actual, Direction.DOWN, blockPos, false));
}
done++;
if (done > amountPerTick.getValue()) {
break;
}
}
}
@Override
public void enable() {
origin = client.player.getPos();
prevSlot = client.player.getInventory().selectedSlot;
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
for (RenderEntry render : renders) {
Renderer.R3D.renderFilled(Vec3d.of(render.pos()), render.dimensions(), render.color(), matrices);
}
}
@Override
public void onHudRender() {
}
record RenderEntry(BlockPos pos, Vec3d dimensions, Color color) {
}
}

View file

@ -0,0 +1,115 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.config.BooleanSetting;
import me.x150.sipprivate.feature.gui.notifications.Notification;
import me.x150.sipprivate.feature.gui.notifications.NotificationRenderer;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import java.util.Arrays;
import java.util.Objects;
public class GodBridge extends Module {
final float mOffset = 0.20f;
final Direction[] allowedSides = new Direction[]{Direction.NORTH, Direction.EAST, Direction.SOUTH, Direction.WEST};
// final BooleanValue courseCorrect = (BooleanValue) this.config.create("Course correct", true).description("Prevent you from falling off the track by accident");
BooleanSetting courseCorrect = this.config.create(new BooleanSetting.Builder(true)
.name("Course correct")
.description("Prevents you from accidentally falling off a side of the bridge")
.get());
Notification isReady = null;
public GodBridge() {
super("GodBridge", "Automatically makes you look like a badass", ModuleType.WORLD);
}
boolean isReady() {
return Objects.requireNonNull(client.player).getPitch() > 82;
}
@Override
public void tick() {
// Notification.create(5000, "GodBridge", "Look down, as you would normally while godbridging to start");
if (!isReady()) {
if (isReady == null) {
isReady = Notification.create(-1, "GodBridge", true, "Look down, as you would normally while godbridging to start");
}
} else {
if (isReady != null) {
isReady.duration = 0;
}
}
if (!NotificationRenderer.topBarNotifications.contains(isReady)) {
isReady = null;
}
}
@Override
public void enable() {
}
@Override
public void disable() {
if (isReady != null) {
isReady.duration = 0;
}
}
@Override
public String getContext() {
return isReady() ? "Ready" : "Not ready";
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
@Override
public void onFastTick() {
if (!isReady()) {
return;
}
Objects.requireNonNull(client.player).setYaw(client.player.getMovementDirection().asRotation());
if (client.player.getPitch() > 83) {
client.player.setPitch(82.5f);
}
HitResult hr = client.crosshairTarget;
if (Objects.requireNonNull(hr).getType() == HitResult.Type.BLOCK && hr instanceof BlockHitResult result) {
if (Arrays.stream(allowedSides).anyMatch(direction -> direction == result.getSide())) {
client.player.swingHand(Hand.MAIN_HAND);
Objects.requireNonNull(client.interactionManager).interactBlock(client.player, client.world, Hand.MAIN_HAND, result);
}
}
if (!courseCorrect.getValue()) {
return;
}
Vec3d ppos = client.player.getPos();
Vec3d isolated = new Vec3d(ppos.x - Math.floor(ppos.x), 0, ppos.z - Math.floor(ppos.z));
double toCheck = 0;
switch (client.player.getMovementDirection()) {
case NORTH, SOUTH -> toCheck = isolated.x;
case EAST, WEST -> toCheck = isolated.z;
}
client.options.keySneak.setPressed(toCheck > 0.5 + mOffset || toCheck < 0.5 - mOffset);
}
}

View file

@ -0,0 +1,121 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.config.EnumSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.event.EventType;
import me.x150.sipprivate.helper.event.Events;
import me.x150.sipprivate.helper.event.events.PacketEvent;
import me.x150.sipprivate.helper.render.Renderer;
import me.x150.sipprivate.helper.util.Utils;
import me.x150.sipprivate.mixin.IClientPlayerInteractionManagerAccessor;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
public class InstantBreak extends Module {
final List<Vec3d> positions = new ArrayList<>();
final List<PlayerActionC2SPacket> whitelist = new ArrayList<>();
EnumSetting<Priority> prio = this.config.create(new EnumSetting.Builder<>(Priority.Speed)
.name("Priority")
.description("What to do with the blocks being broken")
.get());
public InstantBreak() {
super("InstantBreak", "Breaks a block a lot faster", ModuleType.WORLD);
Events.registerEventHandler(EventType.PACKET_SEND, event -> {
if (!this.isEnabled()) {
return;
}
PacketEvent pe = (PacketEvent) event;
if (pe.getPacket() instanceof PlayerActionC2SPacket packet) {
if (!whitelist.contains(packet)) {
if (packet.getAction() == PlayerActionC2SPacket.Action.START_DESTROY_BLOCK && prio.getValue() == Priority.Order) {
event.setCancelled(true);
}
} else {
whitelist.remove(packet);
}
}
});
}
@Override
public void tick() {
if (Objects.requireNonNull(client.interactionManager).isBreakingBlock()) {
BlockPos last = ((IClientPlayerInteractionManagerAccessor) client.interactionManager).getCurrentBreakingPos();
if (prio.getValue() == Priority.Order) {
Vec3d p = new Vec3d(last.getX(), last.getY(), last.getZ());
if (!positions.contains(p)) {
positions.add(p);
}
} else {
Objects.requireNonNull(client.getNetworkHandler()).sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, last, Direction.DOWN));
positions.clear();
}
}
Vec3d p = client.gameRenderer.getCamera().getPos();
if (positions.size() == 0) {
return;
}
Vec3d latest = positions.get(0);
if (latest.add(0.5, 0.5, 0.5).distanceTo(p) >= client.interactionManager.getReachDistance()) {
positions.remove(0);
return;
}
BlockPos bp = new BlockPos(latest);
if (Objects.requireNonNull(client.world).getBlockState(bp).isAir()) {
positions.remove(0);
return;
}
PlayerActionC2SPacket pstart = new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.START_DESTROY_BLOCK, bp, Direction.DOWN);
whitelist.add(pstart);
Objects.requireNonNull(client.getNetworkHandler()).sendPacket(pstart);
client.getNetworkHandler().sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, bp, Direction.DOWN));
}
@Override
public void enable() {
}
@Override
public void disable() {
positions.clear();
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
for (Vec3d position : new ArrayList<>(positions)) {
Renderer.R3D.renderOutline(position, new Vec3d(1, 1, 1), Utils.getCurrentRGB(), matrices);
//Renderer.renderFilled(position,new Vec3d(1,1,1),new Color(0,0,0,150),matrices);
}
}
@Override
public void onHudRender() {
}
// final MultiValue prio = (MultiValue) this.config.create("Priority", "Speed", "Order", "Speed").description("What to prioritize when breaking blocks");
public enum Priority {
Speed, Order
}
}

View file

@ -1,53 +0,0 @@
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.network.packet.c2s.play.PlayerActionC2SPacket;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
public class InstantMine extends Module {
public InstantMine() {
super("InstantMine", "break blocks a lot faster", ModuleType.WORLD);
}
@Override
public void tick() {
if (CoffeeClientMain.client.interactionManager.isBreakingBlock()) {
try {
BlockPos killmeplz = ((BlockHitResult) CoffeeClientMain.client.crosshairTarget).getBlockPos();
for (int i = 0; i < 20; i++)
CoffeeClientMain.client.player.networkHandler.sendPacket(new PlayerActionC2SPacket(PlayerActionC2SPacket.Action.STOP_DESTROY_BLOCK, killmeplz, Direction.UP));
} catch (ClassCastException e) {
}
}
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null; //i pretended to understand what 0x150 was saying and i still dont understand what the fuck this does - saturn
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,86 @@
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.event.EventType;
import me.x150.sipprivate.helper.event.Events;
import me.x150.sipprivate.helper.event.events.PacketEvent;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.network.Packet;
import net.minecraft.network.packet.c2s.play.PlayerInteractBlockC2SPacket;
import net.minecraft.network.packet.c2s.play.PlayerInteractItemC2SPacket;
import java.util.ArrayList;
import java.util.List;
public class MassUse extends Module {
List<Packet<?>> dontRepeat = new ArrayList<>();
// SliderValue uses = (SliderValue) this.config.create("Uses", 3, 1, 100, 0).description("How many times to use the item");
DoubleSetting uses = this.config.create(new DoubleSetting.Builder(3)
.name("Uses")
.description("How many times to use the item")
.min(1)
.max(100)
.precision(0)
.get());
public MassUse() {
super("MassUse", "Uses an item or block several times", ModuleType.WORLD);
Events.registerEventHandler(EventType.PACKET_SEND, event -> {
if (!this.isEnabled()) {
return;
}
PacketEvent pe = (PacketEvent) event;
if (dontRepeat.contains(pe.getPacket())) {
dontRepeat.remove(pe.getPacket());
return;
}
if (pe.getPacket() instanceof PlayerInteractBlockC2SPacket p1) {
PlayerInteractBlockC2SPacket pp = new PlayerInteractBlockC2SPacket(p1.getHand(), p1.getBlockHitResult());
for (int i = 0; i < uses.getValue(); i++) {
dontRepeat.add(pp);
client.getNetworkHandler().sendPacket(pp);
}
} else if (pe.getPacket() instanceof PlayerInteractItemC2SPacket p1) {
PlayerInteractItemC2SPacket pp = new PlayerInteractItemC2SPacket(p1.getHand());
for (int i = 0; i < uses.getValue(); i++) {
dontRepeat.add(pp);
client.getNetworkHandler().sendPacket(pp);
}
}
});
}
@Override
public void tick() {
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -0,0 +1,48 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import net.minecraft.client.util.math.MatrixStack;
public class NoBreakDelay extends Module {
public NoBreakDelay() {
super("NoBreakDelay", "Removes the break delay", ModuleType.WORLD);
}
@Override
public void tick() {
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
}
@Override
public void onHudRender() {
}
}

View file

@ -1,30 +1,186 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.config.BooleanSetting;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.config.EnumSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.Rotations;
import me.x150.sipprivate.helper.render.Renderer;
import me.x150.sipprivate.helper.util.Utils;
import net.minecraft.block.Block;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.Direction;
import net.minecraft.util.math.Vec3d;
import java.util.*;
import java.util.stream.Collectors;
public class Nuker extends Module {
final List<BlockPos> renders = new ArrayList<>();
// final SliderValue range = (SliderValue) this.config.create("Range", 3, 0, 4, 1).description("The range to nuke by");
// final SliderValue blocksPerTick = (SliderValue) this.config.create("Blocks per tick", 1, 1, 20, 0).description("The amount of blocks to destroy per tick");
// final SliderValue delay = (SliderValue) this.config.create("Delay", 5, 0, 20, 0).description("The delay before breaking blocks");
// final BooleanValue ignoreXray = (BooleanValue) this.config.create("Ignore xray", true).description("Whether or not to ignore xray blocks");
// final MultiValue mode = (MultiValue) this.config.create("Mode", "Everything", "Everything", "Torches", "Fire", "Wood", "Grass").description("What to nuke");
// final BooleanValue autoTool = (BooleanValue) this.config.create("Auto tool", true).description("Automatically picks the best tool from your inventory, for the block being broken");
final Block[] WOOD = new Block[]{Blocks.ACACIA_LOG, Blocks.BIRCH_LOG, Blocks.DARK_OAK_LOG, Blocks.JUNGLE_LOG, Blocks.OAK_LOG, Blocks.SPRUCE_LOG, Blocks.STRIPPED_ACACIA_LOG,
Blocks.STRIPPED_BIRCH_LOG, Blocks.STRIPPED_DARK_OAK_LOG, Blocks.STRIPPED_JUNGLE_LOG, Blocks.STRIPPED_OAK_LOG, Blocks.STRIPPED_SPRUCE_LOG};
// final MultiValue mv = (MultiValue) this.config.create("Sort", "Out -> In", "Out -> In", "In -> Out", "Strength", "Random").description("How to sort");
// final BooleanValue ignoreUnbreakable = (BooleanValue) this.config.create("Ignore unbreakable", true).description("Ignore survival unbreakable blocks");
DoubleSetting range = this.config.create(new DoubleSetting.Builder(4)
.name("Range")
.description("How far to break blocks")
.min(0)
.max(4)
.precision(1)
.get());
DoubleSetting blocksPerTick = this.config.create(new DoubleSetting.Builder(1)
.name("Blocks per tick")
.description("How many blocks to break per tick")
.min(1)
.max(20)
.precision(0)
.get());
DoubleSetting delay = this.config.create(new DoubleSetting.Builder(0)
.name("Delay")
.description("How much to wait between ticks")
.min(0)
.max(20)
.precision(0)
.get());
BooleanSetting ignoreXray = this.config.create(new BooleanSetting.Builder(true)
.name("Ignore XRAY")
.description("Ignores XRAY blocks")
.get());
EnumSetting<Mode> mode = this.config.create(new EnumSetting.Builder<>(Mode.Everything)
.name("Mode")
.description("What to break")
.get());
BooleanSetting autoTool = this.config.create(new BooleanSetting.Builder(true)
.name("Auto tool")
.description("Automatically picks the best tool for the block")
.get());
EnumSetting<SortMode> mv = this.config.create(new EnumSetting.Builder<>(SortMode.OutIn)
.name("Sorting")
.description("In which order to break the blocks")
.get());
BooleanSetting ignoreUnbreakable = this.config.create(new BooleanSetting.Builder(true)
.name("Ignore unbreakable")
.description("Ignores unbreakable blocks")
.get());
int delayPassed = 0;
public Nuker() {
super("Nuker", "break blocks around you", ModuleType.WORLD);
super("Nuker", "Breaks a lot of blocks around you fast", ModuleType.WORLD);
}
boolean isBlockApplicable(Block b) {
if (mode.getValue() == Mode.Everything) {
return true;
} else if (mode.getValue() == Mode.Torches) {
return b == Blocks.TORCH || b == Blocks.WALL_TORCH || b == Blocks.SOUL_TORCH || b == Blocks.SOUL_WALL_TORCH;
} else if (mode.getValue() == Mode.Fire) {
return b == Blocks.FIRE || b == Blocks.SOUL_FIRE;
} else if (mode.getValue() == Mode.Wood) {
return Arrays.stream(WOOD).anyMatch(block -> block == b);
} else if (mode.getValue() == Mode.Grass) {
return b == Blocks.GRASS || b == Blocks.TALL_GRASS;
}
return false;
}
@Override
public void tick() {
for (int x = -7; x < 8; x++)
for (int y = -7; y < 8; y++)
for (int z = -7; z < 8; z++) {
BlockPos pos = CoffeeClientMain.client.player.getBlockPos().add(new BlockPos(x, y, z));
if (new Vec3d(pos.getX(), pos.getY(), pos.getZ()).distanceTo(CoffeeClientMain.client.player.getPos()) > CoffeeClientMain.client.interactionManager.getReachDistance() - 1 || CoffeeClientMain.client.world.getBlockState(pos).isAir() || CoffeeClientMain.client.world.getBlockState(pos).getBlock() == Blocks.WATER || CoffeeClientMain.client.world.getBlockState(pos).getBlock() == Blocks.LAVA)
if (client.player == null || client.world == null || client.interactionManager == null || client.getNetworkHandler() == null) {
return;
}
if (delayPassed < delay.getValue()) {
delayPassed++;
return;
}
delayPassed = 0;
BlockPos ppos1 = client.player.getBlockPos();
int blocksBroken = 0;
renders.clear();
List<BlockPos> toHit = new ArrayList<>();
for (double y = range.getValue(); y > -range.getValue() - 1; y--) {
for (double x = -range.getValue(); x < range.getValue() + 1; x++) {
for (double z = -range.getValue(); z < range.getValue() + 1; z++) {
BlockPos vp = new BlockPos(x, y, z);
BlockPos np = ppos1.add(vp);
Vec3d vp1 = Vec3d.of(np).add(.5, .5, .5);
if (vp1.distanceTo(client.player.getEyePos()) >= client.interactionManager.getReachDistance()) {
continue;
CoffeeClientMain.client.interactionManager.attackBlock(pos, Direction.DOWN);
}
toHit.add(np);
}
}
}
toHit = toHit.stream().sorted(Comparator.comparingDouble(value1 -> {
Vec3d value = Vec3d.of(value1).add(new Vec3d(.5, .5, .5));
return switch (mv.getValue()) {
case OutIn -> value.distanceTo(client.player.getPos()) * -1;
case InOut -> value.distanceTo(client.player.getPos());
case Strength -> client.world.getBlockState(value1).getBlock().getHardness();
default -> 1;
};
})).collect(Collectors.toList());
if (mv.getValue() == SortMode.Random) {
Collections.shuffle(toHit);
}
for (BlockPos np : toHit) {
if (blocksBroken >= blocksPerTick.getValue()) {
break;
}
BlockState bs = client.world.getBlockState(np);
boolean b = !ignoreXray.getValue() || !XRAY.blocks.contains(bs.getBlock());
if (!bs.isAir() && bs.getBlock() != Blocks.WATER && bs.getBlock() != Blocks.LAVA && !isUnbreakable(bs.getBlock()) && b && client.world.getWorldBorder()
.contains(np) && isBlockApplicable(bs.getBlock())) {
renders.add(np);
if (autoTool.getValue()) {
AutoTool.pick(bs);
}
client.player.swingHand(Hand.MAIN_HAND);
if (!client.player.getAbilities().creativeMode) {
client.interactionManager.updateBlockBreakingProgress(np, Direction.DOWN);
} else {
client.interactionManager.attackBlock(np, Direction.DOWN);
}
Rotations.lookAtV3(new Vec3d(np.getX() + .5, np.getY() + .5, np.getZ() + .5));
blocksBroken++;
}
}
}
boolean isUnbreakable(Block b) {
if (!ignoreUnbreakable.getValue()) {
return false;
}
return b.getHardness() == -1;
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
for (BlockPos render : renders) {
Vec3d vp = new Vec3d(render.getX(), render.getY(), render.getZ());
Renderer.R3D.renderFilled(vp, new Vec3d(1, 1, 1), Renderer.Util.modify(Utils.getCurrentRGB(), -1, -1, -1, 50), matrices);
}
}
@Override
@ -34,16 +190,14 @@ public class Nuker extends Module {
@Override
public void disable() {
}
@Override
public String getContext() {
return null; //no fucking clue what this does - saturn
public enum Mode {
Everything, Torches, Fire, Wood, Grass
}
@Override
public void onWorldRender(MatrixStack matrices) {
public enum SortMode {
OutIn, InOut, Strength, Random
}
@Override
@ -51,3 +205,4 @@ public class Nuker extends Module {
}
}

View file

@ -0,0 +1,129 @@
/*
* This file is part of the atomic client distribution.
* Copyright (c) 2021-2021 0x150.
*/
package me.x150.sipprivate.feature.module.impl.world;
import me.x150.sipprivate.feature.config.DoubleSetting;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleType;
import me.x150.sipprivate.helper.Keybind;
import me.x150.sipprivate.helper.Rotations;
import net.minecraft.block.BlockState;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.BlockHitResult;
import net.minecraft.util.math.*;
import java.util.Objects;
public class Scaffold extends Module {
// final SliderValue extend = this.config.create("Extend", 3, 0, 5, 1);
DoubleSetting extend = this.config.create(new DoubleSetting.Builder(3)
.name("Extend")
.description("How many blocks to extend outwards")
.min(0)
.max(5)
.precision(1)
.get());
public Scaffold() {
super("Scaffold", "Places blocks below you as you walk", ModuleType.WORLD);
}
@Override
public void tick() {
}
@Override
public void enable() {
}
@Override
public void disable() {
}
@Override
public String getContext() {
return null;
}
@Override
public void onWorldRender(MatrixStack matrices) {
client.options.keySneak.setPressed(false);
}
@Override
public void onHudRender() {
}
@Override
public void onFastTick() {
Vec3d ppos = Objects.requireNonNull(client.player).getPos().add(0, -1, 0);
BlockPos bp = new BlockPos(ppos);
int selIndex = client.player.getInventory().selectedSlot;
if (!(client.player.getInventory().getStack(selIndex).getItem() instanceof BlockItem)) {
for (int i = 0; i < 9; i++) {
ItemStack is = client.player.getInventory().getStack(i);
if (is.getItem() == Items.AIR) {
continue;
}
if (is.getItem() instanceof BlockItem) {
selIndex = i;
break;
}
}
}
if (client.player.getInventory().getStack(selIndex).getItem() != Items.AIR) {
boolean sneaking = new Keybind(client.options.keySneak.getDefaultKey().getCode()).isPressed();
if (sneaking) {
bp = bp.down();
}
// fucking multithreading moment
int finalSelIndex = selIndex;
BlockPos finalBp = bp;
client.execute(() -> placeBlockWithSlot(finalSelIndex, finalBp));
if (extend.getValue() != 0) {
Vec3d dir1 = client.player.getVelocity().multiply(3);
Vec3d dir = new Vec3d(MathHelper.clamp(dir1.getX(), -1, 1), 0, MathHelper.clamp(dir1.getZ(), -1, 1));
Vec3d v = ppos;
for (double i = 0; i < extend.getValue(); i += 0.5) {
v = v.add(dir);
if (v.distanceTo(client.player.getPos()) >= Objects.requireNonNull(client.interactionManager).getReachDistance()) {
break;
}
if (sneaking) {
v = v.add(0, -1, 0);
}
BlockPos bp1 = new BlockPos(v);
client.execute(() -> placeBlockWithSlot(finalSelIndex, bp1));
}
}
}
}
void placeBlockWithSlot(int s, BlockPos bp) {
BlockState st = Objects.requireNonNull(client.world).getBlockState(bp);
if (!st.getMaterial().isReplaceable()) {
return;
}
Vec2f py = Rotations.getPitchYaw(new Vec3d(bp.getX() + .5, bp.getY() + .5, bp.getZ() + .5));
Rotations.setClientPitch(py.x);
Rotations.setClientYaw(py.y);
int c = Objects.requireNonNull(client.player).getInventory().selectedSlot;
client.player.getInventory().selectedSlot = s;
BlockHitResult bhr = new BlockHitResult(new Vec3d(bp.getX(), bp.getY(), bp.getZ()), Direction.DOWN, bp, false);
Objects.requireNonNull(client.interactionManager).interactBlock(client.player, client.world, Hand.MAIN_HAND, bhr);
client.player.getInventory().selectedSlot = c;
}
}

View file

@ -0,0 +1,106 @@
package me.x150.sipprivate.helper;
import org.jetbrains.annotations.NotNull;
import java.io.DataOutput;
public class ByteCounter implements DataOutput {
private static final ByteCounter instance = new ByteCounter();
private long c;
public static ByteCounter instance() {
return instance;
}
public long getSize() {
return c;
}
public void reset() {
c = 0;
}
@Override
public void write(int b) {
c++;
}
@Override
public void write(byte[] b) {
c += b.length;
}
@Override
public void write(byte @NotNull [] b, int off, int len) {
c += len;
}
@Override
public void writeBoolean(boolean v) {
c++;
}
@Override
public void writeByte(int v) {
c++;
}
@Override
public void writeShort(int v) {
c += 2;
}
@Override
public void writeChar(int v) {
c += 2;
}
@Override
public void writeInt(int v) {
c += 4;
}
@Override
public void writeLong(long v) {
c += 8;
}
@Override
public void writeFloat(float v) {
c += 4;
}
@Override
public void writeDouble(double v) {
c += 8;
}
@Override
public void writeBytes(String s) {
c += s.length();
}
@Override
public void writeChars(String s) {
c += s.length() * 2L;
}
@Override
public void writeUTF(@NotNull String s) {
c += getUTFLength(s) + 2;
}
long getUTFLength(String s) {
long len = 0;
for (char c : s.toCharArray()) {
if (c >= 0x0001 && c <= 0x007F) {
len++;
} else if (c > 0x07FF) {
len += 3;
} else {
len += 2;
}
}
return len;
}
}

View file

@ -0,0 +1,18 @@
package me.x150.sipprivate.helper;
import me.x150.sipprivate.CoffeeClientMain;
import net.minecraft.client.util.InputUtil;
public class Keybind {
int keycode;
public Keybind(int keycode) {
this.keycode = keycode;
}
public boolean isPressed() {
if (keycode < 0) return false;
boolean isActuallyPressed = InputUtil.isKeyPressed(CoffeeClientMain.client.getWindow().getHandle(), keycode);
return CoffeeClientMain.client.currentScreen == null && isActuallyPressed;
}
}

View file

@ -34,6 +34,6 @@ public class LoreQueryEvent extends NonCancellableEvent {
}
public void addClientLore(String v) {
addLore("[§9A§r] §7" + v + "§r");
addLore("§7" + v + "§r");
}
}

View file

@ -24,8 +24,4 @@ public class MouseEvent extends Event {
public int getAction() {
return type;
}
public enum MouseEventType {
MOUSE_CLICKED, MOUSE_RELEASED
}
}

View file

@ -3,6 +3,9 @@ package me.x150.sipprivate.mixin;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.impl.misc.PortalGUI;
import me.x150.sipprivate.feature.module.impl.movement.NoPush;
import me.x150.sipprivate.feature.module.impl.movement.Phase;
import me.x150.sipprivate.feature.module.impl.render.Freecam;
import me.x150.sipprivate.helper.manager.ConfigManager;
import me.x150.sipprivate.helper.util.Utils;
import net.minecraft.client.gui.screen.Screen;
@ -34,4 +37,12 @@ public class ClientPlayerEntityMixin {
public boolean atomic_overwriteIsPauseScreen(Screen screen) {
return Objects.requireNonNull(ModuleRegistry.getByClass(PortalGUI.class)).isEnabled() || screen.isPauseScreen();
}
@Inject(method = "pushOutOfBlocks", at = @At("HEAD"), cancellable = true)
public void atomic_preventPushOutFromBlocks(double x, double z, CallbackInfo ci) {
if (Objects.requireNonNull(ModuleRegistry.getByClass(Freecam.class)).isEnabled() || Objects.requireNonNull(ModuleRegistry.getByClass(NoPush.class))
.isEnabled() || Objects.requireNonNull(ModuleRegistry.getByClass(Phase.class)).isEnabled()) {
ci.cancel();
}
}
}

View file

@ -0,0 +1,25 @@
package me.x150.sipprivate.mixin;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.impl.world.NoBreakDelay;
import net.minecraft.client.network.ClientPlayerInteractionManager;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Redirect;
import java.util.Objects;
@Mixin(ClientPlayerInteractionManager.class)
public class ClientPlayerInteractionManagerMixin {
@Shadow
private int blockBreakingCooldown;
@Redirect(method = "updateBlockBreakingProgress",
at = @At(value = "FIELD", target = "Lnet/minecraft/client/network/ClientPlayerInteractionManager;blockBreakingCooldown:I", opcode = Opcodes.GETFIELD, ordinal = 0))
public int atomic_overwriteCooldown(ClientPlayerInteractionManager clientPlayerInteractionManager) {
int cd = this.blockBreakingCooldown;
return Objects.requireNonNull(ModuleRegistry.getByClass(NoBreakDelay.class)).isEnabled() ? 0 : cd;
}
}

View file

@ -5,8 +5,10 @@
package me.x150.sipprivate.mixin;
import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.impl.movement.IgnoreWorldBorder;
import me.x150.sipprivate.feature.module.impl.render.FreeLook;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Box;
import net.minecraft.world.border.WorldBorder;
@ -23,4 +25,9 @@ public abstract class EntityMixin {
private static boolean real(WorldBorder instance, Entity entity, Box box) {
return !ModuleRegistry.getByClass(IgnoreWorldBorder.class).isEnabled() && instance.canCollide(entity, box);
}
@Redirect(method = "updateVelocity", at = @At(value = "INVOKE", target = "net/minecraft/entity/Entity.getYaw()F"))
float atomic_overwriteFreelookYaw(Entity instance) {
return instance.equals(CoffeeClientMain.client.player) && ModuleRegistry.getByClass(FreeLook.class).isEnabled() ? ModuleRegistry.getByClass(FreeLook.class).newyaw : instance.getYaw();
}
}

View file

@ -4,19 +4,29 @@ import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.gui.DoesMSAA;
import me.x150.sipprivate.feature.module.Module;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.impl.render.FreeLook;
import me.x150.sipprivate.feature.module.impl.render.Zoom;
import me.x150.sipprivate.helper.Rotations;
import me.x150.sipprivate.helper.manager.ImGuiManager;
import me.x150.sipprivate.helper.render.MSAAFramebuffer;
import me.x150.sipprivate.helper.render.Renderer;
import me.x150.sipprivate.helper.util.Utils;
import net.minecraft.client.gui.Element;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.render.Camera;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.util.math.MatrixStack;
import net.minecraft.entity.Entity;
import net.minecraft.util.hit.HitResult;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.RaycastContext;
import org.objectweb.asm.Opcodes;
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.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(GameRenderer.class)
public class GameRendererMixin {
@ -80,4 +90,22 @@ public class GameRendererMixin {
ci.cancel();
}
}
@Redirect(at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;raycast(DFZ)Lnet/minecraft/util/hit/HitResult;"), method = "updateTargetedEntity")
HitResult atomic_replaceFreelookHitResult(Entity instance, double maxDistance, float tickDelta, boolean includeFluids) {
if (ModuleRegistry.getByClass(FreeLook.class).isEnabled()) {
Vec3d vec3d = instance.getCameraPosVec(tickDelta);
Vec3d vec3d2 = Utils.Math.getRotationVector(Rotations.getClientPitch(), Rotations.getClientYaw());
Vec3d vec3d3 = vec3d.add(vec3d2.x * maxDistance, vec3d2.y * maxDistance, vec3d2.z * maxDistance);
return instance.world.raycast(new RaycastContext(vec3d, vec3d3, RaycastContext.ShapeType.OUTLINE, includeFluids ? RaycastContext.FluidHandling.ANY : RaycastContext.FluidHandling.NONE, instance));
} else {
return instance.raycast(maxDistance, tickDelta, includeFluids);
}
}
@Inject(method = "getFov", at = @At("RETURN"), cancellable = true)
public void atomic_overwriteFov(Camera camera, float tickDelta, boolean changingFov, CallbackInfoReturnable<Double> cir) {
double zv = ModuleRegistry.getByClass(Zoom.class).getZoomValue(cir.getReturnValue());
cir.setReturnValue(zv);
}
}

View file

@ -0,0 +1,13 @@
package me.x150.sipprivate.mixin;
import net.minecraft.client.network.ClientPlayerInteractionManager;
import net.minecraft.util.math.BlockPos;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(ClientPlayerInteractionManager.class)
public interface IClientPlayerInteractionManagerAccessor {
@Accessor("currentBreakingPos")
BlockPos getCurrentBreakingPos();
}

View file

@ -5,6 +5,7 @@ import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.impl.movement.Jesus;
import me.x150.sipprivate.feature.module.impl.movement.NoLevitation;
import me.x150.sipprivate.feature.module.impl.movement.NoPush;
import me.x150.sipprivate.feature.module.impl.render.FreeLook;
import me.x150.sipprivate.helper.manager.AttackManager;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
@ -72,4 +73,12 @@ public class LivingEntityMixin {
}
}
}
@Redirect(method = "jump", at = @At(value = "INVOKE", target = "net/minecraft/entity/LivingEntity.getYaw()F"))
private float atomic_overwriteFreelookYaw(LivingEntity instance) {
if (instance.equals(CoffeeClientMain.client.player) && ModuleRegistry.getByClass(FreeLook.class).isEnabled()) {
return ModuleRegistry.getByClass(FreeLook.class).newyaw;
}
return instance.getYaw();
}
}

View file

@ -1,17 +1,27 @@
package me.x150.sipprivate.mixin;
import me.x150.sipprivate.CoffeeClientMain;
import me.x150.sipprivate.feature.module.ModuleRegistry;
import me.x150.sipprivate.feature.module.impl.world.FastUse;
import me.x150.sipprivate.helper.manager.ConfigManager;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.RunArgs;
import net.minecraft.client.gui.screen.Screen;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import java.util.Objects;
@Mixin(MinecraftClient.class)
public class MinecraftClientMixin {
@Shadow
private int itemUseCooldown;
@Inject(method = "stop", at = @At("HEAD"))
void real(CallbackInfo ci) {
ConfigManager.saveState();
@ -26,4 +36,13 @@ public class MinecraftClientMixin {
void atomic_preSetScreen(Screen screen, CallbackInfo ci) {
CoffeeClientMain.lastScreenChange = System.currentTimeMillis();
}
@Redirect(method = "handleInputEvents", at = @At(value = "FIELD", opcode = Opcodes.GETFIELD, target = "Lnet/minecraft/client/MinecraftClient;itemUseCooldown:I"))
public int atomic_replaceItemUseCooldown(MinecraftClient minecraftClient) {
if (Objects.requireNonNull(ModuleRegistry.getByClass(FastUse.class)).isEnabled()) {
return 0;
} else {
return this.itemUseCooldown;
}
}
}

View file

@ -1,4 +1,5 @@
Added home screen
Removed custom buttons
Reformat
Fixed stupid bug with the alt screen
Ported over a few modules
Fixed a few bugs
Increased performance of the hud
Updated theme

View file

@ -14,12 +14,14 @@
"BlockRenderManagerMixin",
"ClientConnectionMixin",
"ClientPlayerEntityMixin",
"ClientPlayerInteractionManagerMixin",
"Deadmau5FeatureRendererMixin",
"EntityMixin",
"EntityRenderDispatcherMixin",
"GameMenuMixin",
"GameRendererMixin",
"HandledScreenMixin",
"IClientPlayerInteractionManagerAccessor",
"ICustomPayloadC2SPacketAccessor",
"IDebugHudAccessor",
"IEntityVelocityUpdateS2CPacketMixin",

View file

@ -1 +1 @@
0
1