Files
NexusLobby/src/main/java/de/nexuslobby/utils/DoubleJump.java

50 lines
1.9 KiB
Java

package de.nexuslobby.utils;
import de.nexuslobby.NexusLobby;
import org.bukkit.GameMode;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerToggleFlightEvent;
import org.bukkit.util.Vector;
public class DoubleJump implements Listener {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
if (NexusLobby.getInstance().getConfig().getBoolean("doublejump.enabled", true)) {
event.getPlayer().setAllowFlight(true);
}
}
@EventHandler
public void onFly(PlayerToggleFlightEvent event) {
Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE || player.getGameMode() == GameMode.SPECTATOR) return;
if (NexusLobby.getInstance().getConfig().getBoolean("doublejump.enabled", true)) {
event.setCancelled(true);
player.setAllowFlight(false);
player.setFlying(false);
double velocity = NexusLobby.getInstance().getConfig().getDouble("doublejump.velocity", 1.0);
double horizontal = NexusLobby.getInstance().getConfig().getDouble("doublejump.horizontal", 0.2);
Vector v = player.getLocation().getDirection().multiply(horizontal).setY(velocity);
player.setVelocity(v);
}
}
@EventHandler
public void onMove(PlayerMoveEvent event) {
Player player = event.getPlayer();
if (player.getGameMode() != GameMode.CREATIVE && player.getLocation().subtract(0, 0.1, 0).getBlock().getType() != Material.AIR) {
if (NexusLobby.getInstance().getConfig().getBoolean("doublejump.enabled", true)) {
player.setAllowFlight(true);
}
}
}
}