56 lines
1.7 KiB
Java
56 lines
1.7 KiB
Java
|
|
package online.bobtony.handlers;
|
||
|
|
|
||
|
|
import net.minecraft.client.network.ClientPlayerEntity;
|
||
|
|
import net.minecraft.util.math.Vec3d;
|
||
|
|
import online.bobtony.BobTony;
|
||
|
|
import online.bobtony.enums.Modes;
|
||
|
|
|
||
|
|
public class DoubleJumpHandler {
|
||
|
|
|
||
|
|
public static void handleDoubleJump(ClientPlayerEntity player) {
|
||
|
|
boolean isJumping = player.input.playerInput.jump();
|
||
|
|
|
||
|
|
if (isJumping && !BobTony.wasJumping) {
|
||
|
|
long currentTime = System.currentTimeMillis();
|
||
|
|
if (currentTime - BobTony.lastJumpTime < 300) {
|
||
|
|
if(BobTony.mode == Modes.FLY) {
|
||
|
|
toggleFlyMode(player);
|
||
|
|
}else {
|
||
|
|
boostPlayer(player);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
BobTony.lastJumpTime = currentTime;
|
||
|
|
}
|
||
|
|
|
||
|
|
BobTony.wasJumping = isJumping;
|
||
|
|
}
|
||
|
|
|
||
|
|
private static void toggleFlyMode(ClientPlayerEntity player) {
|
||
|
|
boolean isFlying = !player.getAbilities().flying;
|
||
|
|
player.getAbilities().flying = isFlying;
|
||
|
|
player.getAbilities().setFlySpeed(BobTony.flyspeed);
|
||
|
|
|
||
|
|
if (isFlying) {
|
||
|
|
BobTony.sendMessage(player, "Fly: §aEnabled", true);
|
||
|
|
} else {
|
||
|
|
BobTony.sendMessage(player, "Fly: §cDisabled", true);
|
||
|
|
}
|
||
|
|
|
||
|
|
player.sendAbilitiesUpdate();
|
||
|
|
}
|
||
|
|
|
||
|
|
private static void boostPlayer(ClientPlayerEntity apfel) {
|
||
|
|
double pitch = apfel.getPitch();
|
||
|
|
Vec3d velocity;
|
||
|
|
|
||
|
|
if (pitch > 70) {
|
||
|
|
velocity = new Vec3d(0.0, 1.0, 0.0).multiply(BobTony.strength);
|
||
|
|
} else {
|
||
|
|
velocity = apfel.getRotationVector().multiply(BobTony.strength);
|
||
|
|
}
|
||
|
|
|
||
|
|
apfel.addVelocity(velocity.x, velocity.y + 0.5, velocity.z);
|
||
|
|
apfel.velocityModified = true;
|
||
|
|
}
|
||
|
|
}
|