почему оно не работать как раб?????
Код:
package zenith.zov.client.modules.impl.movement;
import com.darkmagician6.eventapi.EventTarget;
import net.minecraft.util.Hand;
import zenith.zov.base.events.impl.player.EventMoveInput;
import zenith.zov.base.events.impl.player.EventSlowWalking;
import zenith.zov.base.events.impl.player.EventUpdate;
import zenith.zov.client.modules.api.Category;
import zenith.zov.client.modules.api.Module;
import zenith.zov.client.modules.api.ModuleAnnotation;
import zenith.zov.client.modules.api.setting.impl.BooleanSetting;
import zenith.zov.client.modules.api.setting.impl.ModeSetting;
import zenith.zov.utility.game.player.PlayerIntersectionUtil;
@ModuleAnnotation(name = "NoSlow", category = Category.MOVEMENT, description = "Убирает замедление во время еды")
public final class NoSlow extends Module {
public static final NoSlow INSTANCE = new NoSlow();
private NoSlow() {
}
private final ModeSetting mode = new ModeSetting("Мод");
private final ModeSetting.Value vanilla = new ModeSetting.Value(mode, "Vanilla");
private final ModeSetting.Value grimNew = new ModeSetting.Value(mode, "Grim New");
private final ModeSetting.Value grimLatest = new ModeSetting.Value(mode, "Grim Latest");
private final ModeSetting.Value hw = new ModeSetting.Value(mode, "Grim old").select();
private final BooleanSetting sprint = new BooleanSetting("Спринт", true, hw::isSelected);
private int ticks = 0;
@EventTarget
public void onItemUse(EventSlowWalking e) {
if (mc.player == null || mc.player.isGliding()) return;
if (vanilla.isSelected()) {
e.setCancelled(true);
}
if (grimNew.isSelected()) {
if (mc.player.getItemUseTime() % 2 == 0) {
e.setCancelled(true);
}
}
if (grimLatest.isSelected()) {
if (ticks >= 2) {
e.setCancelled(true);
ticks = 0;
}
}
if (hw.isSelected()) {
Hand hand = mc.player.getActiveHand();
if (sprint.isEnabled()) {
mc.player.setSprinting(mc.player.canSprint()
&& mc.player.input.getMovementInput().lengthSquared() > 0
&& !mc.player.isBlind()
&& !mc.player.isGliding()
&& (!mc.player.shouldSlowDown() || mc.player.isSubmergedInWater()));
}
PlayerIntersectionUtil.useItem(hand.equals(Hand.MAIN_HAND) ? Hand.OFF_HAND : Hand.MAIN_HAND);
e.setCancelled(true);
}
}
@EventTarget
public void onMoveInput(EventMoveInput e) {
if (mc.player == null || !mc.player.isUsingItem() || mc.player.isGliding()) return;
boolean shouldCancel = false;
if (vanilla.isSelected()) {
shouldCancel = true;
} else if (grimNew.isSelected()) {
shouldCancel = mc.player.getItemUseTime() % 2 == 0;
} else if (grimLatest.isSelected()) {
shouldCancel = false; // Обрабатывается через ticks
} else if (hw.isSelected()) {
shouldCancel = true;
}
if (shouldCancel) {
// Восстанавливаем скорость до полной
float forward = e.getForward();
float strafe = e.getStrafe();
if (forward != 0) {
e.setForward(forward > 0 ? 1.0f : -1.0f);
}
if (strafe != 0) {
e.setStrafe(strafe > 0 ? 1.0f : -1.0f);
}
}
}
@EventTarget
public void update(EventUpdate tickEvent) {
if (mc.player == null) return;
if (grimLatest.isSelected() && !mc.player.isGliding()) {
if (mc.player.isUsingItem()) {
ticks++;
} else {
ticks = 0;
}
}
}
@Override
public void onDisable() {
super.onDisable();
ticks = 0;
}
}