import lombok.Getter;
import net.minecraft.item.UseAction;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.AxisAlignedBB;
@ModuleInfo(name = "NoSlow", category = Category.MOVEMENT)
public class NoSlow extends Module {
private final ModeSetting mode = new ModeSetting(this, "Mode", "Vanilla", "HolyWorld", "Grim Latest");
public static int ticks = 0;
@EventHandler
public void onTick(TickEvent event) {
if (mode.is("Grim Latest") && mc.player != null && !mc.player.isElytraFlying()) {
if (mc.player.isHandActive()) {
ticks++;
} else {
ticks = 0;
}
}
}
@EventHandler
public void onSlowWalk(SlowWalkingEvent e) {
if (mc.player == null || mc.player.isElytraFlying()) return;
switch (mode.getValue()) {
case "Vanilla" -> e.cancel();
case "HolyWorld" -> {
if (mc.player.getHeldItemOffhand().getUseAction() == UseAction.BLOCK && mc.player.getActiveHand() == Hand.MAIN_HAND || mc.player.getHeldItemOffhand().getUseAction() == UseAction.EAT && mc.player.getActiveHand() == Hand.MAIN_HAND) {
return;
}
mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(mc.player.getActiveHand()));
mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(mc.player.getActiveHand() == Hand.MAIN_HAND ? Hand.OFF_HAND : Hand.MAIN_HAND));
e.cancel();
}
case "Grim Latest" -> {
if (ticks >= 2) {
e.cancel();
ticks = 0;
}
}
}
}
}