214 lines
7.6 KiB
Java
214 lines
7.6 KiB
Java
package keystrokesmod.module.impl.player;
|
|
|
|
import keystrokesmod.event.*;
|
|
import keystrokesmod.module.Module;
|
|
import keystrokesmod.module.ModuleManager;
|
|
import keystrokesmod.module.setting.impl.ButtonSetting;
|
|
import keystrokesmod.utility.Utils;
|
|
import net.minecraft.network.play.client.C0BPacketEntityAction;
|
|
import net.minecraft.network.play.server.S08PacketPlayerPosLook;
|
|
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
|
|
import net.minecraftforge.fml.common.eventhandler.EventPriority;
|
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
|
|
|
import java.util.Objects;
|
|
|
|
public class Disabler extends Module {
|
|
public ButtonSetting motion;
|
|
public ButtonSetting bridging;
|
|
|
|
private final int defaultSetbacks = 20;
|
|
private final long joinDelay = 200, delay = 0, checkDisabledTime = 4000, timeout = 12000;
|
|
private final double min_offset = 0.2;
|
|
|
|
private long joinTime, lobbyTime, finished;
|
|
private boolean awaitJoin, joinTick, awaitSetback, hideProgress, awaitJump, awaitGround;
|
|
private int setbackCount, airTicks, disablerAirTicks;
|
|
private double minSetbacks, zOffset;
|
|
private float savedYaw, savedPitch;
|
|
private boolean noRotateWasEnabled;
|
|
private Class<? extends Module> noRotate;
|
|
|
|
private boolean hasSneaked, hasWentInAir;
|
|
private int lastSneakTicks;
|
|
private int lastY;
|
|
|
|
//private String text;
|
|
private int[] disp;
|
|
private int width;
|
|
|
|
public Disabler() {
|
|
super("Disabler", Module.category.player);
|
|
|
|
this.registerSetting(motion = new ButtonSetting("Motion", false));
|
|
this.registerSetting(bridging = new ButtonSetting("Bridging", false));
|
|
}
|
|
|
|
private void resetVars() {
|
|
if (noRotateWasEnabled) {
|
|
Objects.requireNonNull(getModule(noRotate)).enable();
|
|
}
|
|
awaitJoin = joinTick = awaitSetback = noRotateWasEnabled = awaitJump = false;
|
|
minSetbacks = zOffset = lobbyTime = finished = setbackCount = 0;
|
|
}
|
|
|
|
@SubscribeEvent(priority = EventPriority.LOWEST)
|
|
public void onPreMotion(PreMotionEvent e) {
|
|
/*long now = System.currentTimeMillis();
|
|
|
|
if (!awaitGround && !mc.thePlayer.onGround) {
|
|
disablerAirTicks++;
|
|
} else {
|
|
awaitGround = false;
|
|
disablerAirTicks = 0;
|
|
}
|
|
|
|
if (awaitJoin && now >= joinTime + joinDelay) {
|
|
ItemStack item = mc.thePlayer.inventory.getStackInSlot(8);
|
|
if (Utils.getBedwarsStatus() == 1 || Utils.isBedwarsPractice() || Utils.skywarsQueue()) {
|
|
if (ModuleManager.noRotate.isEnabled() && Utils.skywarsQueue()) {
|
|
Objects.requireNonNull(getModule(noRotate)).disable();
|
|
noRotateWasEnabled = true;
|
|
}
|
|
awaitJoin = false;
|
|
joinTick = true;
|
|
}
|
|
}
|
|
|
|
if (finished != 0 && mc.thePlayer.onGround && now - finished > checkDisabledTime) {
|
|
Utils.print("&7[&dR&7] &adisabler enabled");
|
|
finished = 0;
|
|
}
|
|
|
|
if (awaitJump && disablerAirTicks == 5) {
|
|
KeyBinding.setKeyBindState(mc.gameSettings.keyBindJump.getKeyCode(), false);
|
|
awaitJump = false;
|
|
|
|
minSetbacks = defaultSetbacks;
|
|
savedYaw = e.getYaw(); // pitch will be 0
|
|
lobbyTime = now;
|
|
awaitSetback = true;
|
|
}
|
|
|
|
if (joinTick) {
|
|
Utils.print("&7[&dR&7] running disabler...");
|
|
if (mc.thePlayer.onGround || (mc.thePlayer.fallDistance < 0.3 && !Utils.isBedwarsPractice())) {
|
|
awaitJump = true;
|
|
mc.thePlayer.jump();
|
|
//client.print("Jump");
|
|
joinTick = false;
|
|
} else {
|
|
minSetbacks = defaultSetbacks;
|
|
savedYaw = e.getYaw(); // pitch will be 0
|
|
lobbyTime = now;
|
|
awaitSetback = true;
|
|
}
|
|
return;
|
|
}
|
|
|
|
if (awaitSetback) {
|
|
if (setbackCount >= minSetbacks) {
|
|
Utils.print("&7[&dR&7] &afinished in &b" + Utils.round((now - lobbyTime) / 1000d, 1) + "&as, wait a few seconds...");
|
|
resetVars();
|
|
finished = now;
|
|
return;
|
|
} else if (lobbyTime != 0 && now - lobbyTime > timeout) {
|
|
Utils.print("&7[&dR&7] &cdisabler failed");
|
|
resetVars();
|
|
return;
|
|
}
|
|
if (now - lobbyTime > delay) {
|
|
e.setYaw(savedYaw);
|
|
e.setPitch(savedPitch);
|
|
mc.thePlayer.motionX = 0;
|
|
mc.thePlayer.motionY = 0;
|
|
mc.thePlayer.motionZ = 0;
|
|
//client.print("2");
|
|
if (Utils.skywarsQueue()) {
|
|
zOffset = min_offset * 0.7;
|
|
if (mc.thePlayer.ticksExisted % 2 == 0) {
|
|
zOffset *= -1;
|
|
}
|
|
e.setPosZ(e.getPosZ() + zOffset);
|
|
} else {
|
|
e.setPosZ(zOffset + min_offset);
|
|
}
|
|
}
|
|
}*/
|
|
|
|
if (bridging.isToggled()) {
|
|
if (mc.gameSettings.keyBindSneak.isKeyDown() || !Safewalk.canSafeWalk() && !ModuleManager.scaffold.isEnabled) {
|
|
lastSneakTicks = 0;
|
|
}
|
|
if (mc.thePlayer.onGround) { // Switching Y levels doesnt stop flagging
|
|
if ((int) mc.thePlayer.posY != lastY && hasWentInAir) {
|
|
lastSneakTicks = 0;
|
|
Utils.print("Dif Y");
|
|
}
|
|
lastY = (int) mc.thePlayer.posY;
|
|
hasWentInAir = false;
|
|
}
|
|
else {
|
|
hasWentInAir = true;
|
|
}
|
|
lastSneakTicks++;
|
|
}
|
|
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void onPostPlayerInput(PostPlayerInputEvent e) {
|
|
if (bridging.isToggled()) {
|
|
if (hasSneaked) {
|
|
if (!mc.gameSettings.keyBindSneak.isKeyDown()) {
|
|
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.STOP_SNEAKING));
|
|
}
|
|
hasSneaked = false;
|
|
lastSneakTicks = 0;
|
|
} else if (lastSneakTicks >= 19) {
|
|
if (!mc.gameSettings.keyBindSneak.isKeyDown() && (Safewalk.canSafeWalk() || ModuleManager.scaffold.isEnabled) && mc.thePlayer.onGround) {
|
|
mc.thePlayer.sendQueue.addToSendQueue(new C0BPacketEntityAction(mc.thePlayer, C0BPacketEntityAction.Action.START_SNEAKING));
|
|
hasSneaked = true;
|
|
Utils.print("Sneak packet");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@SubscribeEvent()
|
|
public void onMoveInput(PrePlayerInputEvent e) {
|
|
if (awaitSetback) {
|
|
e.setForward(0);
|
|
e.setStrafe(0);
|
|
}
|
|
}
|
|
|
|
@SubscribeEvent
|
|
public void onReceivePacket(ReceivePacketEvent e) {
|
|
if (e.getPacket() instanceof S08PacketPlayerPosLook) {
|
|
setbackCount++;
|
|
zOffset = 0;
|
|
}
|
|
}
|
|
|
|
/*void onRenderTick(float partialTicks) {
|
|
if (awaitSetback) {
|
|
if (hideProgress || text == null) {
|
|
return;
|
|
}
|
|
render.text(text, disp[0] / 2 - width, disp[1] / 2 + 13, 1, -1, true);
|
|
}
|
|
}*/
|
|
|
|
@SubscribeEvent
|
|
public void onWorldJoin(EntityJoinWorldEvent e) {
|
|
if (e.entity == mc.thePlayer) {
|
|
long joinTime = System.currentTimeMillis();
|
|
if (awaitSetback) {
|
|
Utils.print("&7[&dR&7] &cdisabing disabler");
|
|
resetVars();
|
|
}
|
|
awaitJoin = awaitGround = true;
|
|
}
|
|
}
|
|
} |