v3.5
This commit is contained in:
1 parent
ad0349aa29
commit
acecda3c0d
6 files changed
+69
-17
No files matched your search
+1
-1
@@ -31,7 +31,7 @@ dependencies {
|
|||||||
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_api_version}"
|
||||||
|
|
||||||
// sistema de eventos
|
// sistema de eventos
|
||||||
modImplementation "com.github.retuci0:neutrino:${project.neutrino_version}"
|
include(modImplementation "com.github.retuci0:neutrino:${project.neutrino_version}")
|
||||||
|
|
||||||
// rpc de discord
|
// rpc de discord
|
||||||
include(modImplementation "dev.firstdark.discordrpc:discord-rpc:1.0.3")
|
include(modImplementation "dev.firstdark.discordrpc:discord-rpc:1.0.3")
|
||||||
|
|||||||
+5
-7
@@ -1,20 +1,18 @@
|
|||||||
# v3.3
|
# v3.5
|
||||||
|
|
||||||
## novedades
|
## novedades
|
||||||
|
|
||||||
### adiciones
|
### adiciones
|
||||||
|
|
||||||
- ahora se puede asignar un botón del ratón a un módulo
|
|
||||||
|
|
||||||
#### módulos nuevos:
|
#### módulos nuevos:
|
||||||
|
|
||||||
- mochila: te permite llevar items en los slots de crafteo del inventario
|
|
||||||
- tecla de perla: te permite lanzar una perla con tan solo un pulsamiento de tecla, siempre y cuando tengas en el inventario
|
|
||||||
|
|
||||||
### arreglos / mejoras
|
### arreglos / mejoras
|
||||||
|
|
||||||
- arreglada la cagada de Mojang de las teclas debug
|
- arreglado el crash por no incluir el sistema de eventos en el mod (soy gilipollas)
|
||||||
|
- mejoras varias al módulo tobillos fuertes
|
||||||
|
- ahora el módulo de interfaces en portales funciona correctamente
|
||||||
|
- reponer ya no está repe
|
||||||
|
|
||||||
## problemas reconocidos
|
## problemas reconocidos
|
||||||
|
|
||||||
- muchos, pero repórtalos en la página de problemas si quieres para que queden bien registrados
|
|
||||||
+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.3
|
mod_version=3.5
|
||||||
maven_group=me.retucio
|
maven_group=me.retucio
|
||||||
archives_base_name=sputnik
|
archives_base_name=sputnik
|
||||||
@@ -90,7 +90,6 @@ public class ModuleManager {
|
|||||||
add(new BossbarStack());
|
add(new BossbarStack());
|
||||||
add(new ChatPlus());
|
add(new ChatPlus());
|
||||||
add(new FakePlayer());
|
add(new FakePlayer());
|
||||||
add(new Replenish());
|
|
||||||
add(new ScreenshotPlus());
|
add(new ScreenshotPlus());
|
||||||
add(new UnfocusedCpu());
|
add(new UnfocusedCpu());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,10 @@ import me.retucio.sputnik.module.setting.settings.NumberSetting;
|
|||||||
import me.retucio.sputnik.util.ChatUtil;
|
import me.retucio.sputnik.util.ChatUtil;
|
||||||
import me.retucio.sputnik.util.InventoryUtil;
|
import me.retucio.sputnik.util.InventoryUtil;
|
||||||
import me.retucio.sputnik.util.Lists;
|
import me.retucio.sputnik.util.Lists;
|
||||||
|
import net.minecraft.block.Block;
|
||||||
|
import net.minecraft.block.Blocks;
|
||||||
import net.minecraft.entity.player.PlayerInventory;
|
import net.minecraft.entity.player.PlayerInventory;
|
||||||
|
import net.minecraft.item.BlockItem;
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemStack;
|
import net.minecraft.item.ItemStack;
|
||||||
import net.minecraft.item.Items;
|
import net.minecraft.item.Items;
|
||||||
@@ -20,21 +23,32 @@ import net.minecraft.util.ActionResult;
|
|||||||
import net.minecraft.util.Hand;
|
import net.minecraft.util.Hand;
|
||||||
import net.minecraft.util.hit.BlockHitResult;
|
import net.minecraft.util.hit.BlockHitResult;
|
||||||
import net.minecraft.util.hit.HitResult;
|
import net.minecraft.util.hit.HitResult;
|
||||||
|
import net.minecraft.util.math.BlockPos;
|
||||||
|
import net.minecraft.util.math.Vec3d;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
// todo: arreglar MLGs con bloques
|
// todo: arreglar MLGs con bloques
|
||||||
public class NoFall extends Module {
|
public class NoFall extends Module {
|
||||||
|
|
||||||
private boolean placed;
|
private boolean placed, shouldUse;
|
||||||
|
|
||||||
private final List<Item> mlgItems = List.of(Items.WATER_BUCKET, Items.ENDER_PEARL, Items.POWDER_SNOW_BUCKET,
|
private final List<Item> mlgItems = List.of(Items.WATER_BUCKET, Items.ENDER_PEARL,
|
||||||
Items.SLIME_BLOCK, Items.HAY_BLOCK, Items.HONEY_BLOCK, Items.BLACK_BED,
|
Items.POWDER_SNOW_BUCKET, Items.TWISTING_VINES, Items.SLIME_BLOCK,
|
||||||
|
Items.HAY_BLOCK, Items.HONEY_BLOCK, Items.BLACK_BED,
|
||||||
Items.BLUE_BED, Items.BROWN_BED, Items.CYAN_BED, Items.GRAY_BED,
|
Items.BLUE_BED, Items.BROWN_BED, Items.CYAN_BED, Items.GRAY_BED,
|
||||||
Items.GREEN_BED, Items.LIGHT_BLUE_BED, Items.LIGHT_GRAY_BED, Items.LIME_BED,
|
Items.GREEN_BED, Items.LIGHT_BLUE_BED, Items.LIGHT_GRAY_BED, Items.LIME_BED,
|
||||||
Items.MAGENTA_BED, Items.ORANGE_BED, Items.PINK_BED, Items.PURPLE_BED,
|
Items.MAGENTA_BED, Items.ORANGE_BED, Items.PINK_BED, Items.PURPLE_BED,
|
||||||
Items.RED_BED, Items.WHITE_BED, Items.YELLOW_BED);
|
Items.RED_BED, Items.WHITE_BED, Items.YELLOW_BED);
|
||||||
|
|
||||||
|
private final List<Block> safeBlocks = List.of(
|
||||||
|
Blocks.WATER, Blocks.SLIME_BLOCK, Blocks.HAY_BLOCK, Blocks.HONEY_BLOCK,
|
||||||
|
Blocks.TWISTING_VINES, Blocks.BLACK_BED, Blocks.BLUE_BED, Blocks.BROWN_BED,
|
||||||
|
Blocks.CYAN_BED, Blocks.GRAY_BED, Blocks.GREEN_BED, Blocks.LIGHT_BLUE_BED,
|
||||||
|
Blocks.LIGHT_GRAY_BED, Blocks.LIME_BED, Blocks.MAGENTA_BED, Blocks.ORANGE_BED,
|
||||||
|
Blocks.PINK_BED, Blocks.PURPLE_BED, Blocks.RED_BED, Blocks. WHITE_BED,
|
||||||
|
Blocks.YELLOW_BED);
|
||||||
|
|
||||||
private final EnumSetting<NoFallMode> mode = sgGeneral.add(new EnumSetting<>(
|
private final EnumSetting<NoFallMode> mode = sgGeneral.add(new EnumSetting<>(
|
||||||
"modo",
|
"modo",
|
||||||
"de qué manera evitar el daño de caída",
|
"de qué manera evitar el daño de caída",
|
||||||
@@ -57,12 +71,18 @@ public class NoFall extends Module {
|
|||||||
1
|
1
|
||||||
));
|
));
|
||||||
|
|
||||||
private final BooleanSetting clutch = sgGeneral.add( new BooleanSetting(
|
private final BooleanSetting clutch = sgGeneral.add(new BooleanSetting(
|
||||||
"salvada",
|
"salvada",
|
||||||
"cambiar a modo paquete si no se encuentra un cubo disponible",
|
"cambiar a modo paquete si no se encuentra un cubo disponible",
|
||||||
true
|
true
|
||||||
));
|
));
|
||||||
|
|
||||||
|
private final BooleanSetting center = sgGeneral.add(new BooleanSetting(
|
||||||
|
"centrar jugador",
|
||||||
|
"centrar jugador respecto al bloque que tenga debajo",
|
||||||
|
false
|
||||||
|
));
|
||||||
|
|
||||||
public NoFall() {
|
public NoFall() {
|
||||||
super("tobillos fuertes", "evita el daño de caída", Category.PLAYER);
|
super("tobillos fuertes", "evita el daño de caída", Category.PLAYER);
|
||||||
}
|
}
|
||||||
@@ -77,11 +97,34 @@ public class NoFall extends Module {
|
|||||||
|
|
||||||
if (mc.player.isOnGround()) {
|
if (mc.player.isOnGround()) {
|
||||||
placed = false;
|
placed = false;
|
||||||
|
shouldUse = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mode.is(NoFallMode.CLUTCH) && mc.player.fallDistance >= distance.getValue() && !mc.player.isOnGround() && !placed) {
|
if (shouldUse) {
|
||||||
HitResult result = mc.getCameraEntity().raycast(3, 0, false);
|
mc.doItemUse();
|
||||||
if (result instanceof BlockHitResult) {
|
}
|
||||||
|
|
||||||
|
if (mode.is(NoFallMode.CLUTCH)
|
||||||
|
&& mc.player.fallDistance >= distance.getValue()
|
||||||
|
&& !mc.player.isOnGround()
|
||||||
|
&& !placed) {
|
||||||
|
|
||||||
|
if (center.getValue()) {
|
||||||
|
Vec3d diff = mc.player.getEntityPos().subtract(mc.player.getBlockPos().toCenterPos());
|
||||||
|
if (diff.lengthSquared() > 10e-3) {
|
||||||
|
Vec3d impulse = new Vec3d(-diff.x * 0.05, 0, -diff.z * 0.05);
|
||||||
|
mc.player.addVelocity(impulse.x, impulse.y, impulse.z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
HitResult result = mc.getCameraEntity().raycast(3, 0, true);
|
||||||
|
if (result instanceof BlockHitResult bhr) {
|
||||||
|
BlockPos pos = bhr.getBlockPos();
|
||||||
|
while (mc.world.getBlockState(pos).isOf(Blocks.AIR)) {
|
||||||
|
pos = pos.down();
|
||||||
|
}
|
||||||
|
if (isSafeBlock(pos)) return;
|
||||||
|
|
||||||
// encontrar ítem
|
// encontrar ítem
|
||||||
ItemStack mlgItem = getMlgItem();
|
ItemStack mlgItem = getMlgItem();
|
||||||
if (mlgItem == null) {
|
if (mlgItem == null) {
|
||||||
@@ -102,6 +145,13 @@ public class NoFall extends Module {
|
|||||||
int slot = mc.player.getInventory().getSlotWithStack(mlgItem);
|
int slot = mc.player.getInventory().getSlotWithStack(mlgItem);
|
||||||
mc.player.getInventory().setSelectedSlot(slot);
|
mc.player.getInventory().setSelectedSlot(slot);
|
||||||
|
|
||||||
|
// usar bloque
|
||||||
|
if (mlgItem.getItem() instanceof BlockItem) {
|
||||||
|
shouldUse = true;
|
||||||
|
placed = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// usar ítem
|
// usar ítem
|
||||||
ActionResult didPlace = mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND);
|
ActionResult didPlace = mc.interactionManager.interactItem(mc.player, Hand.MAIN_HAND);
|
||||||
if (didPlace.isAccepted())
|
if (didPlace.isAccepted())
|
||||||
@@ -151,6 +201,10 @@ public class NoFall extends Module {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isSafeBlock(BlockPos pos) {
|
||||||
|
return safeBlocks.contains(mc.world.getBlockState(pos).getBlock());
|
||||||
|
}
|
||||||
|
|
||||||
private enum NoFallMode {
|
private enum NoFallMode {
|
||||||
CLUTCH("waterdrop"),
|
CLUTCH("waterdrop"),
|
||||||
PACKET("paquetes");
|
PACKET("paquetes");
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
"mixins.network.ResourcePackPolicyMixin",
|
"mixins.network.ResourcePackPolicyMixin",
|
||||||
"mixins.network.ServerInfoMixin",
|
"mixins.network.ServerInfoMixin",
|
||||||
"mixins.network.TelemetryManagerMixin",
|
"mixins.network.TelemetryManagerMixin",
|
||||||
|
"mixins.player.ClientPlayerEntityMixin",
|
||||||
"mixins.player.ClientPlayerInteractionManagerMixin",
|
"mixins.player.ClientPlayerInteractionManagerMixin",
|
||||||
"mixins.render.BufferStorageMixin",
|
"mixins.render.BufferStorageMixin",
|
||||||
"mixins.render.CameraMixin",
|
"mixins.render.CameraMixin",
|
||||||
|
|||||||
Reference in new issue
Block a user