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); } } } }