mirror of https://github.com/kami-blue/client
parent
072ab67a81
commit
47459dfa44
|
@ -3,6 +3,7 @@ package me.zeroeightsix.kami.mixin.client;
|
|||
import me.zeroeightsix.kami.KamiMod;
|
||||
import me.zeroeightsix.kami.event.events.EntityEvent;
|
||||
import me.zeroeightsix.kami.module.modules.zeroeightysix.movement.SafeWalk;
|
||||
import me.zeroeightsix.kami.module.modules.zeroeightysix.player.Scaffold;
|
||||
import net.minecraft.entity.Entity;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
|
@ -10,6 +11,7 @@ import org.spongepowered.asm.mixin.injection.Redirect;
|
|||
|
||||
/**
|
||||
* Created by 086 on 16/11/2017.
|
||||
* Updated by Polymer on 16/01/20
|
||||
*/
|
||||
@Mixin(Entity.class)
|
||||
public class MixinEntity {
|
||||
|
@ -29,7 +31,7 @@ public class MixinEntity {
|
|||
|
||||
@Redirect(method = "move", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;isSneaking()Z"))
|
||||
public boolean isSneaking(Entity entity) {
|
||||
return SafeWalk.shouldSafewalk() || entity.isSneaking();
|
||||
return SafeWalk.shouldSafewalk() || Scaffold.shouldScaffold() || entity.isSneaking();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package me.zeroeightsix.kami.module.modules.zeroeightysix.player;
|
||||
|
||||
import me.zero.alpine.listener.EventHandler;
|
||||
import me.zero.alpine.listener.Listener;
|
||||
import me.zeroeightsix.kami.module.Module;
|
||||
import me.zeroeightsix.kami.module.ModuleManager;
|
||||
import me.zeroeightsix.kami.setting.Setting;
|
||||
|
@ -11,27 +13,62 @@ import net.minecraft.block.BlockContainer;
|
|||
import net.minecraft.block.BlockFalling;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.network.play.client.CPacketEntityAction;
|
||||
import net.minecraft.network.play.client.CPacketEntityAction.Action;
|
||||
import net.minecraft.util.math.BlockPos;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraftforge.client.event.InputUpdateEvent;
|
||||
|
||||
import static me.zeroeightsix.kami.util.zeroeightysix.BlockInteractionHelper.*;
|
||||
|
||||
/**
|
||||
* Created by 086 on 20/01/19
|
||||
* Updated by Polymer on 16/01/20
|
||||
*/
|
||||
@Module.Info(name = "Scaffold", category = Module.Category.PLAYER, description = "Places blocks under you")
|
||||
public class Scaffold extends Module {
|
||||
|
||||
private Setting<Integer> future = register(Settings.integerBuilder("Ticks").withMinimum(0).withMaximum(60).withValue(2));
|
||||
private Setting legitBridge = register(Settings.b("Legit Bridge", false));
|
||||
private Setting autoPlace = register(Settings.b("AutoPlace", false));
|
||||
boolean shouldSlow = false;
|
||||
|
||||
private static Scaffold INSTANCE;
|
||||
|
||||
public Scaffold() {
|
||||
INSTANCE = this;
|
||||
}
|
||||
|
||||
public static boolean shouldScaffold() {
|
||||
return INSTANCE.isEnabled();
|
||||
}
|
||||
@EventHandler
|
||||
private Listener<InputUpdateEvent> eventListener = new Listener<>(event -> {
|
||||
if ((boolean)legitBridge.getValue() && shouldSlow == true) {
|
||||
event.getMovementInput().moveStrafe *= 0.2f;
|
||||
event.getMovementInput().moveForward *= 0.2f;
|
||||
}
|
||||
});
|
||||
|
||||
@Override
|
||||
public void onUpdate() {
|
||||
shouldSlow = false;
|
||||
if (isDisabled() || mc.player == null || ModuleManager.isModuleEnabled("Freecam")) return;
|
||||
Vec3d vec3d = EntityUtil.getInterpolatedPos(mc.player, future.getValue());
|
||||
if ((boolean) legitBridge.getValue()) vec3d = EntityUtil.getInterpolatedPos(mc.player, 0);
|
||||
BlockPos blockPos = new BlockPos(vec3d).down();
|
||||
BlockPos belowBlockPos = blockPos.down();
|
||||
|
||||
BlockPos legitPos = new BlockPos(EntityUtil.getInterpolatedPos(mc.player, 2));
|
||||
//check if block behind player is air or other replaceable block and if it is, make the player crouch when legitBridge is enabled
|
||||
if (Wrapper.getWorld().getBlockState(legitPos.down()).getMaterial().isReplaceable() && (boolean)legitBridge.getValue()&& mc.player.onGround == true) {
|
||||
shouldSlow = true;
|
||||
mc.player.movementInput.sneak = true;
|
||||
mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, Action.START_SNEAKING));
|
||||
}
|
||||
// check if block is already placed
|
||||
if (!Wrapper.getWorld().getBlockState(blockPos).getMaterial().isReplaceable())
|
||||
if (!Wrapper.getWorld().getBlockState(blockPos).getMaterial().isReplaceable() ) {
|
||||
return;
|
||||
|
||||
}
|
||||
// search blocks in hotbar
|
||||
int newSlot = -1;
|
||||
for (int i = 0; i < 9; i++) {
|
||||
|
@ -73,9 +110,10 @@ public class Scaffold extends Module {
|
|||
if (!checkForNeighbours(blockPos)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// place block
|
||||
placeBlockScaffold(blockPos);
|
||||
if ((boolean)autoPlace.getValue()) placeBlockScaffold(blockPos);
|
||||
mc.player.connection.sendPacket(new CPacketEntityAction(mc.player, Action.STOP_SNEAKING));
|
||||
shouldSlow = false;
|
||||
|
||||
// reset slot
|
||||
Wrapper.getPlayer().inventory.currentItem = oldSlot;
|
||||
|
|
Loading…
Reference in New Issue