v3.9
This commit is contained in:
1 parent
bab752c589
commit
a879458b4a
10 files changed
+183
-9
No files matched your search
+4
-7
@@ -1,4 +1,4 @@
|
|||||||
# v3.8
|
# v3.9
|
||||||
|
|
||||||
## novedades
|
## novedades
|
||||||
|
|
||||||
@@ -6,15 +6,12 @@
|
|||||||
|
|
||||||
#### módulos nuevos:
|
#### módulos nuevos:
|
||||||
|
|
||||||
- desync de hitbox: exploit chino para meterse en bloques
|
- escaleras veloces: sube escaleras más rápido
|
||||||
- recorrido: muestra tu recorrido
|
- parkour: salta automáticamente
|
||||||
- retroceso: modifica el retroceso a tomar
|
- confetti: cambia el color de las partículas del pop del tótem
|
||||||
|
|
||||||
### arreglos / mejoras
|
### arreglos / mejoras
|
||||||
|
|
||||||
- rotar, de andamios, ahora solo rota server-side
|
|
||||||
- mostrar últimos bloques colocados en andamios
|
|
||||||
|
|
||||||
## problemas reconocidos
|
## problemas reconocidos
|
||||||
|
|
||||||
- lo de siempre
|
- lo de siempre
|
||||||
+1
-1
@@ -10,6 +10,6 @@ fabric_api_version=0.140.2+1.21.11
|
|||||||
|
|
||||||
neutrino_version=1.1.0
|
neutrino_version=1.1.0
|
||||||
|
|
||||||
mod_version=3.8
|
mod_version=3.9
|
||||||
maven_group=me.retucio
|
maven_group=me.retucio
|
||||||
archives_base_name=sputnik
|
archives_base_name=sputnik
|
||||||
@@ -6,6 +6,7 @@ import com.llamalad7.mixinextras.sugar.Local;
|
|||||||
import me.retucio.sputnik.module.ModuleManager;
|
import me.retucio.sputnik.module.ModuleManager;
|
||||||
import me.retucio.sputnik.module.modules.world.NoMiningInterruptions;
|
import me.retucio.sputnik.module.modules.world.NoMiningInterruptions;
|
||||||
import me.retucio.sputnik.module.modules.inventory.PortalGUI;
|
import me.retucio.sputnik.module.modules.inventory.PortalGUI;
|
||||||
|
import me.retucio.sputnik.util.ChatUtil;
|
||||||
import net.minecraft.client.gui.screen.Screen;
|
import net.minecraft.client.gui.screen.Screen;
|
||||||
import net.minecraft.client.network.ClientPlayerEntity;
|
import net.minecraft.client.network.ClientPlayerEntity;
|
||||||
import net.minecraft.util.hit.EntityHitResult;
|
import net.minecraft.util.hit.EntityHitResult;
|
||||||
@@ -15,6 +16,8 @@ import org.objectweb.asm.Opcodes;
|
|||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.Shadow;
|
import org.spongepowered.asm.mixin.Shadow;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
|
|
||||||
import static me.retucio.sputnik.Sputnik.mc;
|
import static me.retucio.sputnik.Sputnik.mc;
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
package me.retucio.sputnik.mixin.mixins.world;
|
||||||
|
|
||||||
|
import me.retucio.sputnik.module.ModuleManager;
|
||||||
|
import me.retucio.sputnik.module.modules.render.Confetti;
|
||||||
|
import net.minecraft.client.particle.TotemParticle;
|
||||||
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
|
import org.spongepowered.asm.mixin.injection.ModifyArgs;
|
||||||
|
import org.spongepowered.asm.mixin.injection.invoke.arg.Args;
|
||||||
|
|
||||||
|
@Mixin(TotemParticle.class)
|
||||||
|
public abstract class TotemParticleMixin {
|
||||||
|
|
||||||
|
@ModifyArgs(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/TotemParticle;setColor(FFF)V", ordinal = 0))
|
||||||
|
private void setConfettiColor1(Args args) {
|
||||||
|
Confetti confetti = ModuleManager.INSTANCE.getModuleByClass(Confetti.class);
|
||||||
|
if (confetti.isEnabled()) {
|
||||||
|
args.set(0, confetti.color1.getR() / 255f);
|
||||||
|
args.set(1, confetti.color1.getG() / 255f);
|
||||||
|
args.set(2, confetti.color1.getB() / 255f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ModifyArgs(method = "<init>", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/particle/TotemParticle;setColor(FFF)V", ordinal = 1))
|
||||||
|
private void setConfettiColor2(Args args) {
|
||||||
|
Confetti confetti = ModuleManager.INSTANCE.getModuleByClass(Confetti.class);
|
||||||
|
if (confetti.isEnabled()) {
|
||||||
|
args.set(0, confetti.color2.getR() / 255f);
|
||||||
|
args.set(1, confetti.color2.getG() / 255f);
|
||||||
|
args.set(2, confetti.color2.getB() / 255f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -111,10 +111,12 @@ public class ModuleManager {
|
|||||||
add(new Dolphin());
|
add(new Dolphin());
|
||||||
add(new ElytraBounce());
|
add(new ElytraBounce());
|
||||||
add(new ElytraFly());
|
add(new ElytraFly());
|
||||||
|
add(new FastStairs());
|
||||||
add(new Headhitters());
|
add(new Headhitters());
|
||||||
add(new HitboxDesync());
|
add(new HitboxDesync());
|
||||||
add(new InfiniteElytra());
|
add(new InfiniteElytra());
|
||||||
add(new Jesus());
|
add(new Jesus());
|
||||||
|
add(new Parkour());
|
||||||
add(new ReverseStep());
|
add(new ReverseStep());
|
||||||
add(new SafeWalk());
|
add(new SafeWalk());
|
||||||
add(new Scaffold());
|
add(new Scaffold());
|
||||||
@@ -153,6 +155,7 @@ public class ModuleManager {
|
|||||||
add(new BlockOutline());
|
add(new BlockOutline());
|
||||||
add(new Breadcrumbs());
|
add(new Breadcrumbs());
|
||||||
add(new BreakingProgress());
|
add(new BreakingProgress());
|
||||||
|
add(new Confetti());
|
||||||
add(new CritsPlus());
|
add(new CritsPlus());
|
||||||
add(new DamageOverlay());
|
add(new DamageOverlay());
|
||||||
add(new EntityESP());
|
add(new EntityESP());
|
||||||
|
|||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package me.retucio.sputnik.module.modules.movement;
|
||||||
|
|
||||||
|
import me.retucio.sputnik.module.Category;
|
||||||
|
import me.retucio.sputnik.module.Module;
|
||||||
|
import me.retucio.sputnik.module.setting.settings.BooleanSetting;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.StairsBlock;
|
||||||
|
|
||||||
|
public class FastStairs extends Module {
|
||||||
|
|
||||||
|
private final BooleanSetting onlyWhenSprinting = sgGeneral.add(new BooleanSetting(
|
||||||
|
"solo al correr",
|
||||||
|
"solo saltar al estar esprintando",
|
||||||
|
true
|
||||||
|
));
|
||||||
|
|
||||||
|
private final BooleanSetting onlyWhenStairsNext = sgGeneral.add(new BooleanSetting(
|
||||||
|
"solo al haber más escaleras",
|
||||||
|
"solo saltar cuando el siguiente bloque también son escaleras",
|
||||||
|
true
|
||||||
|
));
|
||||||
|
|
||||||
|
public FastStairs() {
|
||||||
|
super("escaleras veloces", "sube escaleras más rápidamente", Category.MOVEMENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTick() {
|
||||||
|
if (mc.player == null || mc.world == null) return;
|
||||||
|
if (!mc.player.isSprinting() && onlyWhenSprinting.getValue()) return;
|
||||||
|
|
||||||
|
Block nextBlock = mc.world.getBlockState(mc.player.getBlockPos().add(mc.player.getHorizontalFacing().getVector())).getBlock();
|
||||||
|
if (!(nextBlock instanceof StairsBlock && onlyWhenStairsNext.getValue())) return;
|
||||||
|
|
||||||
|
if (mc.world.getBlockState(mc.player.getBlockPos().down()).getBlock() instanceof StairsBlock
|
||||||
|
&& mc.player.forwardSpeed > 0 && mc.player.isOnGround()) {
|
||||||
|
mc.player.jump();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
package me.retucio.sputnik.module.modules.movement;
|
||||||
|
|
||||||
|
import com.google.common.collect.Streams;
|
||||||
|
import me.retucio.sputnik.module.Category;
|
||||||
|
import me.retucio.sputnik.module.Module;
|
||||||
|
import me.retucio.sputnik.module.setting.settings.BooleanSetting;
|
||||||
|
import me.retucio.sputnik.module.setting.settings.NumberSetting;
|
||||||
|
import net.minecraft.util.math.Box;
|
||||||
|
import net.minecraft.util.shape.VoxelShape;
|
||||||
|
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @link <a href="https://github.com/MeteorDevelopment/meteor-client/blob/master/src/main/java/meteordevelopment/meteorclient/systems/modules/movement/Parkour.java">yes i'm a skid</a>
|
||||||
|
* @"author" retucio
|
||||||
|
*/
|
||||||
|
public class Parkour extends Module {
|
||||||
|
|
||||||
|
private final BooleanSetting onlyWhenSprinting = sgGeneral.add(new BooleanSetting(
|
||||||
|
"solo al correr",
|
||||||
|
"solo aplicar salto al estar esprintando",
|
||||||
|
false
|
||||||
|
));
|
||||||
|
|
||||||
|
private final BooleanSetting dontWhenSneaking = sgGeneral.add(new BooleanSetting(
|
||||||
|
"no al agacharse",
|
||||||
|
"no saltar al estar agachado",
|
||||||
|
false
|
||||||
|
));
|
||||||
|
|
||||||
|
private final NumberSetting offset = sgGeneral.add(new NumberSetting(
|
||||||
|
"offset",
|
||||||
|
"cuán antes saltar",
|
||||||
|
0.001,
|
||||||
|
0.001,
|
||||||
|
0.6,
|
||||||
|
0.001
|
||||||
|
));
|
||||||
|
|
||||||
|
public Parkour() {
|
||||||
|
super("parkour",
|
||||||
|
"salta automáticamente en el último tick posible, en la esquina del bloque",
|
||||||
|
Category.MOVEMENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onTick() {
|
||||||
|
if (mc.player == null || mc.world == null) return;
|
||||||
|
|
||||||
|
if (!(mc.player.isSprinting() || mc.options.sprintKey.isPressed()) && onlyWhenSprinting.getValue()) return;
|
||||||
|
if ((mc.player.isSneaking() || mc.options.sneakKey.isPressed()) && dontWhenSneaking.getValue()) return;
|
||||||
|
|
||||||
|
if(!mc.player.isOnGround() || mc.options.jumpKey.isPressed()) return;
|
||||||
|
|
||||||
|
Box box = mc.player.getBoundingBox();
|
||||||
|
Box adjustedBox = box.offset(0, -0.5, 0).expand(-offset.getValue(), 0, -offset.getValue());
|
||||||
|
|
||||||
|
Stream<VoxelShape> blockCollisions = Streams.stream(mc.world.getBlockCollisions(mc.player, adjustedBox));
|
||||||
|
if (blockCollisions.findAny().isPresent()) return;
|
||||||
|
|
||||||
|
mc.player.jump();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
package me.retucio.sputnik.module.modules.render;
|
||||||
|
|
||||||
|
import me.retucio.sputnik.module.Category;
|
||||||
|
import me.retucio.sputnik.module.Module;
|
||||||
|
import me.retucio.sputnik.module.setting.settings.ColorSetting;
|
||||||
|
import me.retucio.sputnik.util.Colors;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* continúa en:
|
||||||
|
* @see me.retucio.sputnik.mixin.mixins.world.TotemParticleMixin
|
||||||
|
*/
|
||||||
|
public class Confetti extends Module {
|
||||||
|
|
||||||
|
public ColorSetting color1 = sgGeneral.add(new ColorSetting(
|
||||||
|
"color 1",
|
||||||
|
"en vez de amarillo",
|
||||||
|
Colors.BLACK,
|
||||||
|
false
|
||||||
|
));
|
||||||
|
|
||||||
|
public ColorSetting color2 = sgGeneral.add(new ColorSetting(
|
||||||
|
"color 2",
|
||||||
|
"en vez de verde",
|
||||||
|
Colors.mainColor,
|
||||||
|
true
|
||||||
|
));
|
||||||
|
|
||||||
|
public Confetti() {
|
||||||
|
super("confetti", "cambia el color de las partículas del pop del tótem", Category.RENDER);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package me.retucio.sputnik.util;
|
package me.retucio.sputnik.util;
|
||||||
|
|
||||||
|
import com.github.retucio.neutrino.EventListener;
|
||||||
import me.retucio.sputnik.event.TickEvent;
|
import me.retucio.sputnik.event.TickEvent;
|
||||||
import me.retucio.sputnik.module.ModuleManager;
|
import me.retucio.sputnik.module.ModuleManager;
|
||||||
import me.retucio.sputnik.module.modules.client.HUD;
|
import me.retucio.sputnik.module.modules.client.HUD;
|
||||||
@@ -21,6 +22,7 @@ public class MiscUtil {
|
|||||||
|
|
||||||
public static Screen screen;
|
public static Screen screen;
|
||||||
|
|
||||||
|
@EventListener
|
||||||
public static void onTick(TickEvent.Post event) {
|
public static void onTick(TickEvent.Post event) {
|
||||||
if (screen != null && mc.currentScreen == null) {
|
if (screen != null && mc.currentScreen == null) {
|
||||||
mc.setScreen(screen);
|
mc.setScreen(screen);
|
||||||
|
|||||||
@@ -100,6 +100,7 @@
|
|||||||
"mixins.world.DamageParticleMixin",
|
"mixins.world.DamageParticleMixin",
|
||||||
"mixins.world.EmitterParticleMixin",
|
"mixins.world.EmitterParticleMixin",
|
||||||
"mixins.world.ParticleManagerMixin",
|
"mixins.world.ParticleManagerMixin",
|
||||||
"mixins.world.RenderTickCounterDynamicMixin"
|
"mixins.world.RenderTickCounterDynamicMixin",
|
||||||
|
"mixins.world.TotemParticleMixin"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user